知识总结系列1

  1. HashMap和Treemap的区别:
    • HashMap底层基于哈希表实现,用链表法解决冲突,TreeMap基于红黑树实现,TreeSet也是;
    • HashMap插入数据后,遍历出的顺序是随机的,TreeMap默认按照key的升序排列,也可以自定义比较器,LinkedHashMap则可以保证输出顺序和输入顺序相同,是有序的;
    • 参考链接:Java中HashMap,LinkedHashMap,TreeMap的区别
  2. kafka相关原理
  3. volatile关键字
    • 禁止指令重排序优化
    • 修改后,对其他线程立即可见;
    • java的内存模型中,分为主内存、工作内存,volatile修饰的变量修改后立即将值同步回主内存,且其他线程工作内存中的值失效,需重新同步;
    • 可以保证顺序性和可见性,但不能保证原子性;
  4. java多线程
    • 引出:hashTable是线程安全的,每个方法前面都加了synchronized关键字
    • 一个类中,一个同步方法(即用synchronized修饰),一个普通方法,都操作同一个成员变量,线程安全吗?不安全。同步方法,需获得该对象的锁才可以执行,修改变量,而非同步方法,其他线程可以任意随时直接访问,不安全;
    • 如果非同步方法只是读,不修改变量的值:也不安全,可能读到中间值;
    • 多个线程同时操作一个对象时,才存在线程安全的问题,如果确保一个线程,对应一个对象,只访问该对象的方法,那么是安全的;
    • 锁是属于对象的,每一个对象都拥有一个锁标记(monitor),static方法可以加synchronized关键字吗?
    • 每个类也有一个锁,用来控制多线程对static数据成员的并发访问;所以static方法也可以是同步的;
    • 更深刻的:一个线程执行该对象的普通synchronized方法,另一个线程执行其所属类的static synchronized方法,这两个线程不冲突,因为一个获得该对象的锁,另一个获得类的锁;
  5. java.util.concurrent包中有哪些类?Java 并发工具包 java.util.concurrent 用户指南
  6. 熟悉的设计模式:
  7. 自己常用的Linux命令;
    • top:查看每个进程使用的CPU、内存情况,Load average。fine,要真正熟悉一条命令,他的每个字段的含义;
    • netstat
    • lsof
    • jinfo
    • 查看磁盘IO的命令:iostat
    • df
  8. zookeeper的原理:
    • 需要再看书,学习;
    • 提了永久节点,临时节点,时序节点,三种;fine,临时节点的生命周期???
  9. 一致性哈希原理
  10. 分布式算法???
  11. bash:bash中 2>&1 & 的解释
  12. 操作系统的缓存替换算法:LRU等等
总结:
看过书、博客之后,需要自己记录,整理,这是一个重理解的过程,也有助于理清知识点之间的逻辑关系。
So,加油!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值