java面试题

java基础
1.JDK和JRE有什么区别?

  • JDK: java开发工具包
  • JRE: java运行环境
  • 具体来说JDK包含了JRE,还包含了编译器javac,如果是编写Java程序,需要安装JDK,如果只运行java程序,只需要安装JRE

2. == 和 equals 的区别是什么?
== 解读:
对于基本类型和引用类型 ==的作用效果是不同的:
基本类型:比较的是值是否相同 引用类型:比较的是引用是否相同

equals 解读:
equals 本质上就是 ==,只不过 String 和 Integer 等重写了 equals 方法,把它变成了值比较。

== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。

3. 两个对象的 hashCode()相同,则 equals()也一定为 true?

不对,两个对象的 hashCode()相同,equals()不一定 true。
hash值相同不代表键对值相等

4. final 在 java 中有什么作用?

  • final 修饰的类叫最终类,该类不能被继承
  • final 修饰的方法不能被重写
  • final 修饰的变量叫做常量,常量必须初始化,初始化之后不能被修改,全部大写

5.java中操作字符串都有哪些类?之间有什么区别?
操作字符串的有:String StringBuffer StringBuilder
String和StringBuffer StringBuilder的区别在于String生命的是不可变的对象,而 StringBuffer StringBuilder可以在原有的基础上进行操作

StringBuffer 和 StringBuilder最大区别在于 StringBuffer是线程安全的,而 StringBuilder是非线程安全的,但 StringBuilder性能高于 StringBuffer,所以单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer.

6. 如何将字符串反转?
使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。

StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse()); // gfedcba

StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("abcdefg");
System.out.println(stringBuilder.reverse()); // gfedcba

7.String 类的常用方法都有那些?

- indexOf():返回指定字符的索引.
- chartAt():返回指定所引出的字符
- replace():字符串替换
- trim(): 去除字符串两端空白 
- split():分割字符串,返回一个分割后的字符串数组。    
- getBytes():返回字符串的 byte 类型数组。    
- length():返回字符串长度
-  toLowerCase():将字符串转成小写字母。       
- toUpperCase():将字符串转成大写字符。         
- substring():截取字符串。    equals():字符串比较。

8.抽象类必须要有抽象方法吗?


abstract class Cat {
    public static void sayHi() {
        System.out.println("hi~");
    }
}

不一定非要抽象方法

  1. 普通类和抽象类有哪些区别?

普通类不能包含抽象方法,抽象类可以包含抽象方法。

抽象类不能直接实例化,普通类可以直接实例化。

10.抽象类能使用final修饰吗

不能,定义接口就是让其他类继承,如果定义为final该类则不能被修饰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值