一、java基础篇面试题

一、java基础

1.JDK 和 JRE 有什么区别?

jdk java开发工具

jre java运行时环境

https://blog.csdn.net/singit/article/details/62040688

2.== 和 equals 的区别是什么?

== 基本数据类型比较的是存储的值,引用数据类型比较的是被引用对象的地址

equals 不能比较基本数据类型,重写前比较的是引用对象的地址,重写后比较的是存储的值

https://www.cnblogs.com/gjmhome/p/14338216.html

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

如果两个对象的hashcode相同,不能判断equals一定为true,只能证明两个值都存放在同一个hash值下面

https://blog.csdn.net/weixin_35867608/article/details/112441917

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

final修饰类表示该类不能继承

final修饰方法表示方法不能被重写

final修饰常量表示常量一次赋值后不能修改

final是存储在一块固定内存中,该内存中值不能变

https://www.cnblogs.com/coderD/p/13823805.html

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

https://blog.csdn.net/Chen_006/article/details/88690019

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

String不是基础数据类型,是final修饰的java类

https://www.cnblogs.com/xiohao/p/4271080.html

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

java中操作字符串的类,我知道的有三个类,分别是String,StringBuffer和StringBuilder.这三个类都是以char[]的形式保存的字符串,但是String类型的字符串是不可变的,对String类型的字符床做修改操作都是相当于重新创建对象.而对StringBuffer和StringBuilder进行增删操作都是对同一个对象做操作.StringBuffer中的方法大部分都使用synchronized关键字修饰,所以StringBuffer是线程安全的,StringBuilder中的方法则没有,线程不安全,但是StringBuilder因为没有使用使用synchronized关键字修饰,所以性能更高,在单线程环境下我会选择使用StringBuilder,多线程环境下使用StringBuffer.如果生命的这个字符串几乎不做修改操作,那么我就直接使用String,因为不调用new关键字声明String类型的变量的话它不会在堆内存中创建对象,直接指向String的常量池,并且可以复用.效率更高.到这时候还不过瘾的话你就接着说这三个类创建的时候都是什么状态,扩容的时候又怎么扩容的等等,感觉应聘的初级程序员应该够用了吧…在不行就给他讲内存原理给它画图,还不行,那我也没办法了,估计你应聘的应该是架构…坦白说自己就知道这么多.

https://blog.csdn.net/qq_37358860/article/details/100313160

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

前者方式把值放在常量池中,常量池中没有重复的元素,后者被放到堆内存中,即使内容一样还是会创建新的对象

https://blog.csdn.net/zx1293406/article/details/90511458

9.如何将字符串反转?

reverse

https://blog.csdn.net/itchuxuezhe_yang/article/details/89970651

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

split,length,equals,contains,startsWith,endsWith,toUpperCase,toLowerCase,replace,replaceAll,replaceFirst,substring,trim,indexof,lastindexof

https://blog.csdn.net/sinat_41920065/article/details/107439921

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

不需要,抽象类不一定有抽象方法;但是包含一个抽象方法的类一定是抽象类

https://www.cnblogs.com/ynzj123/p/12617772.html

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

  • 抽象类不能被实例化

  • 抽象类可以有抽象方法,抽象方法只需声名,无需实现

  • 含有抽象方法的类必须声明为抽象类

  • 抽象方法不能被private修饰

  • 抽象方法不能被final修饰

  • 抽象方法不能被声明为静态

  • 抽象的子类必须实现抽象类中的所有方法,否则这个子类也是抽象类

https://blog.csdn.net/meism5/article/details/89377874

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

不能,抽象表示可以被继承的,final修饰的类不能被修改、继承

https://blog.csdn.net/meism5/article/details/89378192

14.接口和抽象类有什么区别

相同点:都不能被实例化

不同点:

1.接口中所有的方法都是抽象的

2.每个类只能继承一个抽象类,但可以实现多个接口

3.抽象类中不一定都是抽象方法

4.接口中基本数据类型为static而抽象类不是

https://blog.csdn.net/hchhan/article/details/82422721

https://www.cnblogs.com/jmyyyy/p/10960271.html

15.java 中 IO 流分为几种

  • 按照流的流向分,可以分为输入流和输出流;
  • 按照操作单元划分,可以划分为字节流和字符流;
  • 按照流的角色划分为节点流和处理流。

https://blog.csdn.net/weixin_43643277/article/details/96282707

16.BIO、NIO、AIO 有什么区别?

https://blog.csdn.net/weixin_43643277/article/details/96282707

17.Files的常用方法有哪些?

https://blog.csdn.net/yangzhihong650/article/details/105095517

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值