每日二道java基础面试知识点(一)
2018-03-06 14:48
513 查看
1、Java中==和equals的区别,equals和hashcode的区别
==:是比较栈中的值是否相同,所以Java的基本数据类型相同和同一对象new出来的两个变量使用==会返回true。
tip:Java8种基本数据类型:int,short,long,double,float,byte,boolean,char
tip:Java栈和堆内存简单概念:
基本数据类型和对象的引用放在栈,但栈中的变量超过其作用域,变量会被马上回收。
对象和数组存放在堆内存,当对象和数组没有变量指向它时,没有被指向对象和数组会成为垃圾,在未来不确定的时间里被回收。
equals:equals默认情况下和==的效果相同。因为equals是Object的方法,Object.equals的源码如下: public boolean equals(Object obj) {
return (this == obj);
} 所以默认情况下,equals就是调用了==去判断两个值是否相同。
而特殊情况下,我们更多的是使用像String类的equals,它重写了Object的equals方法,判断内容是否相同。public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}hashCode:hashcode()也是Object类的一个方法,返回一个离散型的int整数,在集合类操作中使用,在集合中为了元素不重复,当插入一个新的元素时,会先判断其hashcode是否已经存在,不存在的话直接插入,如果存在的话再调用equal进行判断。这样提高了插入的效率。
hash和equal关系:
两个对象equals为true,hashcode一定相同。
两个对象equals为false,hashcode可能相同。
2、List和set的区别:List元素有序且可重复;set元素无序且不可重复。
3、Java8中基本数据类型,各占多少字节。
int:4个字节
short:2个字节
long:8个字节
double:8个字节
float:4个字节
byte:1个字节
boolean:1个字节
char:2个字节
==:是比较栈中的值是否相同,所以Java的基本数据类型相同和同一对象new出来的两个变量使用==会返回true。
tip:Java8种基本数据类型:int,short,long,double,float,byte,boolean,char
tip:Java栈和堆内存简单概念:
基本数据类型和对象的引用放在栈,但栈中的变量超过其作用域,变量会被马上回收。
对象和数组存放在堆内存,当对象和数组没有变量指向它时,没有被指向对象和数组会成为垃圾,在未来不确定的时间里被回收。
equals:equals默认情况下和==的效果相同。因为equals是Object的方法,Object.equals的源码如下: public boolean equals(Object obj) {
return (this == obj);
} 所以默认情况下,equals就是调用了==去判断两个值是否相同。
而特殊情况下,我们更多的是使用像String类的equals,它重写了Object的equals方法,判断内容是否相同。public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}hashCode:hashcode()也是Object类的一个方法,返回一个离散型的int整数,在集合类操作中使用,在集合中为了元素不重复,当插入一个新的元素时,会先判断其hashcode是否已经存在,不存在的话直接插入,如果存在的话再调用equal进行判断。这样提高了插入的效率。
hash和equal关系:
两个对象equals为true,hashcode一定相同。
两个对象equals为false,hashcode可能相同。
2、List和set的区别:List元素有序且可重复;set元素无序且不可重复。
3、Java8中基本数据类型,各占多少字节。
int:4个字节
short:2个字节
long:8个字节
double:8个字节
float:4个字节
byte:1个字节
boolean:1个字节
char:2个字节
相关文章推荐
- 每日二道java基础面试知识点(二)
- 每日二道java基础面试知识点(五)
- 每日二道java基础面试知识点(四)
- 每日二道java基础面试知识点(三)
- java基础面试知识点
- Java面试笔试知识点之基础部分1
- 面试知识点总结——Java基础
- Java基础面试知识点总结
- 面试题库整理:java基础面试知识点
- java基础知识点、面试选择题归纳整理
- 面试知识点(第一弹:java基础)
- 【面试之java基础】小知识点汇总
- Java面试笔试知识点之基础部分3
- 知识点总结: Java 面试宝典 2013版(超长版) - Java 基础部分
- java面试知识点整理之java基础
- 【Java面试知识点】各大公司Java面试题目汇总-Java基础知识
- java基础面试知识点小结
- java基础面试知识点
- Java基础、面试知识点
- java基础面试知识点---------java中==和equals和hashCode的区别