21天概览Java面试知识之基础篇
来源:互联网 发布:吉他识谱软件 编辑:程序博客网 时间:2024/05/17 08:07
1. &与&&的区别
- &是既可是逻辑运算符也可作为位运算符,&&只能是逻辑运算符
- &&具备短路功能(如果第一个表达式为false,则不再计算第二个表达式),&做逻辑运算符时,不具备短路功能
- 当两边的表达式不是布尔表达式时,&表示按位与操作
短路功能展示:&&: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
0 0
- 21天概览Java面试知识之基础篇
- 面试基础之java
- 面试之java基础
- Java多线程、并发基础面试知识汇总
- Java中的框架基础面试知识
- Java面试宝典之:基础篇
- 《博客知识概览》- Java等
- 2017最新Java基础面试笔试知识整理--java基础篇
- Java基础之知识总结
- java基础之小知识
- JAVA 知识补漏 -- 面试篇
- java面试知识之ssh<三>
- Java基础之面试整理
- java面试基础之三
- java面试基础之四
- Java基础之面试常见问题
- java面试(基础篇)
- Objective-C_1之基础概览
- Caused by: java.lang.OutOfMemoryError: PermGen space
- Android02_Android API Guide学习和常用布局及基本UI控件
- 尺度空间 (Scale Space)
- 嵌入式 struct pollfd
- python设置proxy
- 21天概览Java面试知识之基础篇
- 深入浅出---unix多进程编程之wait()和waitpid()函数
- android阻塞对话框和非阻塞对话框
- 区分Bootstrps、Bagging与 Boosting
- python常用代码和函数实例
- 寻找最好的编程语言
- OBIEE去掉主页左边部分内容
- [LeetCode] 026. Remove Duplicates from Sorted Array (Easy) (C++/Java)
- spirntf,你知道多少?