JAVA基础05-易混淆点
1.数组创建的三种方式
- 动态初始化:int[] a = new int[5];
- 静态初始化1:int[] a ={1,2,3,4,5,6,7,8};
- 静态初始化2:int[] a =new int[]{1,2,3,4,5};
2.声明变量的进制
- 声明八进制,在 赋值数字前加0,如int i=012;输出10;
- 声明十六进制,在赋值数字前加0x,如int i=0x12;输出18;
- 声明二进制,在赋值数字前加0b,int i=0b11;输出3;
3.面试题1
public class Test{
String str=new String("good");
char[] ch={'a','b','c'};
public static void main(String[] args){
Test t=new Test();
t.exchange(t.str,t.ch);
System.out.print(t.str+"and");
System.out.print(t.ch);
}
public void exchange(String str,char[] ch){
str="test";
ch[0]='g';
}
}
输出结果为:goodandgbc
分析:
str传递的是值
ch传递的是地址值
ch[0]='g’是按照地址值去堆内存中进行了修改
4 "=="和equals方法究竟有什么区别?
- 对于==,比较的是值是否相等
如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
如果作用于引用类型的变量,则比较的是所指向的对象的地址 - 对于equals方法
equals方法不能作用于基本数据类型的变量
如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容
5 遇到的异常
- ClassNotFoundException
在创建Servlet后修改了Servlet类的名称,web.xml中<servlet-class>标签要一起更改,否则将会出现"ClassNotFoundException" 即类找不到异常