1. JDK 和 JRE 有什么区别?
JDK是java开发工具包
JRE是运行环境
默认JDK里面有JRE
简单的来说如果运行java册程序,jre即可满足。如果编写家java程序并且要运行,那么需要JDK
2. == 和 equals 的区别是什么?
有人说==是比较值的 equals是比较对象的
其实我觉得这是不准确的,在equals源码中 equals用的也是== 那么但是他是把对象转变成ascli码
然后进行了长度的比较,如果长度不相同那就直接返回false 如果相同在一个一个循环着比较。
那么说了equals的比较方式,那么就可以推断出他没有比较地址。比如说我创建一个对象为Integer aa=222 再创建一个对象Integer bb=222 那么他们是相等的 aa == bb 是不相等的。但是如果int在-127 128 之间那么他们是相等的因为他们有一个常量池
3. 两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗?
不一定,hashCode()算法是通过hash取余的,比如5除2余1 11除以2也是余1 那么11和5 肯定是不一样的呀
4. final 在 Java 中有什么作用?
修饰的类不能被继承 方法不能被重写 变量变成常量
5. Java 中的 Math. round(-1. 5) 等于多少?
-1.0
6. String 属于基础的数据类型吗?
String 类型不是数据类型 java数据类型分为 基本数据类型和引用数据类型。
基本数据类型:bety 、short、char、int、double、float、long、boolean
引用数据类型:数据 类 接口
7. Java 中操作字符串都有哪些类?它们之间有什么区别?
String :String底层是final修饰 不可变的 是线程安全的
StringBuffer :可变的,效率String要高,线程安全的。
StringBuilder:线程不安全的,可变的,线程不安全
8. String str="i"与 String str=new String("i")一样吗?
不一样 ,String str ="i" 分配到常量池
new String("i")分配到堆
9. 如何将字符串反转?
StringBuffer 或者 StringBuilder 调用reverse();方法
10. String 类的常用方法都有那些?
equlse() indexOf() length() split() charAt() subString() getBety() replace()