摘要:
java的继承关系: 继承的父类会继承到父类的全部内容,权限修饰影响子类的访问权限。 初始化顺序 父类静态-》子类静态-》父类非静态-》子类非静态。 继承同名方法或属性同时存在,父类属性或方法被隐藏。 子类型可以被当做父类型使用 这里引申出另一个情况 变量多态 造型 cast--一个类型的对象赋值给 阅读全文
摘要:
NIO 非阻塞编程: 核心组件: buffer 缓冲区 可写入读取数据的内存块 buffer.filp()转换读取模式 channel 通道 Selector 选择器 buffer:capacity容量(申请的大小),position位置(当前指向位置,读写切换时会归零),limit限制(写入的大小 阅读全文
摘要:
xxljob中终止定时任务的方式是通过Thread.interrupt()+处理中断异常的方式强制终止任务的。所以单纯的线程只要进行阻塞操作就可以实现终止。 但是代码里已经遍布了ThreadPoolExecutor创建出来的线程池,尝试各种方式线程内部都不能感受到外部线程的interrupt,尝试了 阅读全文
摘要:
core: XxlJobExecutor: 保存ip 端口 执行器 token 等等信息。完成RpcProvider 启动,销毁等等相关操作。 XxlJobSpringExecutor: 继承XxlJobExecutor spring版本使用,启动后初始化方法,遍历所有方法查找@XxlJob 实例化 阅读全文
摘要:
ServerSocket类 serversocket.accept() InputStream(它是阻塞的) 输入 Socket类 OutputStream(它是阻塞的) 输出 ServerSocket 单线程 一次连接处理完才会处理下一个 http请求是可以访问到SocketServer的 htt 阅读全文
摘要:
OSI 7层模型: 物理层、数据链路层(软硬结合,确认校验重发等手段)、网络层(路由选择,流量控制 ip协议) 低3层 传输层:端口到端口的数据传输服务(TCP/UDP协议) 会话层(建立管理终止进程会话和数据交换)、表示层(格式转换,加密解密)、应用层 高3层。 高三层可以当做一个应用层即可(ht 阅读全文
摘要:
semaphore: 计数信号量,理解为控制并发量的共享锁。指定信道数,同时支持多少个线程并发。 acquire()获取 release() 释放 CountDownLatch: cdl.await()阻塞 cdl.countDown()减1 先阻塞 后减一 可以模拟出 多线程同时执行的效果 Cyc 阅读全文
摘要:
arraylist: 底层object数组, ensureCapcityInternal 判断是否数组扩容 copyonwritearraylist: copyonwrite机制: 当进行资源写入时,系统生成资源副本进行修改。保证写入原子性。写入加锁 hashset: 底层实现:hashmap K+ 阅读全文
摘要:
HashMap: jdk1.7 底层存储 entry数组 查询使用hash表算法 h&(lenght-1) 取模计算数组下标 下标相同,组成链表,顺序查找 k,v总数超过一定比例 引发数组扩容 负载因子*length 扩容方法 transfor 遍历全部元素 重新取模 放入数组 扩容中无法保证数据问 阅读全文
摘要:
1、缓存雪崩、缓存击穿之类的问题。 2、锁降级的情况。 写锁内部追加读锁(读写互斥的特例 ,必须同一个线程); 模板方法模式: 抽取公共代码。 jdk中使用链表实现队列。 普通队列使资源排队。 AQS使用追加的逻辑让线程排队 jdk AQS中只有一个int state 读写锁进行位操作 前2字节 后 阅读全文