欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

《2020/03/30》java整理

程序员文章站 2022-04-15 18:23:55
1. 线程线程Lock的使用java并发编程:Lock锁Synchronized、Lock、ReentantLock的区别,以及用法JAVA多线程中join()方法的详细分析...

0. 面试

面试
pdf-to-word
重要

1. 线程

ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。
ThreadPoolExecutor.DiscardPolicy:丢弃任务,但是不抛出异常。
ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新提交被拒绝的任务 。
ThreadPoolExecutor.CallerRunsPolicy:由调用线程(提交任务的线程)处理该任务
synchronized原理(hard)
线程Lock的使用
java并发编程:Lock锁
Synchronized、Lock、ReentantLock的区别,以及用法
JAVA多线程中join()方法的详细分析
countDownLatch
ABA问题
java中Unsafe使用讲解
线程池

2. java调优

Java性能调优:利用VisualVM进行性能分析
JConsole可视化工具介绍
jmeter 压测

3. jvm 和 gc

深入理解JVM-内存模型(jmm)和GC (非常详细)
常量池

4. java 内存模型(jmm)

深入理解Java内存模型
class.forname 与 classloader.loader

5. springboot

spring-boot配置slf4j日志
Spring mybatis 源码分析

6. zookeeper

zookeeper脑裂问题

7. redis

redis zset
集群环境下redis分布式锁
redis内存模型
redis value过大问题

8. current

  1. ABA问题产生及解决方案
    https://www.cnblogs.com/lmj612/p/10836912.html

  2. Java中unsafe使用
    https://blog.csdn.net/u010398771/article/details/85319991

  3. AQS详解
    https://www.jianshu.com/p/da9d051dcc3d

  4. 同步器核心
    自旋 LockSupport CAS AQS
    自旋:for(;;)
    LockSupport.pack(Thread); LockSupport.unpack(Thread)
    CAS: compare and set
    AQS: AbstractQueuedSynchronizer

  5. CoutnDwonLatch 与 CyclicBarrier
    https://www.cnblogs.com/Lee_xy_z/p/10470181.html
    https://www.cnblogs.com/brokencolor/p/9752941.html

9. 并发编程合集

https://blog.csdn.net/ns_code/article/details/17539599

1. netty学习

  • netty版本: 4.1.45.Final
  • protobuf版本: 3.11.4
  1. netty4.1 javadoc
  2. 尚硅谷netty视频
  3. Linux五种IO模型

NIO的三大核心

nio的三大核心buffer channel selector。

1. 当客户端连接时,会通过ServerSocketChannel得到SocketChannel。
2. 将SocketChannel注册到Selector上,register(Selector sel, int pos),一个selector上可以注册多个SocketChannel
3. 注册后返回一个SelectionKey, 会和该selector关联(集合)
4. selector进行监听select方法,返回有事件发生的通道的个数
5. 进一步得到各个SelectionKey(有事件发生的)
6. 再通过SelectionKey反向获取SocketChannel chanenl()
7. 可以通过得到的channel 完成业务处理。

netty

1. netty 抽象出两组线程池BossGroup专门负责接收客户端的连接,WorkerGroup专门负责网络的读写。
2. BossGroup和WorkerGroup类型都是 NioEventLoopGroup。
3. NioEventLoopGroup 相当于一个事件循环组,这个组中含有多个事件循环,每一个事件循环是NioEventLoop。
4. NioEventLoop 表示一个不断循环的执行处理任务的线程,每个NioEventLoop都有一个selector, 用于监听绑定在
其上的socket的网络通讯。
5. NioEventLoopGroup 可以有多个线程,即可以含有多个NioEventLoop。
6. 每个Boss NioEventLoopGroup 循环执行的步骤有3步:
    (1) 轮询accept事件
    (2) 处理accept事件,与client建立连接,生成NioSocketChannel, 并将其注册到某个worker NioEventLoop 上的selector
    (3) 处理任务队列的任务,即runAllTasks
7. 每个 Worker NioEventLoopGroup 循环执行的步骤:
    (1) 轮询read, write事件
    (2) 处理I/O事件,即read,write事件,在对应的NioSocketChannel处理
    (3) 处理任务队列的任务,即runAllTasks
8. 每个worker NioEventLoop 处理业务时,会使用pipeline(管道),pipeline中包含了channel(它们相互),
即通过管道可以获取到channel, 管道中维护了很多的处理器handler

netty 权威指南代码:https://github.com/*nxian124/nettybook2

2. spring project

mybatis-plus

MyBatisPlus学习整理
视频教程

系统设计

在线课程系统设计

springboot 配置https

https://www.jianshu.com/p/8d4aba3b972d

  1. springboot配置文件使用环境变量
    https://blog.csdn.net/a704397849/article/details/99944998

  2. 微服务中的认证鉴权
    https://www.jianshu.com/p/357c23e3fe2a

  3. web交互问题
    https://blog.csdn.net/feiyst/article/details/88431621

3. activiti

  1. https://www.jianshu.com/p/aadbfd0e37b0 后端代码

  2. https://www.cnblogs.com/zsg88/p/12511603.html bpmn-js画流程图

  3. https://blog.52itstyle.vip/archives/3706/

  4. https://gitee.com/52itstyle/spring-boot-bpmn

  5. https://gitee.com/loyin/sunFlow sunFlow

  6. https://blog.csdn.net/chenfengdejuanlian/category_6900088.html 获取节点

  7. https://github.com/AgileBPM/agile-bpm-basic.git 完整的工作流

4. 表单生成器

https://gitee.com/mrhj/form-generator

5. mysql

  1. https://www.jianshu.com/p/23caac9d8b5d msyql partition 分区

create table if not exists

6. 优美项目代码

  1. 在线考试系统 https://www.kancloud.cn/tangyi/spring-microservice-exam/1322864#_145

7. spring

ApplicationContext的事件机制

8. 数据库

  1. 数据库事务

9. unirest-java

https://kong.github.io/unirest-java/#requests

10 minio

https://blog.csdn.net/hzw2312/article/details/106077729
官方文档

11 ubuntu离线安装包

https://blog.csdn.net/q919683527/article/details/80418593

本文地址:https://blog.csdn.net/weixin_42273782/article/details/105197157

相关标签: java技术