20220214 Java基础面试题(刷题宝)第一天
    Java面试题(刷题宝)
 
1. Java的基础int类型占多少位,占用多少个字节
 
 
2. Java语言中的基本类型有哪些
 
- byte
 - short
 - long
 - float
 - double
 - char
 - boolean
 
 
3. JDK和JRE有什么区别
 
- JDK:Java Development Kit 的简称,Java开发工具包,提供了Java的开发环境和运行环境
 - JRE:Java Runtime Environment 的简称,Java运行环境,为Java的运行提供了所需要环境
 - 具体来说JDK其实包含了JRE,同时还包含了编译Java源码的编译器javac,还包含了很多Java程序调试和分析的工具
 - 简单来说,如果需要运行Java程序只需安装JRE就可以了,如果需要编写Java程序,需要安装JDK
 
 
4. == 和 equals 的区别是什么
 
- 基本类型:== 是比较的是值是否相同
 - 引用类型:==比较的是引用是否相同(即引用的地址),equals 比较两个对象的数据是否一致
 
 
5. final在Java中有什么作用
 
- final 修饰的类叫最终类,该类不能被继承
 - final修饰的方法不能被重写
 - final修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改
 
 
6. Java中的Math.round(-1.5)等于多少
 
- 等于 -1
 - 因为在数轴上取值时,中间值(0.5)向右取整
 - 所以正0.5是往上取整
 - 负0.5是直接舍弃
 
 
7. String属于基础的数据类型吗
 
- String不属于基础类型
 - 基础类型有8种: 
  
- byte
 - short
 - long
 - char
 - float
 - double
 - boolean
 - int
 
  - String属于对象
 
 
8. Java中操作字符串都有哪些类?它们之间有什么区别
 
- 操作字符串的类有:String、StringBuffer、StringBuilder
 - String和StringBuffer、StringBuilder的区别在于String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而StringBuffer、StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要是String
 - StringBuffer和StringBuilder最大的区别在于,StringBuffer是线程安全的,而StringBuilder是非线程安全的,但StringBuilder的性能却高于StringBuffer,
 - 在单线程环境下推荐使用StringBuilder
 - 在多线程环境下推荐使用StringBuffer
 
 
9. String str=“i” 与String str = new String(“i”)一样吗
 
- 不一样
 - 因为内存的分配方式不一样
 - String str = “i” 的方式,Java虚拟机会将其分配到常量池中
 - String str = new String(“i”) 则会被分到堆内存中
 
 
10. 如何将字符串反转
 
- 使用StringBuilder或者StringBuffer的reverse()方法