一.Java传递参数的两种方式:
1. 值传递:(传值),八种基本数据类型和String(final)
2. 引用传递:(传地址),其余复合类型接口(数组、类和接口)
3. 理解:针对Java参数,无论是原始类型还是引用类型,传递的都是副本:
(1) 原始类型:传入的是副本(值),副本的值改变不会影响原始的值;
(2) 引用类型:传入的是副本(地址),若new一个,则不会改变,否则地址改变,原始值也改变。
二. final、finally和finalize:
1. final:变量:不能修改;类:不能被继承;方法:不能被重载;
2. finally:异常处理关键字(执行finally块)
try{}:非异常时执行try块代码;
catch{}:try中异常时执行finally块代码;
finally{}:都必须执行;
3. finalize:方法名,在堆永久删除对象之前,垃圾回收器调用该方法;
三. Java中字符串之间的转换:
1. 转string:
(1) char转string(string的valueOf方法)
Char c = ‘’;
String s = string.valueOf(c);
(2) char转int:(强制类型转换)
int i = (int) c;
2. 转char:
(1) String转char(string的toCharArray()[位置]方法)
(2) int转char
① 强制类型转化:(当作ASCⅡ码处理,’(’)
Int a = 40;
Char c = (char) a;
② 先转成字符串,再转成char:
int a = 4;
String str = String.valueOf(a);
char[] array = str.toCharArray();
for (int i = 0; i < array.length; i++)
{ System.out.print(array[i]); }
3. 转int:
(1) String转int(使用integer的parseInt方法)
(2) Char转int(转为字符串,在使用parseInt方法)
4. int和integer之间(intValue方法):
Integer i1 = new integer(10);
Int i2 = integer.intValue();
四. object和String中的equals区别:
1. 对String而言:
“equals”:(比较的是两个字符串的内容);
“==”:(比较的是两个字符串对象的引用);
String a = new String(“abc”);
String b = new String(“abc”);
String c = b;
则:equals方法都为true,==方法:a==b为false,b==c为true。
2. 对Object而言:
“equals”:(比较的是对象的引用)
3. String继承了Object类,equals方法进行了重写(引用->内容)
4. 总结:
Object.equals相等,String.equals一定相等
String.equals相等,Object.equals不一定相等
五. Java中的int和integer之间的区别:
1. int是基本数据类型,直接存放数值,初始默认为0;
2. Integer是对象,需要实例化,初始默认为null;
3. 享元模式:(自动拆箱和自动装箱)
装箱:integer a = 10; (将数据类型转换成对象)
拆箱:a++; (将对象转换成数据类型,进行运算)
六. 重载和重写区别:
1. 重载(Overload)(多态):同一类中出现多个同名的方法(形参不同)
2. 重写(Override):子类对父类的方法进行重新编写;
3. 区别:(看看是不是在同一个类中)
七. arrayList和LinkedList的区别:
1. arrayList:基于动态数组;(读取数据使用方便,无需移动指针)
2. LinkedList:基于链表;(增、删、加使用方便,移动指针)