没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/11076542/bg1.jpg)
今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次。对
于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致
面试题将帮助我们减少许多麻烦。在跳槽季来临之前,特地做这个系列的文章,一方面
帮助自己巩固下基础,另一方面也希望帮助想要换工作的朋友。
相关概念
面向对象的三个特征
封装,继承,多态,这个应该是人人皆知,有时候也会加上抽象。
多态的好处
允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多
种不同的行为方式(发送消息就是函数调用)。主要有以下优点:
1. 可替换性:多态对已存在代码具有可替换性
2. 可扩充性:增加新的子类不影响已经存在的类结构
3. 接口性:多态是超类通过方法签名,向子类提供一个公共接口,由子类来完善或者重写它
来实现的。
4. 灵活性
5. 简化性
代码中如何实现多态
实现多态主要有以下三种方式:
1. 接口实现¾
![](https://csdnimg.cn/release/download_crawler_static/11076542/bg2.jpg)
2. 继承父类重写方法¾
3. 同一类中进行方法重载
虚拟机是如何实现多态的
动态绑定技术(dynamic binding),执行期间判断所引用对象的实际类型,根据实际
类型调用对应的方法。
接口的意义
接口的意义用三个词就可以概括:规范,扩展,回调。
抽象类的意义
抽象类的意义可以用三句话来概括:
1. 为其他子类提供一个公共的类型
2. 封装子类中重复定义的内容
3. 定义抽象方法,子类虽然有不同的实现,但是定义时一致的
接口和抽象类的区别
![](https://csdnimg.cn/release/download_crawler_static/11076542/bg3.jpg)
父类的静态方法能否被子类重写
不能。重写只适用于实例方法,不能用于静态方法,而子类当中含有和父类相同签名的
静态方法,我们一般称之为隐藏。
什么是不可变对象
不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,
如¾String、Integer 及其它包装类。
静态变量和实例变量的区别?
静态变量存储在方法区,属于类所有。实例变量存储在堆当中,其引用存在当前线程
栈。
![](https://csdnimg.cn/release/download_crawler_static/11076542/bg4.jpg)
能否创建一个包含可变对象的不可变对象?
当然可以创建一个包含可变对象的不可变对象的,你只需要谨慎一点,不要共享可变
对象的引用就可以了,如果需要变化时,就返回原对象的一个拷贝。最常见的例子就
是对象中包含一个日期对象的引用。
java 创建对象的几种方式
1. 采用 new
2. 通过反射
3. 采用 clone
4. 通过序列化机制
前 2 者都需要显式地调用构造方法。造成耦合性最高的恰好是第一种,因此你发现无
论什么框架,只要涉及到解耦必先减少 new 的使用。
switch 中能否使用 string 做参数
在 idk 1.7 之前,switch 只能支持 byte, short, char, int 或者其对应的封装类以及
Enum 类型。从 idk 1.7 之后 switch 开始支持 String。
switch 能否作用在 byte, long 上?
可以用在 byte 上,但是不能用在 long 上。
![](https://csdnimg.cn/release/download_crawler_static/11076542/bg5.jpg)
String s1=”ab”, String s2=”a”+”b”, String s3=”a”, String
s4=”b”, s5=s3+s4 请问 s5==s2 返回什么?
返回 false。在编译过程中,编译器会将 s2 直接优化为”ab”,会将其放置在常量池当
中,s5 则是被创建在堆区,相当于 s5=new String(“ab”);
你对 String 对象的 intern()熟悉么?
intern()方法会首先从常量池中查找是否存在该常量值,如果常量池中不存在则现在常
量池中创建,如果已经存在则直接返回。
比如¾
String s1=”aa”;'
String s2=s1.intern();'
System.out.print(s1==s2);//返回 true
Object 中有哪些公共方法?
1. equals()
2. clone()
3. getClass()
4. notify(),notifyAll(),wait()
5. toString
java 当中的四种引用
强引用,软引用,弱引用,虚引用。不同的引用类型主要体现在 GC 上:
剩余41页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/7f43e8479460488ba468d106a425fe95_weixin_39483102.jpg!1)
黑子的程序员
- 粉丝: 6
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)