java的数据结构

一、数组,数组具有的特点及表达

1、int[] i = new int[10]

2、固定大小

3、工具类Arrays

4、元素类型相同

5、查找快:根据下标可以快速定位

6、存储空间是连续的

7、修改慢

二、链表,链表的特点及表达

1、List list = new LinkedList();

2、一个元素通过指针连接下一个元素

3、存储空间不需要连续

4、修改很快

5、查找定位慢

三、树、树根朝上,树叶朝下

四、队列、先进先出FIFO

五、栈  先进后出FILO

六、HashMap

1、充分发挥数组和链表的各自优点

2、put(key, value); // 存储数据

3、get(key);// 读取数据

4、key必须重写hashcode方法

5、数组缺省大小是16,put时根据key的hashcode与16取余来确定位置,插入到链表的头部

6、get时也要根据key的hashcode与16取余来确定位置,再根据equals方法来确定链表上的位置

7、数组(哈希桶)扩容规则:阈值缺省是0.75,元素个数达到16x0.75时并且插入的元素位置是非空时,扩容一倍到32

七、集合类分类

1、ArrayList

2、工具类Collections

八、数组与ArrayList互转

1、数组转为list

Integer[] i = new Integer[2];

i[0]=10;

i[1]=20;

List list = Arrays.asList(i);

2、list转为数组

List l = new ArrayList();

l.add(1);

l.add(2);

Integer[] objects = (Integer[]) l.toArray(new Integer[0]);

八、线程是否安全

1、线程安全。多个线程修改同一个对象,不会出现问题

ConcurrentHashMap

Hashtable

Vector

StringBuffer

2、线程不安全 。多个线程修改同一个对象,可能会出现问题

HashMap

ArrayList

StringBuilder

九、加密算法

1、摘要算法

单向,不能解密,不同的字符串加密之后也是不同的。用于密码加密

MD5 SHA-1 SHA-2 SHA-3 SHA-256

2、对称加密算法

加密和解密时所用密码相同,问题:密码的传递很难保证安全,优点:效率高

DES 3DES AES

3、非对称加密算法

加密和解密使用不同的秘钥,分为私钥和公钥,使用私钥加密,必须使用配对的公钥才能解密;使用公钥解密,必须使用配对的私钥才能解密。

优点:安全性高 缺点:慢

RSA HTTPS采用了公钥加密算法

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值