Java面试题(八股文)

11.Integer和int的区别?

  1. Integer是int的包装类,int是Java的基本数据类型
  2. Integer变量必须实例话后才能使用,int不需要
  3. Integer实际上是对象的使用,当new一个Integer时,实际上是生成一个指针指向新生成的对象,int是数据的存储
  4. Integer的默认值是null,int的默认值是0

12.new Integer (1)和 Integer a = 1有什么区别?

Integer a = 1

Integer 变量指向的是常量池中的对象

new Integer (1)

new Integer ()变量指向的是堆中新建的对象,两者的内存地址不同

13.Integer a=128 b=128 system.out.print(a==b)的结果为false为什么?

直接使用Integer包装类它的范围在[-128,127]之间不会生成新的对象,通过查看源码可以得知调用的是Integer.valueof方法,就相当于直接int赋值,直接使用Java常量池中的对象,超过过了这个范围就会在堆中new一个对象

14.Java中操作字符串的类有哪些,他们之间有什么区别?

Java中操作字符串的类有string,stringBuffer,stringBuilder ,string和stringBuffer,stringBuilder的区别在于String生成的是不可变的对象,每次操作string都会生成一个新的对象,然后指向新的对象,stringBuffer,stringBuilder是在原有的基础上进行操作的,所以在经常改动的情况下不使用string。

stringBuffer,stringBuilder的区别在于stringBuffer是线程安全的,stringBuilder是非线程安全的,stringBuilder的性能高于stringBuffer,单线程情况下推荐使用stringBuilder多线程情况下推荐使用stringBuffer。

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

不一样,内存的分配方式不一样,String str="i"会被java虚拟机分配到常量池中,String str=new String("i")会被分配到堆内存中

16.如何将字符串反转?

先将数据转换成stringBuffer或stringBuilder的类型然后使用reverse方法

17.字符串的常用方法?

  1. indexOf 获取指定字符处索引
  2. charAt 返回指定索引的字符
  3. equals 字符串的比较
  4. trim 去除字符串两端的空白
  5. substring 截取字符串
  6. replace 字符串替换
  7. tolowercase 将字符串转成小写
  8. touppercase 将字符串转成大写
  9. split 分割字符串,并返回分割后的字符串数组
  10. length 返回字符串长度
  11. getBytes 返回字串中byte类型的数组

18.普通类和抽象类的区别?

普通类没有抽象方法,抽象类有抽象方法

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

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

不需要,抽象类中可以没有抽象方法

20.抽象类可以使用final修饰吗?

不可以,定义抽象类就是为了方便别的类进行继承的,final修饰就不能再被继承,两者相互冲突会产生矛盾,所以抽象类不可以使用final修饰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值