java 基础面试题

1. jdk与jre的区别

    jre:java runtime environment,java运行时环境,包含java虚拟机,java基础类库。

    jdk:java development kit,java开发工具包。

    jdk包含jre,同时还包含编译java源码的编译器javac,还包含了很多java程序调试和分析工具:jconsole,jvisualvm等工具软件。

2.equals 和 == 的区别

    ==:基本数据类型之间的比较用==,比较的是他们的值,基本数据类型包含--byte,short,char,int,long,float,double,boolean。

    引用数据类型用==比较的时候,比较的是他们在内存中的存放地址,即堆内存地址。除非是同一个new出来的对象,比较结果为true,否则比较都会为false。因为每new一次,都会重新开辟堆内存空间。

    equals:默认比较对象的内存地址值,和==结果相同,在一些类库如String、Integer、Date等中都会对其进行重写,比较对象的成员变量值是否相等。

3. 两个对象equals相等,hashcode值一定相等吗?

    按规定重写的情况下,两个对象equals相等,则他们的hashcode值一定相等,反之则不一定;不按照规定重写则都不一定相等。

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

    用于修饰类,类属性,类方法。被final关键字修饰的类不能被继承,被final关键字修饰的类属性和方法不能被覆盖(重写)

5.Java 中的 Math.round(-1.5) 等于多少?

    1。源码暂时没看太明白,希望看透源码的留言帮忙解释下

6. String 属于基础的数据类型吗?

    不属于,基础类型包括 byte,short,char,int,long,float,double,boolean.String是包装类

7.Java 中操作字符串都有哪些类?它们之间有什么区别?

    String:被final修饰,对字符串的操作会返回新的String对象

    StringBuffer:对字符串的操作都添加了synchronized,保证线程安全

   StringBuilder:线程不安全

8.String str="i"与 String str=new String("i")一样吗?

    两个值==比较是false(比较的是地址),equals比较是true(比较的是值)

    由于两个值相等,所以往hashSet放只能放一个

    直接赋值,无论付给多少个变量,==判断都为true,因为赋值时会先检查常量池中是否存在,存在直接将地址付给指针

    new String(),每次操作都会创建一个新的对象,开辟一块新的内存

9.如何将字符串反转?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值