1. Java 基础
1. JDK 和 JRE 有什么区别?
答:
jdk提供了开发环境和运行环境,jre只是运行环境 .
2. == 和 equals 的区别是什么?
答:
==比较的是内存地址,基本数据类型则是比较值,equals在object比较的也是地址,但在String,Interger中比较的是值.
值得说明的是,String str=new String(123);接着写 String str2="123"
3. 两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗?
答:
hashCode() 返回的是内存地址的转整数,equals()默认实现是==,讲道理,hashcode相等,equals也一定相等.但java规定是equals相等,两对象一定相等,hashcode相等,两对象可能相等.为什么?如果你重写了hashCode方法,跟原生的object用的不同算法,那两个不同对象的hashCode是可能相等的,equals却不等.在进行hash操作时,为了提高性能,先判定hashcode,再equals.
4. final 在 java 中有什么作用?
答:
从字面理解最终的,修饰类不能被继承,修饰方法不能被重写,修饰变量只能赋值一次.但变量内部是可以重复赋值的.例如final List一样可以进行 add等操作.
5. java 中的 Math.round(-1.5) 等于多少?
答:
-1. 4舍5入.四舍五入的原理是在参数上加0.5然后进行下取整。
6. String 属于基础的数据类型吗?
答:
不是.学过c都知道.String类char[]的实现.是一个类
7. java 中操作字符串都有哪些类?它们之间有什么区别?
StringUtil
8. String str="i"与 String str=new String(“i”)一样吗?
值相等,地址不一样,也就是说equals一样,==不一样
9. 如何将字符串反转?
方法不要太多...,首先StringBuilder,StringBuffer有实现,自已也可以,1:正向遍历反向加或反向遍历正向加.
例如:
Sttring t="";
for i to str.tocharArray
t=i+t; //正向遍历反向加
10. String 类的常用方法都有那些?
equals,substring,indexOf,valueOf,concat,endwith,startwith,split等.
11. 抽象类必须要有抽象方法吗?
怎么说呢?抽象类可以有普通方法但必须实现,也可以有抽象方法但不能实现.但也没说抽象类非得有抽象方法.但普通类不能定义抽象方法.必须实现抽象类中的抽象方法
12. 普通类和抽象类有哪些区别?
答:
抽象类不能实例化,可以有多个构造,但子类必须继承至少一个构造.和11点中特性.
13. 抽象类能使用 final 修饰吗?
不能,根本性冲突
14. 接口和抽象类有什么区别?
所有接口中的变量都是static final的
接口中声明的方法全是abstract的,实现的方法都是static的.
抽象类中的方法实现不用static,声明的方法也必须abstract
接口最大特点是可以多继承,但类只能单继承.
15. java 中 IO 流分为几种?
从类型分为:字节流,和字符流
从特性分为节点流和处理流.
从通信分为bio(同步阻塞),nio(同步非阻塞),aio(异步非阻塞)
16. BIO、NIO、AIO 有什么区别?
bio(同步阻塞),nio(同步非阻塞),aio(异步非阻塞)
bio基于连接每一个连接一个线程,nio基于请求,当有数据才建线程,ai一个有效请求一个线程,读写异步
17. Files的常用方法都有哪些?
说几个常用的吧,判断是否是一个文件,是否是一个目录,删除,新建文件,复制,移动,大小等.