没有合适的资源?快使用搜索试试~ 我知道了~
面试题(2).docx
需积分: 5 0 下载量 25 浏览量
2022-08-29
18:01:09
上传
评论
收藏 23KB DOCX 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/86502883/0001-e20c3ca90bad99308eafcadb69eeed74_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
11页
面试题(2).docx
资源推荐
资源详情
资源评论
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/86502883/bg1.jpg)
一、Java 基础部分
1. Java 面向对象的三个特征
封装:对象只需要选择性的对外公开一些属性和行为。
继承:子对象可以继承父对象的属性和行为,并且可以在其之上进行修改以适合更特殊的场
景需求。
多态:允许不同类的对象对同一消息做出响应。
2. Java 中基本的数据类型有哪些 以及他们的占用字节
数据类型 占用字节
byte 1
short 2
int 4
long 8
float 4
double 8
char 2
boolean 4
3. int 和 Integer 的区别
int 是 Java 中的原始类型,Integer 是 Java 为 int 提供的封装类,他们有不同的特征和用法,
包括大小、速度、默认值。
4. String、StringBuilder、StringBuffer 的区别及使用场景
String 一旦定义就不可改变,可空赋值。操作少量数据时使用。
StringBuilder 可改变,线程不安全。操作单线程大量数据时使用。
StringBuffer 可改变,线程安全。操作多线程大量数据时使用。
5. ArrayList、Vector 和 LinkedList 的区别及使用场景
ArrayList 和 Vector 都是使用数组方式存储数据,允许按序号索引元素,但是插入数据会涉及
![](https://csdnimg.cn/release/download_crawler_static/86502883/bg2.jpg)
到元素移动等内存操作,所以索引快插入慢。
ArrayList 懒加载 默认大小 10 每次扩容 1.5 倍 线程不安全 性能较高
Vector 实例化时初始化 默认大小 10 每次扩容 2 倍 线程安全 性能较低 已弃用
多读少写建议使用 CopyOnWriteArrayList
CopyOnWriteArrayList 原理是发生修改的时候复制一份
多写少读或读写比较均匀建议使用 Connections.synchronizedList
LinkedList 使用双向链表方式存储数据,插入只需要记录本项的前后项,索引需要向前或向
后进行遍历,所以插入速度较快,线程不安全,频繁在任意位置插入和删除的情况可以使用,
如果需要多线程访问,可以使用 Connections.synchronizedList()或 ConcurrentLinkedQueue
6. Collection 和 Collections 的区别
Collection 是集合类上级接口,继承他的主要有 List 和 Set
Collections 是集合类的帮助类,提供了对集合的搜索、排序、线程安全化等操作。
7. List 和 Map 的区别
List 是存储单列数据的集合,Map 是存储键值对双列数据的集合
List 存储的数据是有顺序且可重复的,Map 存储的数据是无顺序,键不可重复,值可重复的。
8. HashMap 和 HashTable 的区别
HashMap 是 Map 接口的实现,非线程安全,允许空键值。
HashTable 是 Dictionary 的子类, 线程 安全 , 不 允 许 空 键值 。几 乎被 淘汰 ,建 议 使 用
ConcurrentHashMap。
HashMap 使用的是快速失败迭代器,在迭代器创建后,除非通过迭代器自身的 remove 或者
add 方法,其他任何方式的修改都会抛出异常。
9. HashMap 底层实现原理和扩容机制
JDK1.8 以前:数组+单链表的组合,以键值对的方式存储元素。
JDK1.8 及以后:引入红黑树结构,添加元素时,若链表个数大于 8,链表会转换为红黑树,
反之小于 6 时会修剪或还原成链表结构。
选择 6 和 8 可以有效防止频繁的链表和红黑树转换。
![](https://csdnimg.cn/release/download_crawler_static/86502883/bg3.jpg)
扩容条件:
存放新值的时候当前已有元素个数大于阈值。
存放新值的时候当前存放数据发生 hash 碰撞(当前 key 计算的 hash 值换算出来的数组下标
位置已经存在值)
默认容量是 16,负载因子 0.75,所以扩容阈值是 12。
每次扩容的容量是原有的 2 倍。
10. HashMap 什么样的类适合作为键
String 最为常见,因为 String 对象不可变,且重写了 equals 和 hashcode 方法。
不可变性是必要的,如果 key 的 hashcode 存入和获取是不一致,就无法找到。
获取对象时需要用到 equals 和 hashCode 方法,正确的重写这两个方法是非常重要的,因为
两个不相等的对象返回不同的 hashCode 的话,碰撞的几率就会小些,就可以提高 HashMap
的性能。
11. final、finally、finalize 的区别
final 用于修饰属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally 是异常处理语句结构的一部分,表示总是执行。
finalize 是 Object 类的一个方法,在 GC 执行时会调用被回收对象的此方法。
12. sleep()和 wait()的区别
sleep()是 Thread 类的,wait()是 Object 类的方法
sleep 不会释放锁,wait 会释放锁。
sleep 可在任意地方使用,wait notify notifyAll 只能在 synchronized 块\方法中使用。
sleep 必须捕获异常,而 wait 不需要。
13. 抽象类和接口的区别、以及使用场景
抽象类中可以有构造方法、静态方法、普通方法、普通成员变量。接口中不能有。
抽象类中的抽象方法访问类型可以是 public、protected 和默认类型,接口中只能是 public。
抽象类中的静态成员变量访问类型可以任意,接口中只能是 public 的。
一个类只能继承一个类,但是可以实现多个接口。
剩余10页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/e42206d8ec1d4aaba709aeadccac0342_qq_45270066.jpg!1)
Do_it_now.
- 粉丝: 21
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的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)
最新资源
- 科大讯飞语音引擎 jar包 demo,科大讯飞语音合成引擎3.0,支持4.0系统以上,文字转语音输出.zip
- Java架构面试笔试专题资料及经验(含答案)SpringBoot面试Linux面试专题及答案 合集.zip
- 头歌c语言实验答案tion-model-for-ne开发笔记
- docker配置使用-model-for-networK开发demo
- docker配置使用vaWeb-mas笔记
- c语言连接两个字符串-mas开发笔记
- 俄罗斯引擎yandex进入x-master 笔记
- 头歌c语言实验答案el-for-network-ids-ma笔记
- 一个delphi写的连连看
- 植物大战僵尸-杂交版 最新版本
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![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)