更详细Java面试请点击这里
Java 基础必会知识点
Java 关键字及功能
熟悉 Java 常用关键字的拼写及功能
所有的 Java 关键字都是小写
goto 和 const 是保留关键字,在 Java 中没有使用
true, false, null 不是严格意义上的关键字,而是文字常量(literals)
程序中遇到 return 语句将不会执行 finally 语句
Java 数据类型
8 种基本数据类型:byte, short, int, long, float, double, char, boolean
8 种基本数据类型占用的字节长度
3 种引用数据类型:类、接口、数组
8 种基本数据类型对应的包装类,被 final 修饰,不可被继承
String 和 StringBuffer 类也是被 final 修饰的
Java 基本运算符
Java 基本运算符的种类
Java 基本运算符的优先级
单目、双目、三目运算符的划分
运算符操作工程中的类型转换问题
Java 基本程序控制语句
有三种执行方式:顺序结构、选择结构和循环结构
条件选择语句:if...else, switch...case
循环语句:while ,do...while, for
注意 while 和 do...while 的**区别
- while 是先判断再执行循环体,do...while 是先执行再判断
switch 支持得数据类型有:byte, short, int, char, 枚举类型,JKD 1.7时又增加了 String
Java 数组(重视)
Java 数组的概念与特点
- Java 实现了真数组,即数组中的元素是一个一个线性存放的,通过第一个元素就能访问后面的元素,避免了数据覆盖的可能性
一维数组和二维数组的声明
数组初始化的两种方式:静态初始化和动态初始化的使用方法及区别
动态初始化数组必须给出长度,否则将报“缺少数组维数”的错误
动态初始化二维数组时,可以指定第一维的长度而不指定第二维的长度
当数组包含的元素是引用数据类型时,必须为每个元素实例化,否则出现空指针异常
常见 Java 基础知识陷阱
对初学者来讲,由于对 Java 语言的概念和特性了解不深入,总会导致一些错误的产生。为了避免产生这些错误,我们需要熟知道 Java 语言的性质并了解。常见的陷阱有以下:
浮点数运算陷阱
float 和 double 不能进行精确运算,因为计算机底层是使用的二进制,二进制不能精确的表示十进制的浮点数例如以下代码:
System.out.println(2.0-1.1);
//输出为:0.899999999,并非为0.9
不能简单的使用四舍五入的方法解决上述问题
可以使用 Java 自带的 BigDecimal 类了解BigDecimal解决,见下面:
BigDecimal a1 = new BigDecimal(Double.toString(2.0));
BigDecimal a1 = new BigDecimal(Double.toString(1.1));
System.out.println(a1.subtract(a2).doubleValue());
//输出为0.9
```
- 自增、自减运算符陷阱
1. ++ 与 -- 运算符的规则
2. i++ 与 ++i 的区别
3. 进行增量或减量运算常见错误
int j = 0;
for (int i = 0; i < 100; i++) {
j = j++;
}
System.out.println(j);
//输出为0,因为先执行++操作,再将之前的 j 赋值给 j,所以永远是0
//注意在C语言中,编译器会吧j=j++优化成j++,于是C跟Java的执行结果会不一样
```
字符和字符串陷阱
字符串与字符拼接规则
转义字符使用规则
System.out.println("a"+"b");//输出ab
System.out.println('a'+'b');//输出195,因为字母a的ASCII码为97
System.out.println("a"+'b');//输出ab,字符a被强制转化为字符串a
返回和退出陷阱
return 与 try...catch 语句规则,尤其是有 finally 语句时候
exit() 函数与 try...catch 语句规则
public static boolean return1() {
try {
return true;
}
finally{
return false;
}
}//返回的是false
public static void return2() {
try {
System.err.println("Hello!");
System.exit(0);
}
finally{
System.out.println("GoodBye!");
}
}//输出的是Hello