Java面试题01

1.JDK和JRE的区别

        JDK(Java Development Kit)是Java开发工具包,用于开发和编译Java程序。它包含了编 译器、调试器等开发工具,还有Java类库。JRE(Java Runtime Environment)是Java运行时环 境,用于运行已编译的Java程序。它包含Java虚拟机(JVM)和运行时类库。简而言之,JDK用于 开发,JRE用于运行。

2.== 和 equals 的区别

        == 运算符用于比较两个对象的引用是否相同,即它们是否指向同一内存地址。 equals 方 法用于比较两个对象的内容是否相等。默认情况下, equals 与 == 的效果相同,都是比较引用。 但在类中可以重写 equals 方法,实现自定义的内容比较逻辑。

3.hashCode() 和 equals() 的关系

        hashCode是一个用于散列和查找的值,而equals用于比较对象的内容是否相等。如果两个 对象的hashCode相同,表示它们在散列存储结构中可能位于同一位置,但hashCode相同并不意 味着equals一定为true。两个对象相等(equals返回true)时,它们的hashCode通常应相同,但 并非绝对要求。

4.final 在 java 中的作用

        在Java中,final关键字可以用于变量、方法和类。用于变量时,表示该变量是一个常量,只 能被赋值一次。用于方法时,表示方法不能被子类重写。用于类时,表示类不能被继承。final修 饰的变量会在编译时进行常量折叠,优化代码执行效率。

5.Math.round(-1.5) 的结果

        Math.round(-1.5)的结果是-1。Math.round方法对小数进行四舍五入,-1.5四舍五入后取到 更接近的整数-1。

6.String 是否属于基础数据类型

        不是,String不属于基础数据类型。基础数据类型包括int、double、boolean等,用于存 储基本的数值类型。而String是引用类型,用来表示一串字符。

7.Java 中操作字符串的类及区别

        在Java中,操作字符串的类有String、StringBuilder和StringBuffer。String是不可变的, 每次修改都会生成新的String对象,适合不经常修改的情况。StringBuilder和StringBuffer是可变 的,可以高效地进行字符串的修改,StringBuilder适用于单线程环境,而StringBuffer适用于多线 程环境。

8.String str="i" 和 String str=new String("i") 的区别

        String str="i"是将字符串"i"放入字符串池,如果池中已存在则返回引用,否则创建新引用。 String str=new String("i")在堆内存中创建新的String对象,不论池中是否已存在相同字符串

9.如何将字符串反转

可以使用StringBuilder的reverse方法来反转字符串。例如:

String original = "Hello World";
StringBuilder reversed = new StringBuilder(original);
reversed = reversed.reverse();
String reversedString = reversed.toString();

10.String 类的常用方法

        String类的常用方法包括charAt、length、substring、concat、trim、toUpperCase、 toLowerCase、startsWith、endsWith等,用于不同的字符串操作。

  1. charAt(int index):这个方法返回指定索引位置的字符。索引从0开始,例如,s.charAt(0)返回字符串s的第一个字符。
  2. length():这个方法返回字符串的长度。例如,对于字符串"hello"length()返回5。
  3. substring(int beginIndex)substring(int beginIndex, int endIndex):这两个方法返回一个新字符串,它是此字符串的一个子字符串。第一个版本只有一个参数,它返回从beginIndex到字符串末尾的所有字符。第二个版本有两个参数,它返回从beginIndex到endIndex-1的所有字符。
  4. concat(String str):这个方法连接当前字符串和另一个字符串str。例如,"hello".concat("world")返回"helloworld"。
  5. trim():这个方法返回一个字符串,去掉前后的空白字符。
  6. toUpperCase():这个方法返回字符串的大写形式。
  7. toLowerCase():这个方法返回字符串的小写形式。
  8. startsWith(String prefix)endsWith(String suffix):这些方法检查此字符串是否以指定的前缀或后缀开始或结束。

你可能感兴趣的:(Java面试八股文,java,开发语言)