1、JDK和JRE有什么区别?
JDK: java开发工具包
JRE: java运行环境
JDK包含JRE,同时还包含了编译java源码的编译器javac, 还包含了很多java程序调试和分析工具。
运行java安装JRE就可以,编写java程序,需要安装JDK
2、== 和 equals的区别是什么?
注释:
基本类型:undefined, boolean, number, string, null
引用类型:除基本类型之外的引用类型,也就是对象(属性和方法的集合)
基本比较:两个值比较
引用比较:内存中的对象比较
(1)== 有两种情况:
基本类型:比较值是否相同
引用类型:比较引用是否相同
(2)equals 只有一种情况:
默认情况为引用比较
String、Integer等重写了equals方法,把它变成了值比较
3、两个对象的haseCode()相同,则equals()也一定为true?
错误!不一定为true
在散列表中,haseCode()相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等吧。
4、final在java中有什么作用?
1:final修饰的类叫最终类,该类不能被继承。
2:final修饰的方法不能被重写。
3:final修饰的变量叫常量,常量必须初始化,初始化之后值不能被修改。
5、 String 属于基本类型吗?
不属于,String属于对象
基础类型有8种:byte、boolean、char、short、int、float、long、double、
6、java中操作字符串的都有哪些类?之间的区别?
String、StringBuffer、StringBuilder
区别:
String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象。
StringBuffer可以在原有对象的基础上进行操作,所以在进程改变字符串内容的情况下最好不要使用String
StringBuffer和StringBuider最大的区别在于,StringBuffer是线程安全的,而StringBuilder是非线程安全的,单StringBuilder的性能却高于StringBuffer,所以在单线程环境下推荐使用StringBuilder, 多线程环境下推荐使用StringBuffer.
7、java容器有哪些?
8、
9、