Java面试题(刷题宝)
1. Java的基础int类型占多少位,占用多少个字节
- Java的基础int类型占32位
- 占用4字节
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()方法