java开发基础-面试题(1)

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的常用方法都有哪些?

说几个常用的吧,判断是否是一个文件,是否是一个目录,删除,新建文件,复制,移动,大小等.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值