1.JDK 和JRE的区别是什么?
JDK:是 java development kit 的简称,java开发工具包
JRE:是 java runtime environment java运行时环境的简称.
具体来说 jdk包含jre
除了jre jdk还包含一些编译java源码的javac 调试和分析工具等.
2.==和 equals的区别是什么?
==对于基本数据类型比较的数值,对于引用数据类型比较的是引用的堆内存的地址.而equals默认情况下比较引用地址,但是如果重写了equals方法,那么会进行值比较.
3.两个对象的hashcode相同,则equals也一定为true吗
不对,两个对象hashcode相同,equals不一定相同
4.final在java中的应用?
1.修饰类,该类不能被继承
2.修饰方法,该方法不能被重写
3.修饰变量,该变量的值不能被修改,该变量是一个常量.
5.java中操作字符串有哪些类?有什么区别?
首先,有String,StringBuffer,StringBuilder三个类
String是一个不变的对象,每次操作都会产生一个新的string对象,然后将引用指向新的string对象
StringBuffer和StringBuilder 可以在原有对象的基础上进行操作,所以频繁改变字符串的情况下尽量用StringBuffer和StringBuilder
StringBuffer是线程安全的
StringBuilder是线程不安全的,但是效率高.
6.String str="i" String str = new String("i")是否一样
内存分配方式不一样.
第一种将常量池中的i引用指向str
第二种是在堆内存中开辟出一个空间,创建一个新的String对象
7.String类的常用方法有哪些?
indexOf() 返回指定字符的索引
charAt() 返回指定索引处的字符
replace() 字符串替换
trim() 去除字符串两端的空白
split() 根据表达式分割字符串
getBytes() 返回字符串的字节数组
length() 返回字符串长度
toLowerCase 转小写
toUpperCase 转大写
8.抽象类必须要有抽象方法吗
不必须.抽象类不一定必须有抽象方法.
网友评论