Java.Util.Map中存储的是一对一对的键值对
1.Map的不同实现类的对比
HashMap:主要实现类,线程不安全的;可以添加null的key和value值;底层使用数组+单向链表+红黑树存储结构(Jdk8.0)
TreeMap:底层使用的红黑树存储;可以按照添加的键值对(key-value)中的key(键)的大小顺序排列,自然排序,定制排序...
Set及其实现类的特点
Set是Collection的子接口,用来存储无序的,不可重复的数据
HashSet(主要实现类):底层是hashMap,即使用数组+单向链表+红黑树结构进行存储(JDK8.0中)
LinkedHashSet(是HashSet的子类),在使用数组+单向链表+红黑树结构的基础上,又添加了一组双向链表,用于记录添加元素的先后顺序,即可以...
ArrayList(主要实现类)效率高、线程不安全:底层使用Object[] 对象类型大的数组
添加数据、查找数据效率比较高;插入、删除数据时效率比较低。
LinkedList:底层使用双向链表存储,
插入、删除数据时效率比较高;在添加、查找数据时效率比较低。
Vector:(List古老的实现类)线程安全、效率低:底层使用Object[] 对象类型大的数组...
List(动态数组)存储特点:有序、可重复
常用方法:
Collection中的14个方法
因为List是有序的进而就有索引,进而就有一些针对索引的操作
•插入元素
方法
作用
–void add(int index, Object ele)
在index位置插入ele元素
–boolean addAll(int index, ...
java.util.Collection:存储一个一个的数据
子接口
List:有序的、可以重复的数据(相当于“动态”数组)
具体实现类: ArrayList(主要实现类,底层还是数组)、LinkedList、Vector
Set:存储无序的、不可重复的数据(不可重复)
具体实现类:HashSet(主要实现类)、LinkedHashSet、TreeS...
1. 概念
在存储多个数据时可以考虑 集合和数组,它们是存储在内存中,也就是断电后就消失了。
2. 数组存储的特点
特点
缺点
一旦初始化,长度确定
长度不可变
数据是紧密排列的,有序的,可重复的
存储数据类型单一,对无序、不可重复存储比较困难
元素的类型可以是基本数据类型也可以是引用数据类型
可用的方法、属性极少
3. Java...
1. System类
属性:out、in、err
方法
作用
currentTimeMillis()
获取当前时间戳
exit()
退出,参数为0表示正常退出,非0表示异常退出
gc()
请求垃圾回收
getProperty
获取参数
public class SystemTest {
public static vo...
直接创建类的对象,直接使用,不赋值给对象,就是匿名对象
问题
常见的基本数据类型 int char 这种可以进行比较排序,那么引用数据类型(对象)该怎么进行排序呢?
有两种方法,自然排序(Comparable)、定制排序(Comparator)
方式一
在需要比较的类实现Comparable接口,实现compareTo方法。
public class ComparableTest {
public ...
在Date后引入的Calendar也不能很好的规范时间的数据类型,
在JDK8.0时引入了Time这一新的包
方法不用背,现用现查也可以
之前存在的问题
Date和Calendar修改时间时,本身的数值也会改变。如果保留原数值还要备份,很麻烦。
偏移量,创建时间的年份会自动加1970年。 如果创建参数是2000,创建出来就会是3970年。很麻烦
格式化,S...
System类的currentTimeMillis()
获取当前时间的毫秒,long类型,时间戳
当前时间与1970年1月1日之间的毫秒数
两个Date类
java.util.Date
public classDateDemo {
public static void main(String[] args) {
Date ...
总的来说
就是StringBuffer和StringBuilder比String增加了可更改性质
StringBuffer和StringBuilder的区别就是jdk5.0后增加的Stringbuilder线程不安全,没有synchronized修饰,但是它的效率要高。
三各类的对比
String
StringBuffer
StringBuilder
...
类的声明
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
final:不可被继承、
Serializable:可序列化的接口。---凡是实现序列化接口的类就可以通过网络、IO流进行传输。
Compar...
joulemeter
下载地址:https://joulemeter.cn.uptodown.com/windows/post-download/1548
在JUC高并发中会有详细讲解
现有问题
并发线程很多,有很多线程执行的时间很短,就需要频繁的创建和销毁,使得系统效率降低。
思路
提前创建好多个线程,放入线程池,使用时直接提取,使用后放回线程池,增加线程的复用性。
好处
提高了程序执行的效率。
线程提前创建好
提高资源复用率
可以设置相关参数对池中线程使用进行管理
例子
import java.util...