21天概览Java面试知识之基础篇

1. &与&&的区别

短路功能展示:

&&:

int a = 1;int b = 2;if(a==2 && (b=4)==4){}System.out.println(a+"–"+b);

打印结果:1–4

&:

int a = 1;int b = 2;if(a==2 & (b=4)==4){}System.out.println(a+"–"+b);打印结果:1–2

2.交换两个数的值

目前我知道的有四种写法

根据java的语言特性,一句代码即可交换

int a = 1;int b = 2;a = a + b – (b = a);//a = b +(b = a)*0;System.out.println(a+"-"+b);

通过加减法交换

int a = 1;int b = 2;a = a + b;b = a – b;a = a – b;System.out.println(a+"-"+b);

通过中间值交换

int a = 1;int b = 2;int c = b;b = a;a = c;System.out.println(a + "-" + b);

使用位操作交换

int a = 1;int b = 2;a = b ^ a;b = a ^ b;a = b ^ a;System.out.println(a + "-" + b);

3.String,StringBuilder,StringBuffer的区别

这三者都是final型的,即不能被继承

StringBuilder与StringBuffer继承自同一父类AbstractStringBuilder

StringBuilder是非线程安全的,StringBuffer和String是线程安全的

这三者内部都是用cha[]来存放值的,,只是String的是final型,也就是说,但试图修改String变量指向的对象值时,实际上是生成了新的String对象,并让String变量指向新对象,于是造成了String的值可修改的假象

4.final,finalize,finally的区别

请参考我写的这篇博文:final finally finalize的区别

5.java中的各种Object和Object-s类

Collection与Collections

Array与Arrays

6.Java中集合类

Java 集合概览

7.抽象类与接口有什么区别?

Java 抽象类与接口

8.try/catch/finally结构当try中有return时,finally中的代码是否会执行?什么时候执行?public static void main(String[] args) {System.out.println((new Test()).test());}public int test() {int i = 1;try {i–;return i;} catch (Exception e) {// TODO: handle exceptionreturn -1;} finally {i = i + 1;System.out.println(i);}}运行结果为:1 0

可以看出,当运行到return之后,i的值被保存起来,再接着执行finally中的代码,完成后,返回保存的运行结果。也就是说finally中的代码对函数的执行结果是没有影响的。

java中的throw,throws是什么意思?

throw表示抛出异常

throws表示捕获并向外抛出异常

public static void main(String[] args) {(new Test()).test(1);}public void test(){throw new NullPointerException();}public void test(int i)throws NullPointerException{try {test();} catch (Exception e) {// TODO: handle exceptionSystem.out.println(e);}}运行结果:java.lang.NullPointerException

要铭记在心;每天都是一年中最美好的日子

21天概览Java面试知识之基础篇

相关文章:

你感兴趣的文章:

标签云: