JAVA(3)
接口注意事项:
1.接口不能被实例化
2.接口中所有的方法都不能有主体 (不能有{ })
3.一个类可以实现多个接口
4.接口中可以有变量<但变量不能用private和protected修饰>
附加:
接口中的变量,本质上都是static的,而且是final,不管加不加static修饰
在java开发中,常把经常用的变量定义在接口中,作为全局变量使用。
<访问形式:接口名.变量名>
5.一个接口不能继承其他的类,但是可以继承别的接口
抽象类中可以有实现了的方法
接口中的方法一个都不能被实现
接口中定义变量有特殊要求
接口语法:
class 类名 implement 接口 {
方法;
变量;
}
小结:
接口是更加抽象的抽象的类
抽象类里的方法可以有方法体
接口里的所有方法都没有方法体
接口体现了程序设计的多态和高内聚低耦合的设计思想
package com.test4;
public class Test{ public static void main(String[] args){ }
}
interface Fish
{
public void swimming();
}
interface Bird
{
public void fly();
}
class Monkey
{
int name;
public void jump()
{
System.out.println("ABC");
}
}
class LittleMonkey extends Monkey implement Fish,Bird
{
public void swimming(){
}
public void fly(){
}
}
java的继承是单继承(一个类最多只能有一个父类)
final-概念
final可以修饰变量或方
使用final可以避免被子类修改:
class Aaa
{
//给方法用final修饰,表示不可以被修改,不可被覆盖
final public void sendMes()
{
System.out.println("发送消息");
}
}
final使用:
1.当不希望父类的某个方法被子类覆盖(override)时,使用final关键字修饰
2.当不希望类的某个变量的值被修改,可以用final修饰 <final public void xxx()>
如果一个变量是final,则必须赋初值,否则编译不了
3.当不希望类被继承时,可用final修饰 <final class xxx>
数组
一维数组
数组的必要性:
package com.test1;
public class Demo5_1{ public static void main(String[] args){
//定义六个变量
//定义一个可以存放六个float类型的数组
float arr[]=new float[6];
//使用for循环赋值
//给数组的各个元素赋值
arr[0]=3;
arr[1]=5;
arr[2]=3.4f;
arr[3]=2;
arr[4]=50; //算总体重[遍历数组]
float all=0;
for(int i=0;i<6;i++)
{
all+=arr[i];
}
System.out.println("总体重是:"+all);
}
}
对象数组的使用:
package com.test1;
import java.io.*;
public class Demo5_2{
public static void main(String[] args){ //定义一个可以存放四只狗的对象数组
Dog dog[]=new Dog[4]; //给各个狗赋初值 //从控制台输入每个狗的信息[alt+j]快捷键
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
for(int i=0;i<4;i++)
{
dog[i]=new Dog();
System.out.println("请输入狗名");
//从控制台读取狗名
String name=br.readLine();
//将名字赋给对象
dogs[i].setName(name);
System.out.println("");
String s_weight=br.readLine();
float weight=Float.parseFloat(s_weight);
//将名字赋给对象
dog[i].setWeight(weight);
}
//计算平均体重
//计算总体重
for(int i=0;i<4;i++)
{
allWeight+=dogs[i].getWeight();
}
//计算平均体重
float avgWeight/dogs.length;
System.out.println("总体重="+allWeight+"平均="+avgWeight)
}
}
//定义一个狗类
class Dog
{
private String name;
private float weight;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public float getWeight(){
return weight;
}
public void setWeight(float weight){
this.age=weight;
} }
排序分类:
1、内部排序:
(交换式排序法、选择式排序法、插入式排序法)
2、外部排序法:
(合并排序法、直接合并排序法)
交换式排序法:冒泡排序法、快速排序法
冒泡排序:
package com.test1;
public class Demo5_3{
public static void main(String[] args){ int arr[]={1,6,0,-1,9};
//排序
//外层循环,它决定一共走几趟
for(int i=0;i<arr.length-1;i++)
{
//内层循环,逐个比较,若前大于后则交换
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j]>arr[j+1])
{
//换位
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//输出最后结果
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+"");
} 排序方法封装到类中:
class Bubble{ //排序方法
public void sort(int arr[])
{
int temp=0;
for(int i=0;i<arr.length-1;i++)
{
for(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
调用:Bubble bubble=new Bubble();
bubble.sort(arr);
选择排序法:
class Select
{
//选择排序
public void sort(int arr[])
{
//默认第一个数最小 for(int j=0;j<arr.length-1;j++)
{
int min=arr[j];
//记录最小数下标
int minIndxe=j;
for(int k=j+1;k<arr.length;k++)
{
if(min>arr[k])
{
//修改最小
min=arr[k];
minIndxe=k;
}
}
}
插入式排序
将n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中有n-1个元素
class InsertSort
{
//插入排序方法
public void sort(int arr[])
{
for(int i=1;i<arr.length;i++)
{
int insertVal=arr[i];
//insertVal准备和前一个数比较
int index=i-1;
while(index>=0&&insertVal<arr[index]) //将arr[index]向后移动
arr[index+1]=arr[index];
//让index向前移动
index--;
}
//将insertVal插入到适当位置
arr[index+1]=insertVal;
}
}
多维数组
定义:
类型 数组名[][]=new 类型[大小][大小]
package com.test1;
public class Demo5_5{ public static void main(String[] args) int a[][]=new int[4][6]; a[1][2]=1;
a[2][1]=2;
a[2][3]=3; //将图形输出
for(int i=0;i<4;i++)
{
for(int j=0;j<6;j++)
{
System.out.print(a[j]+"");
}
//换行
System.out.println(); }
}
二进制(原码、反码、补码):
1、二进制的最高位是符号位:0表示正数,1表示负数
2、正数的原码、反码、补码都一样
3、负数的反码=符号位不变,其他位取反
4、负数的补码=他的反码+1
5、0的反码、补码都是0
6、java没有无符号数
7、在计算机运算时候,都是以补码的方式来运算的
算数右移:地位溢出,符号位不变,并用符号位补溢出的高位
算数左移:符号位不变,低位补0
集合:
java集合类主要有以下几种:
1、List结构的集合类
ArrayList类,LinkedList类,Vector类,Stack类
2、Map结构的集合类
HashMap类,Hashtable类
3、Set结构的集合类
HashSet类,TreeSet类
4、Queue结构的集合
Queue接口
java集合的用法:
package com.test1;
import java.util.*;
public class Demo7{
public static void main(String[] args){ //定义ArrayList对象
ArrayList a1=new ArrayList();
//显示大小
System.out.println("al大小:"al.size());
}
}
JAVA(3)的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- 《Javascript设计模式》笔记一js的表现力
用不同方法完成同样一个任务:启动和停止动画. 1.过程式的程序设计: function startAnimation(){ ... } function stopAnimation(){ ... } ...
- java substring
str=str.substring(int beginIndex,int endIndex);中最终得到的值: beginIndex =< str的值 < endIndex
- Apache、NGINX支持中文URL
Apache(32位):安装环境:CentOS 5.6 + Apache 2.2.15安装结果:安装后支持“中文图片.文件名”链接直接打开以下为安装过程:1.下载安装包 wget ftp://ftp. ...
- PHP注册审核做法
1.注册页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- SEO学习笔记-误区和经验总结
原文链接:http://www.cnblogs.com/monxue/p/seo_note.html 常见误区和错误: 1.忽视404错误页面的优化,没有及时处理死链导致权重降低 2.做外链优化只链到 ...
- Backbone的一点使用心得
Backbone的其实感觉上上手很难,大概在一年前就想实践下,结果总是没有付诸行动,这次需求中狠狠心决定一定要使用一次看看,感受下. 可是第一步真的比较困难,因为直接看API好像没有感觉就在网上找实例 ...
- The last packet successfully received from the server was 2,926,157 milliseconds ago. The last packet sent successfully to the server was 2,926,158 milliseconds ago. is longer than the server configured value of 'wait_timeout'. 解决办法
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully rec ...
- 入门struts2.0
框架是什么? 1.应用程序的半成品. 2.可重用行公共的结构. 3.按一定规则组织的一组组件. model2 其实并不是一种全新的概念,很对人指出model2其实正好是经典的"模型(mode ...
- Tomcat批处理文件小结
Tomcat批处理文件小结 一:嗯,如果你不了解Windows批处理文件,并且想了解一下,请先参看下面的链接资源(我也是因为想了解一下Windows批处理文件是用什么写的?怎么写的?才在园中找的,下面 ...
- CGContext 解释
Managing Graphics Contexts:管理图形上下文 CGContextFlush // 强制立即渲染未执行在一个窗口上下文上的绘图操作到目标设备.系统会在合适的时机自动调用此函数,手 ...