Java基础

1、为什么重写equals还要重写hashcode
hashcode一定相等;但是hashcod相等时,两个对象却不一定equals 2、由于为了提高程序的执行效率才实现了hashcode方法,先进行hashcode比较,如果不同,就没有必要进行equals比较了,这样就大大的减少了equals的使用次数,从而效率得到提高

2、说一下map的分类和常见的情况
它有四个实现类,分别是
HashMap:随机存储
Hashtable:线程安全
LinkedHashMap:插入的顺序有序
TreeMap:插入的值有序

3、Object若不重写hashCode()的话,hashCode()如何计算出来的?
答:如果不重写,用的是底层实现,返回的是当前对象的内存地址

4、==比较的是什么?
基本类型:比较的是值
引用类型:比较的引用对象的地址

5、若对一个类不重写,它的equals()方法是如何比较的?
比较的是两个对象的地址

6、java8新特性

7、说说Lamda表达式的优缺点。

8、一个十进制的数在内存中是怎么存的?
二进制补码

9、为啥有时会出现4.0-3.6=0.40000001这种现象?
进制转换是出现的误差

10、Java支持的数据类型有哪些?什么是自动拆装箱?
byte,char,short,int,long,float,double,boolean
自动装箱:基本类型转封装类型
自动拆箱:封装类型转基本类型

11、什么是值传递和引用传递?
值传递:基本类型,值拷贝,传的不是原对象本身
引用传递:引用类型,传的是地址,对引用对象改变会改变原对象

12、数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?
Array:可以存储基本类型和对象类型,大小固定
ArrayList:只能存储对象类型,大小不固定

13、你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么?

14、String是最基本的数据类型吗?
不是

15、int 和 Integer 有什么区别
int是基本类型
Integer是一个类
Integer是int的封装类型

16、String 和StringBuffer的区别
String:值不可变,
StringBuffer:值可变,线程安全

17、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
new String(str.getBytes(),"");

19、&和&&的区别?
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x33 & ++y>0) y会增长,If(x33 && ++y>0)不会增长

&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

20、在Java中,如何跳出当前的多重嵌套循环?
return;

21、你能比较一下Java和JavaSciprt吗?

22、简述正则表达式及其用途。

23、Java中是如何支持正则表达式操作的?

24、请你说说Java和PHP的区别?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值