ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

2022-JAVA面试必背

2022-02-20 22:03:58  阅读:207  来源: 互联网

标签:必背 JAVA str3 str2 str1 equals 2022 抽象类 重写


一、什么是面向对象?

1. 把具体的事物抽象成类,封装事物的特征。

2. 面向对象的特征:封装、继承、多态

封装:外部调用者无需关注内部细节

继承:子类继承基类的共同属性,并作出个性化扩展

多态:外部调用一个方法时,可以有不同的执行逻辑和结果,继承、重写、父类引用指向子类对象

二、JDK、JRE、JVM

JDK:java开发环境

JRE:java运行环境

JVM:java虚拟机

三、==和equals

==是运算符,对比的是栈中的值,equals比较的是对中对象的内存地址

常见于与String相关的笔试题,Object类提供的equals方法底层使用的是==,而String类重写了equals方法,没重写就是比地址,重写了就是比值

例如

str1在常量池中指向“Hello”,str2在常量池和堆空间中都创建了对象,str3指向了str2的引用(内存地址),所以

str1 == str2 str1在常量池中,str2在堆空间中,==比地址,false

str1 == str3 str1在常量池中,str3在堆空间中,==比地址,false

str2 == str3 str2在堆空间中,str3在堆空间中,str2传递引用给str3,==比地址,true

str1.equals(str2) 已重写,equals比较值,str1=“Hello”,str2=“Hello”,true

str1.equals(str3) 已重写,equals比较值,str1=“Hello”,str3=str2,true

str2.equals(str3) 已重写,equals比较值,str3 = str2,true

四、final

1.用法

修饰类:这个类不能被继承

修饰方法:这个方法不能被重写,但能重载

修饰变量:修饰基本数据类型时,这个变量不能被修改;修饰引用类型时,不能更改引用,可以更改属性值

2.成员变量声明时要赋初值,局部变量使用前要赋初值

3.局部内部类和匿名内部类只能访问外部的final变量(lamda表达式),因为

五、String、StringBuffer、StringBuilder

StringStringBufferStringBuilder
有啥用创建和操作字符串
有啥区别创建的字符串不能修改,只会修改引用可以修改字符串内容单线程
线程安全线程安全线程不安全
性能等级321
使用场景多线程共享变量使用优先使用

六、重载和重写

重载:同一个类中,方法名必须相同

重写:父类和子类中,方法名、参数列表必须相同,访问修饰符和返回值类型要小于父类

private和protected不允许重写

七、接口和抽象类的区别

语法上:

1.接口中只能是抽象方法,抽象类可以存在普通成员函数

2.接口中的成员变量只能是public static final ,抽象类中随便

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

使用场景上,接口更偏向于做什么,抽象类偏向于事物的本质是什么

八、List和Set的区别

List:有序,可重复。

Set:无序,不可重复;只能用Iterator取出所有元素。

九、hashCode和equals

1.hashCode()获取到一个int型的hashcode,这个哈希码的作用是确定该对象在哈希表中的索引位置,哈希表存储的是散列结构即k-v,能够通过key快速检索对象在堆空间的位置。

2.在存储数据时,发生hash冲突时会调用equals检查两个对象是否相同。

十、

标签:必背,JAVA,str3,str2,str1,equals,2022,抽象类,重写
来源: https://blog.csdn.net/qq_42839453/article/details/123035055

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有