自我学习-笔记

基本数据类型与包装类的区别:

基本数据类型与包装类有什么区别
intinteger
声明的变量中直接存放数值,默认值未0
声明的变量存放的是对象的地址引用,默认值为null
两个通过 new 生成的 Integer 对象,由于在堆中地址不同,所以永远不相等
声明的两个int变量值相等那两个变量就相等
通过 new 生成的 Integer 对象和非通过 new 生成的 Integer 对象相比较时,由于前者存放在堆中,后者存放在 Java 常量池中,所以永远不相等
两个非通过 new 生成的 Integer 对象比较时,如果两个变量的数值相等且在 -128 127 之间,
结果就相等(享元模式)
int Integer 比较时,只要数值相等,结果就相等,因为包装类和基本数据类型比较时,会自动拆箱,将 Integer 转化为 int

String、StringBuilder、StringBuffer 区别:

String、StringBuilder、StringBuffer 区别
stringstringbuilderstringbuffer
三者 底层都是 char[] 存储数据, JDK1.9 之后使用的是 byte[](常常存的是短字符串)
底层的 char[] final 修饰每次对string的操作都似乎生成新对象

可变字符串适合字符串的拼接等操作

线程不安全的,方法没有 synchronized 修饰,性能较高
线程安全的,方法有 synchronized 修饰,但性能较低

== 和 equals 的区别:

== 和 equals 区别
==equals
比较的是对象引用的地址是否相等默认比较行为和“==”一致,通常复写来进行对象之间内容的比较

final 和 finally 和 finalize 的区别:

final 和 finally 和 finalize区别
finalfinallyfinalize

对于变量:不可被修改

作为异常处理的一部分,它只能用在 try/catch 语句中,并且附带一个语句块,表示这段语句最终一定会被执行,经常被用在需要释放资源的情况下
说每一个对象都有finalize()方法,在 gc 启动,该对象被回收的时候被调用(凡是new出来的对象都是可以被gc搞定的)
对于方法:不可被重写
对于类:   不可被继承

Collection体系:

Collection接口
ListSetMap
ArrayList
Vector
LinkedList
HashSet
TreeSet
HashMap
TreeMap
HashTable
Properties
底层数据结构是数组,查询性能高,增删性能低
底层数据结构是数组,查询性能高,增删性能低
底层数据结构是双向链表,查询性能低,增删性能高
无序不重复的,使用 HashMap key 存储元素,判断重复依据是 hashCode() 和 equals()
有序不重复的,底层使用 TreeMap key 存储元素,排序方式分为自然排序,比较器排序
key 的值没有顺序,线程不安
key 的值可以自然排序,线程不安全
它的 key value 都不允许为 null ,线程安全
它的 key value 都是 String 类型的,线程安全

List 和 Set 和 Map 的区别:

List 和 Set 和 Map 的区别
List
SetMap
有序,可重复,允许插入多个null 元素,元素都有索引
无序,不可重复,只允许存入一个null 元素,必须保证元素唯一性
是键值对集合,存储键、值和之间的映射。
keyvalue
无序,唯一不要求有序,允许重复

HashMap 和 HashTable 的区别:

HashMap 和 HashTable 的区别
HashMapHashTable
线程不安全,性能较高
线程安全,性能较低
key value 都允许为 null
key value 都不能为 null
如果需要考虑线程安全的高并发实现,建议使用ConcurrentHashMap

ArrayList 和 LinkedList 和 Vector区别:

ArrayList 和 LinkedList 和 Vector区别:
ArrayList基于数组实现,线程不安全的,底层数组容量不足时,会自动扩容 0.5 倍,开辟的内存空间要求联系,可以根据索引随机访问元
素性能高,但是插入和删除元素性能差,因为这会涉及到移位操作
LinkedList基于双链表实现的,开辟的内存空间不要求连续,因此不支持索引,查找元素需要从头查找,因此性能差,但是添加删除只需要改变指针指向即可,性能高. LinkedList 会增加内存碎片化,增
加内存管理难度
Vector
基于数组实现,线程安全的,方法加了同步锁,线程安全但是性能差,自动扩容 1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值