java
文章平均质量分 87
wbo112
这个作者很懒,什么都没留下…
展开
-
K8S环境安装
k8s环境安装原创 2023-01-27 22:01:13 · 447 阅读 · 0 评论 -
slf4j常用配置文件读取
日志现在一般都是使用slf4j作为接口、底层实现一般是用log4j2或者logback。我们先看下log4j2是如何读取配置文件的。如果使用gradle的话。上面的代码就会导入slf4j及log4j2的相关依赖。主要是在创建完后,会调用它的start–>,在这里面读取配置文件,转化成对象。调用的堆栈如下图:具体会读取配置文件1、读取环境变量指定的路径。2、读取环境变量指定的路径。3、继续在下面的代码中查找配置文件通过、、、在上面就会依次去拼接配置文件路径,在类路径上去查找配置文件。原创 2022-12-25 19:29:39 · 1987 阅读 · 0 评论 -
java认证与证书
目前主要有JKS和PEM两种编码格式文件。如何在这两种密钥库文件中进行库文件交换呢?可以通过格式的证书文件在两种格式的密钥库中进行库文件导出/导入等。通常使用编码格式作为数字证书文件存储格式。自签名证书,即证书申请者为自己的证书签名。数字证书的颁发流程简述过程如下:1、客户端请求服务器的流程如下:客户端请求服务器将按如下步骤进行:2、服务器端完成客户端请求处理后,需经过以下几个步骤完成响应:KeyTool是Java中的数字证书管理工具,用于数字证书的申请、导入、导出和撤销等证书管理操作。官方文档https:原创 2022-12-04 22:06:09 · 3313 阅读 · 0 评论 -
spring cron表达式源码分析
在springboot中,我们一般是通过如下的做法添加一个定时任务上面的中的参数就是cron表达式了。这里主要是对cron表达式的源码进行分析,其他内容不再展开了。这能看到会创建一个对象,这个对象它主要就是用来包装解析后的cron表达式,获取任务下次执行的时间。在构造方法中会调用到将我们传入的cron字符串解析成为对象。主要有一个next方法,它会根据当前cron表达式解析出来的对象,以及传入的时间,返回一个时间值,也就是下次任务执行的时间。原创 2022-10-01 15:50:41 · 677 阅读 · 0 评论 -
spring boot 分布式session实现
主要是通过包装将session相关的方法进行代理。具体是的实现就是通过过滤器将对象进行包装,当调用session相关的方法时,代理到的实现类。我们先看看。是一个接口,主要用来管理session。各种分布式session处理方案都需要实现这个接口来实现具体的处理。是一个过滤器,它的构造方法会接收一个的实现类,并且在它的filter方法中会对、进行包装,当后续调用到session相关的方法时,最终都会调用到方法。继承了是一个抽象类,需要子类来实现方法来实现。这个抽象类主要用来控制每个filter只执行一次。..原创 2022-08-27 16:27:26 · 908 阅读 · 0 评论 -
Mysql笔记2
MySQL原创 2022-07-31 23:01:57 · 229 阅读 · 0 评论 -
maven知识总结
maven中repository、mirror、dependencyManagement属性介绍原创 2022-06-12 11:14:57 · 363 阅读 · 0 评论 -
hive安装
文章目录1、修改jdk版本为jdk82、修改hadoop配置3、安装hive4、初始化元数据5、创建hive的存储目录6、启动hive7、客户端连接本次操作是在安装完hadoop的基础上进行的,安装hadoop请参看上篇博客hadoop集群搭建_wbo112的博客-CSDN博客。hive会使用到mysql,所以需要提前安装好mysql服务。可以参看这篇博客mysql解压版安装_wbo112的博客-CSDN博客。本次所有操作也都是基于hadoop用户执行。jdk8以上会报类加载器的报错,需要用jdk原创 2022-05-12 23:22:07 · 780 阅读 · 0 评论 -
git常用命令总结
git本地仓库操作创建本地仓库git init就会将当前目录变成一个git仓库,同时当前目录也会有个.git的目录。默认用master作为本地分支的名字,可以通过git branch -m <name>命令修改当前分支的名字。当前执行git branch是查看不到当前的master分支的,那是因为当前我们还没有执行git commit操作。git add a.txt就可以将a.txt添加到暂存区。git commit -m [日志]将暂存区的所有文件提交到本地库。git com原创 2022-03-27 23:04:32 · 691 阅读 · 0 评论 -
常用锁原理的介绍(上)
本文是学习《多处理器编程的艺术》的笔记。下面主要介绍了一些常用的锁的原理,这些只是一些理论,离我们实际使用还是有一些差距的。不过这种理论也往往是相对比较好容易理解了掌握的,只有了解了这些理论,可以加深我们对锁原理知识的理解。有能力的同学更可能根据这些理论定制开发符合自己场景的高性能的锁。本篇文章并没有具体讲到ava中锁的实现。但是通过本篇文章,相信大家对Java中锁的实现也会有更深入的理解。因为Java中Lock的底层实现AbstractQueuedSynchronizer的原型在这里就会讲到。同.原创 2022-02-20 23:06:11 · 700 阅读 · 0 评论 -
springboot自动扫描添加的BeanDefinition源码解析
1.springboot启动过程中,首先会收集需要加载的bean的定义,作为BeanDefinition对象,添加到BeanFactory中去。由于BeanFactory中只有getBean之类获取bean对象的方法,所以将将BeanDefinition添加到BeanFactory中,是通过BeanDefinitionRegistry接口的void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws原创 2022-02-15 10:38:29 · 723 阅读 · 0 评论 -
Java8中的时间处理
Java8中的时间处理Java8提供了全新的时间处理框架,这里就可以完全丢弃之前的Date、Calendar了。具体的API的使用都是比较简单的。这里就不展开介绍了。这里主要介绍下一些主要的类LocalDateTime我们一般常用的就是这个了,用这个来表示日期时间。如LocalDateTime.now()就可以基于当前默认时区得到当前的日期时间。由于全球有好多时区,同一个日期时间,在不同的时区,反映到时间轴上是不同的。LocalDateTime类型的日期时间是没包含时区,所以它不能对应到时间轴原创 2022-01-07 21:21:11 · 1798 阅读 · 2 评论 -
Log4j漏洞分析
Log4j漏洞源码分析这几天Log4j的问题消息满天飞,今天我们就一起来看看从源码角度看看这个漏洞是如何产生的。大家都知道这次问题主要是由于Log4j中提供的jndi的功能。具体涉及到的入口类是log4j-core-xxx.jar中的org.apache.logging.log4j.core.lookup.StrSubstitutor这个类。原因是Log4j提供了Lookups的能力(关于Lookups可以点这里去看官方文档的介绍),简单来说就是变量替换的能力。在Log4j将要输出的日原创 2021-12-14 23:37:27 · 22028 阅读 · 3 评论 -
编译openjdk
编译openjdk1. 下载openjdk源码openjdk的官网是OpenJDK (java.net)在网站左侧就能看到它的源码位置的链接从图上可以看到,它的源码在两个位置有托管,Mercurial、GitHub这两个网站都有。我们点击GitHub,进去到它GitHub的位置。上图第一个就是openjdk的仓库地址了 。 选择HTTPS,复制地址。下一步,登录码云(没账号的可以先创建一个),在边上有个+的图标,点开就可以看到二级菜单有个从GitHub/GitLab导入仓库。上面原创 2021-11-27 21:44:10 · 7371 阅读 · 2 评论 -
ThreadPoolExecutor源码
ThreadPoolExecutor是线程池的框架。虽然好多大佬都分析过了,为了加深理解,今天我也来分析一下ThreadPoolExecutor的源码ThreadPoolExecutor这个类上面的英文注释已经很详细了,一看就能明白。这部分就直接把对应的英文翻译成中文。下面这一段中文就全部是类上面的英文的翻译一个 ExecutorService 使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。线程池解决两个不同的问题:由于减少了每个任务的调用开销,它们通常在原创 2021-11-13 14:32:05 · 1101 阅读 · 0 评论 -
springboot 事务创建流程源码分析
springboot 事务创建流程源码分析文章目录springboot 事务创建流程源码分析1. 自动加载配置2. InfrastructureAdvisorAutoProxyCreator类3.BeanFactoryTransactionAttributeSourceAdvisor类4.判断bean对象是否需要进行事务增强处理5.生成对应代理类6. 最终生成的代理类class反编译springboot中事务是相对重要的一个部分。也是aop的一个使用场景。我们今天就来一起从源码的角度分析下,事务的整个创原创 2021-09-18 11:33:31 · 678 阅读 · 0 评论 -
ScheduledExecutorService中scheduleAtFixedRate方法与scheduleWithFixedDelay方法的区别
ScheduledExecutorService中scheduleAtFixedRate方法与scheduleWithFixedDelay方法的区别ScheduledThreadPoolExecutor继承自ThreadPoolExecutor,可以作为线程池来使用,同时实现了ScheduledExecutorService接口,来执行一些周期性的任务。ScheduledExecutorService一般常用的方法主要就4个 public ScheduledFuture<?> sc原创 2021-08-29 22:13:19 · 696 阅读 · 0 评论 -
《深入理解java虚拟机》第3版笔记12
《深入理解java虚拟机》第3版笔记第12章 Java内存模型与线程主内存与工作内存Java内存模型规定了所有的变量都存储在主内存(Main Memory)中。每条线程 还有自己的工作内存(Working Memory),线程的工作内存中保 存了被该线程使用的变量的主内存副本,线程对变量的所有操作(读取、赋值等)都必须在工作内 存中进行,而不能直接读写主内存中的数据。不同的线程之间也无法直接访问对方工作内存中的变 量,线程间变量值的传递均需要通过主内存来完成。内存间交互操作Java原创 2021-08-28 22:58:48 · 141 阅读 · 0 评论 -
《深入理解java虚拟机》第3版笔记3
《深入理解java虚拟机》第3版笔记第3章 垃圾收集器与内存分配策略可达性分析算法在Java技术体系里面,固定可作为GC Roots的对象包括以下几种:在虚拟机栈(栈帧中的本地变量表)中引用的对象,譬如各个线程被调用的方法堆栈中使用到的 参数、局部变量、临时变量等。在方法区中类静态属性引用的对象,譬如Java类的引用类型静态变量。在方法区中常量引用的对象,譬如字符串常量池(String Table)里的引用。在本地方法栈中JNI(即通常所说的Native方法)引用的对象原创 2021-08-28 22:55:05 · 175 阅读 · 0 评论 -
java JNI介绍
java JNI介绍文章目录java JNI介绍1、 Java调用C++代码2、C++代码调用java代码JNI是Java Native Interface的全称。oracle文档中是这样描述的The JNI is a native programming interface. It allows Java code that runs inside a Java Virtual Machine (VM) to interoperate with applications and libraries原创 2021-08-22 12:24:07 · 381 阅读 · 0 评论