对Java语言本身的一些见解和总结

变量

任何语言都有变量

Java

基本数据类型

局部变量/全局变量

集合

存储变量

线性表 List

ArrayList(数组长度可变,默认的初始化长度是10,底层是objdct数组)

LinkedList (链表)数组

使用场景:在频繁更新,插入时使用链表,访问时使用数组(通过index直接访问)

线程安全:CopyOnWriteArraylist

  • 两者都是有序的,且元素的迭代顺序与插入顺序一致。

  • 选择依据:

    • ArrayList:适合频繁随机访问(如通过索引读取元素)的场景。

    • LinkedList:适合频繁插入/删除元素(如在中间或头部操作)的场景

Map K-V

HashMap LinkedHashMap

   HashMap 底层: 数组 + 链表 哈希冲突 拉链法

  当我们put一个a时,通过哈希算法,会算出来一个哈希值,然后根据哈希值算出来一个位置,将这个a放在这个位置,如果以后有别的类属于b,c,d,算出来的哈希值,位置值和a一样,这些数据不会覆盖,会变成链表排在后面,当排列的多了之后就会性能下降,于是变成红黑树

  线程安全:

  HashTable(底层是synchroniz加锁)

  ConcurrentHashMap 底层是CAS(Conmpare And Swap / 比较和交换)+分段锁 实现 锁的粒度越小性能越好

异常

异常处理机制,处理程序出现问题的解决方案

反射

实现框架

动态的获取类的一些信息,包括方法,构造器,属性,方法

IO

input/output

输入输出流

文件

线程

进程的最小的工作单元

面向对象

封装

继承

子类继承父类

多态

多种形态,一个接口有多个实现类

Stream

Lambda

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值