随笔分类 -  java自学

学习java技术时记录的一些要点。
213 NIO编程
摘要:NIO 非阻塞编程: 核心组件: buffer 缓冲区 可写入读取数据的内存块 buffer.filp()转换读取模式 channel 通道 Selector 选择器 buffer:capacity容量(申请的大小),position位置(当前指向位置,读写切换时会归零),limit限制(写入的大小 阅读全文

posted @ 2020-06-03 20:02 李某人的窥视 阅读(93) 评论(0) 推荐(0) 编辑

212 BIO编程
摘要:ServerSocket类 serversocket.accept() InputStream(它是阻塞的) 输入 Socket类 OutputStream(它是阻塞的) 输出 ServerSocket 单线程 一次连接处理完才会处理下一个 http请求是可以访问到SocketServer的 htt 阅读全文

posted @ 2020-04-03 15:49 李某人的窥视 阅读(113) 评论(0) 推荐(0) 编辑

211 TCP/UDP协议
摘要:OSI 7层模型: 物理层、数据链路层(软硬结合,确认校验重发等手段)、网络层(路由选择,流量控制 ip协议) 低3层 传输层:端口到端口的数据传输服务(TCP/UDP协议) 会话层(建立管理终止进程会话和数据交换)、表示层(格式转换,加密解密)、应用层 高3层。 高三层可以当做一个应用层即可(ht 阅读全文

posted @ 2020-04-03 14:58 李某人的窥视 阅读(444) 评论(0) 推荐(0) 编辑

135 并发控制工具类
摘要:semaphore: 计数信号量,理解为控制并发量的共享锁。指定信道数,同时支持多少个线程并发。 acquire()获取 release() 释放 CountDownLatch: cdl.await()阻塞 cdl.countDown()减1 先阻塞 后减一 可以模拟出 多线程同时执行的效果 Cyc 阅读全文

posted @ 2020-04-03 13:52 李某人的窥视 阅读(91) 评论(0) 推荐(0) 编辑

134 并发容器类~list set queue
摘要:arraylist: 底层object数组, ensureCapcityInternal 判断是否数组扩容 copyonwritearraylist: copyonwrite机制: 当进行资源写入时,系统生成资源副本进行修改。保证写入原子性。写入加锁 hashset: 底层实现:hashmap K+ 阅读全文

posted @ 2020-02-21 19:38 李某人的窥视 阅读(112) 评论(0) 推荐(0) 编辑

133 并发容器类 map
摘要:HashMap: jdk1.7 底层存储 entry数组 查询使用hash表算法 h&(lenght-1) 取模计算数组下标 下标相同,组成链表,顺序查找 k,v总数超过一定比例 引发数组扩容 负载因子*length 扩容方法 transfor 遍历全部元素 重新取模 放入数组 扩容中无法保证数据问 阅读全文

posted @ 2020-02-20 19:49 李某人的窥视 阅读(110) 评论(0) 推荐(0) 编辑

132 AQS抽象队列同步器
摘要:1、缓存雪崩、缓存击穿之类的问题。 2、锁降级的情况。 写锁内部追加读锁(读写互斥的特例 ,必须同一个线程); 模板方法模式: 抽取公共代码。 jdk中使用链表实现队列。 普通队列使资源排队。 AQS使用追加的逻辑让线程排队 jdk AQS中只有一个int state 读写锁进行位操作 前2字节 后 阅读全文

posted @ 2020-02-20 17:35 李某人的窥视 阅读(99) 评论(0) 推荐(0) 编辑

131 Lock接口相关
摘要:Lock接口 lock() 没完没了的试 挂起 trylock() 一次不成就算了 trylock(time,timeunit) 超时后就算了 lockinterruptibly() 被动等通知 可中断 newCondition 等待池。如果唤醒和挂起倒置 会死锁 reentrantL lock() 阅读全文

posted @ 2020-02-11 19:48 李某人的窥视 阅读(88) 评论(0) 推荐(0) 编辑

123 java锁synchronized相关内容
摘要:自旋锁:循环等待,不断尝试获取,成功后退出。 乐观锁: 修改数据时发现数据变化则重读数据并修改 假定不冲突 悲观锁:从读数据开始就加锁 -- 假定冲突 独占锁:一把用写,其他线程不能加锁。 共享锁:读,可以加读锁,但不能加写锁。 (不)可重入锁:已经获取锁的线程未释放前重新获取锁,是否阻塞。reen 阅读全文

posted @ 2020-02-11 17:02 李某人的窥视 阅读(126) 评论(0) 推荐(0) 编辑

122原子性操作的一些记录
摘要:1、i++javap后的指令码,分别为操作数栈内 堆内存取i, 存入常量1,执行加法,写回堆内存多步操作。非原子性,会有线程问题。 处理办法,加锁(synchronize,ReentrantLock)或者atomicInteger。 或者使用cas(compare and swap)操作(-硬件同步 阅读全文

posted @ 2020-02-10 19:53 李某人的窥视 阅读(132) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示