Java基础复习
- java语言概述
- 基本语法
- 变量
- 运算符
- i++,++i,i--,--i;之间的区别
- instanceof
- & &&; | ||;之间的区别
- 位运算
- 循环
- 数组
- Arrays工具类:定义在java.util包
- 数组常见异常
- 面向对象
- Object类
- 包装类
- 异常
java语言概述
java虽然去除了c语言里的指针,并且还有垃圾回收机制,但是仍然会出现内存溢出,内存泄露问题
JDK=JRE+开发工具集 JRE=JVM+JavaSE标准类库
基本语法
goto,const是保留字,要避免使用
变量
基本数据类型:{btye,short,char<int,<long(后面加L),float,<double,(后面加F),}(自动类型转换)boolean 基本数据类型初始化不附值会有默认值
引用数据类型:类(class)String类型属于类,接口(interface),数组([]) 引用数据类型不附值默认为null
运算符
i++,++i,i–,--i;之间的区别
++i,是先自增,在运算
i++,先运算,在自增
int a1 = 10;
int b1 = ++a1;
System.out.println("a1 = " + a1 + ",b1 = " + b1);
//a1 = 11,b1 = 11
int a2 = 10;
int b2 = a2++;
System.out.println("a2 = " + a2 + ",b2 = " + b2);
//a2 = 11,b2 = 10
–i,是先自减,在运算
i–,先运算,在自减
int a1 = 10;
int b1 = --a1;
System.out.println("a1 = " + a1 + ",b1 = " + b1);
//a1 = 9,b1 = 9
int a2 = 10;
int b2 = a2--;
System.out.println("a2 = " + a2 + ",b2 = " + b2);
//a2 = 9,b2 = 10
instanceof
它的作用是判断其左边对象是否为其右边类的实例
String s ="aadad";
boolean b = s instanceof Object;
System.out.println(b);
& &&; | ||;之间的区别
他们之间的运算结果都相同
& &&;
相同点:当符号左边是true时,二者都会执行符号右边的运算
不同点:当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。
| ||;
相同点:当符号左边是false时,二者都会执行符号右边的运算
不同点:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算
位运算
<< >> >>> & | ^ ~
System.out.println(5>>2);1
5 101>>001 向右移2位补0
System.out.println(5<<2);20
5 101<<10100 向左移2位补0
System.out.println(7>>>3);0
不带符号位
//以下的位运算是相对于二进制进行运算
System.out.println(7&8);0
//0&0=0,0&1=0,1&0=0,1&1=1
System.out.println(7|8);15
//0|0=0,0|1=1,1|0=1,1|1=1
System.out.println(3^5);6
//0^0=0,0^1=1,1^0=1,1^1=0
System.out.println(~7);-8
//取反1变0,0变1
循环
break结束当前循环
continue结束当次循环
数组
Arrays工具类:定义在java.util包
常用方法:
isEquals 判断数组是否相同
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
boolean isEquals = Arrays.equals(arr1, arr2);
System.out.println(isEquals);//false
toString输出数组信息
System.out.println(Arrays.toString(arr1));
fill将指定值填充到数组之中
int[] arr1 = new int[]{1,2,3,4};
Arrays.fill(arr1,2);
System.out.println(Arrays.toString(arr1));//[2, 2, 2, 2]
sort对数组进行排序
Arrays.sort(arr1);
binarySearch在数组中找到指定数制的下标
int[] arr1 = new int[]{1,25,4};
int i = Arrays.binarySearch(arr1, 25);
System.out.println(i); //1
数组常见异常
越界和空指针异常
面向对象
//可变个数的形参方法
public void show(String ...str){
System.out.println(str.length);
}
//java值传递
基本数据类型是传递值
引用数据类型是传递地址
java修饰符
java常用包
Object类
常用方法:equals() / toString() / getClass() /hashCode() / clone() / finalize()、 wait() 、 notify()、notifyAll()
equals()判断对象值是否相同
toString()打印对象
getClass()获取对象是哪一个类
Integer i = new Integer(1);
Class<? extends Integer> aClass = i.getClass();
System.out.println(aClass);//class java.lang.Integer
hashCode()获取对象的哈希值
clone() 拷贝该对象的地址 //需要重写
finalize()该方法可以在对象被释放时执行 //需要重写
wait()的作用是让当前线程进入等待状态
notify()和notifyAll()的作用,则是唤醒当前对象上的等待线程;notify()是唤醒单个线程,而notifyAll()是唤醒所有的线程。
包装类
异常
throw 和 throws区别:
throw 表示抛出一个异常类的对象,生成异常对象的过程。声明在方法体内。
throws 属于异常处理的一种方式,声明在方法的声明处。