java面试基础(随时更新)
1、JDK 和 JRE 有什么区别?
jdk包含jre,jre是运行java的运行环境,jdk是包含了jre,并且安装了jdk就可以编译java,jdk包含编译java源码的编译器javac,实现项目功能的很多类包
2、 == 和 equals 的区别是什么?
==比较的是引用类型是否相等,equals被String类重写了方法,因为本质上equals属于object类,所以,重写的方法里的功能是比较值是否相等。string s1="123",
String s2=new String("123"),则,s1==s2为false,s1.equals(s2)是true。
equals方法在object这个祖宗类中实现的功能是比较两个对象的引用是否相同,也就是new出来的对象是哪个类的
且,hashcode()这个方法是输出你这个对象对应的内存中的地址,两个对象的hashcode()的值可以相同但是他们的在String类中的方法(比较对象的值是否相同)可以不同。举个例子:对象1的值为9,去%8,结果为1,对象二的值为17,去%8,结果也为1;内存中放在一起,但是值是不同的。
3、面向对象的特征有哪些方面?
继承:子类可以继承父类:java只有单继承,但是作为接口可以实现多继承,接口是一个规范,约定俗称的,接口是个特殊的类,且接口类中的没有属性,有方法声明,没有方法实现。实现接口的类需要重写接口中的方法。
封装:父类中的private属性的东西,子类无法访问。且 insanceof关键字是区分对象1和对象2是否是子类和父类继承的关系,是个Boolean型。
多态:
4.float f=3.4;是否正确?
3.4是双精度 是double类型,3.4f是单精度。
5.Java—重写与重载的区别
答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。
6.常用类String中 intern()方法:
1.当常量池中不存在"abc"这个字符串的引用,将这个对象的引用加入常量池,返回这个对象的引用(new对象的时候都是将对象放在了堆中,就是变量都是放在堆中。)
2.当常量池中存在"abc"这个字符串的引用,返回这个对象的引用;
7.什么是类的初始化,哪些操作可以初始化类,哪些不行
1.一个Java类的完整的生命周期会经历加载、连接、初始化、使用、和卸载五个阶段
2.类初始化做的事情:为静态变量赋予初始值;执行类中的静态代码块,而且,静态代码块有且仅执行一次
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)