自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (5)
  • 收藏
  • 关注

原创 JVM--7. 通过JDBC源码来分析线程上下文类加载器以及SPI的使用

文章目录1. 什么是全盘负责委托机制2. 为什么需要有线程上下文类加载器2.1 使用JDBC的例子,分析为什么双亲委托机制不能实现要求2.2 线程上下文类加载器的作用3. 线程上下文类加载器的使用3.1 线程上下文类加载器使用API3.2 线程上下文类加载器的特征3.3 线程上下文类加载器使用的通用写法4. 借助JDBC源码分析上下文类加载器的使用4.1 示例代码4.2 源码分析4.2.1 首先解析第一句 Class.forName("com.mysql.jdbc.Driver");4.2.2 Driver

2020-08-12 10:33:11 426

原创 JVM--6. 通过demo分析自定义类加载器以及Launcher源码分析

文章目录1. 先创建自定义类加载器2. demo程序2.1 最初版程序2.2 第二版---使用命令行执行,设置指定的类加载器作为系统类加载器3. Launcher源码分析3.1 分析入口在哪里---ClassLoader官方文档3.2 有些人就要问了,为什么直接锁定入口就是在ClassLoader.getSystemClassLoader()呢3.3 系统类加载器和扩展类加载器是如何创建和初始化的3.4 如何将自定义类加载器作为默认的系统类加载器的3.4.1 通过 SystemClassLoaderActi

2020-08-12 10:32:34 332

原创 JVM--5. 先有鸡还是先有蛋

文章目录1. 引言2. 理论3. 验证3.1 如何验证ClassLoader类是由启动类加载3.2 如何验证扩展类加载器,系统类加载器也是由启动类加载器加载4. 总结1. 引言在之前的文章中,我们可以知道,不管我们项目中使用的类还是Jvm提供的jar包,都是由类加载器加载的,也就是说java类都是类加载器加载,但是不管是扩展类加载器还是系统类加载器,都是类ClassLoader的子类,他们又是谁加载的呢? 到底是先有的类加载器还是先加载类的呢?2. 理论内建于JVM中的启动类加载器会加载Cl

2020-08-12 10:31:51 233

原创 JVM--4.通过demo分析类加载器理论

文章目录1. 使用类加载器加载类的过程1.1 Class<?> c = findLoadedClass(name);1.2 parent.loadClass(name, false);1.3 c = findClass(name);2. 自定义类加载器3. 如何让自定义类加载器加载执行路径下的指定类4. 数组不同于其他数据类型,加载数组类型的类加载器是谁呢?5. 关于类加载器的父子加载区别5.1 代码原始版本5.2 变动1:在当前项目的编译的文件夹中删除MySample.class文件5.3 变

2020-08-12 10:31:11 172

原创 JVM--3.类加载的双亲委托机制

文章目录1. jvm中已存在的三种预定义类型类加载器2. 自定义类加载器3. 四种类加载器的之间的关联3.1 物理层次上3.2 逻辑层级上4. 什么是双亲委任机制5. 命名空间5.1 关于命名空间的理论6. 几点思考6.1 为什么由系统逻辑体加载的类对应的ClassLoader对象为null6.2 委托机制具体含义6.3 委托机制的意义 — 防止内存中出现多份同样的字节码7. 面试题7.1 能不能自己写个类叫`java.lang.System`?1. jvm中已存在的三种预定义类型类加载器**Boo

2020-08-12 10:30:22 122

原创 JVM--2.通过demo分析类加载过程及结论

1. 静态变量所在类加载过程/** * @author ztkj-hzb * @Date 2019/11/1 11:46 * @Description */public class Test1 { public static void main(String[] args) { System.out.println(MyChild1.str); //System.out.println(MyChild1.str2); }}cla

2020-08-12 10:28:56 98

原创 JVM--1.类加载

类加载文章目录类加载1.类加载1.1 类加载--连接过程又分为三个阶段1.2 类加载的几种途径1.3 总结点2.类加载器3.导致jvm虚拟机生命周期结束的四种原因4.类的主动使用和被动使用4.1 主动使用的七种场景4.2 被动使用1.类加载在Java代码中, 类型 在加载、连接和初始化过程 都是在程序运行期间完成的。类型: 这里指的是Class类,比如有一个User对象,而这里的类型指的是User.class,而不是 new出来的User对象。加载: 将指定class文件,或远程url

2020-08-12 10:27:29 90

原创 12. Git rebase命令

文章目录前言1. merge和rebase比较1.1 merge命令效果图1.2 rebase命令效果图2. rebase命令的使用2.1 使用场景2.2 模拟场景2.3 使用步骤2.3.1 切换到被合并的分支2.3.2 使用命令`git rebase`操作前言该文章只是记录了一些自己的见解,可能并不准确,只是为了学习时的一些记录,不喜勿喷,谢谢rebase命令可以用于分支的合并,可能有...

2020-04-28 10:27:07 421

原创 11. 代码提交错了分支如何处理

文章目录前言1. 模拟场景2. 补救方法2.1 切换到正确的分支2.2 复制-移动指定提交节点2.3 还原错误的分支2.3.1 切换到错误的分支2.3.2 找到误操作前的节点2.3.3 切换到误操作前的节点--会形成游离的分支2.3.4 删除错误的分支2.3.5 基于此时的游离分支重新创建错误的分支即可3. 注意点前言该文章只是记录了一些自己的见解,可能并不准确,只是为了学习时的一些记录,不...

2020-04-28 10:24:22 659

原创 10. Git标签

文章目录前言1. 本地标签1.1 普通标签1.1.1 创建普通标签1.1.2 查看标签列表1.1.3 删除指定标签1.1.4 查看某个标签的节点记录1.2 带注释的标签1.2.1 创建带注释的标签1.2.2 查看标签列表1.2.3 删除指定标签1.2.4 查看某个标签的节点记录1.3 普通标签和带注释的标签本质上的区别2. 远程标签2.1 创建远程标签2.1.1 一个一个的推送到服务器2.1.2 ...

2020-04-26 22:42:08 167

原创 9. 远程分支与本地分支管理

文章目录前言1. 三种分支1.1 本地分支1.2 远程分支1.3 本地的远程分支(追踪分支)2. 本地分支操作命令2.1 创建本地分支2.2 重命名本地分支2.3 删除本地分支2.4 查看某个分支3. 远程分支操作命令3.1 创建远程分支3.1.1 git push origin 本地分支名:待创建的远程分支名3.1.2 git push origin -u 本地分支名3.1.3 git push...

2020-04-26 22:41:28 281

原创 8. Git 远程协作

文章目录前言1. GitHub2. 首次推送代码到远程--未自动创建README.md2. 首次推送代码到远程--勾选自动创建README.md3. 总结首次推动代码到远程3.1 git remote add origin https://xxx3.2 git push -u origin master3.3 git pull4. 新开发下载代码5. 模拟多用户协同开发的冲突场景6. 关联远程版本...

2020-04-26 22:40:42 365

原创 7. Git stash命令

文章目录前言1. git stash2. git stash save [message]3. git stash list4. git stash show5. git stash pop6. git stash apply [stash名字]7. git stash drop [stash名字]8. git stash clear前言该文章只是记录了一些自己的见解,可能并不准确,只是为了...

2020-04-26 22:40:01 182

原创 6. Git版本处理

文章目录前言1. 初始化仓库2. git reset2.1 git reset --hard HEAD^2.2 git reset --hard HEAD~n2.3 git reset --hard commit_id2.4 git reset 效果图3. git checkout3.1 追加文件,不被git跟踪,切换到master3.2 追加文件,且被追踪,再切换到master3.3 追加文件,...

2020-04-26 22:39:20 361

原创 5. Git 本地分支命令

文章目录前言1. 什么是分支2. 如何查看分支列表,以及当前所处分支3. 如何创建新分支4. 如何切换分支5. 如何删除分支5.1 是否可以删除当前所处分支前言该文章只是记录了一些自己的见解,可能并不准确,只是为了学习时的一些记录,不喜勿喷,谢谢该文章,只要记录一些关于分支的使用笔记1. 什么是分支当我们每次commit之后,就会生成一个提交节点,而多个提交节点组成的链路,就叫做一个...

2020-04-26 22:38:23 129

原创 4. Git 日志命令

文章目录前言1. git log2. git log --graph3. git log -n4. git log [fileName]5. git log -p [可选文件名]6. git show commit_id [可选文件名]7. 其余属性配置前言该文章只是记录了一些自己的见解,可能并不准确,只是为了学习时的一些记录,不喜勿喷,谢谢这里参考了博客:https://www.cnbl...

2020-04-26 22:37:06 203

原创 3. Git添加/删除/修改命令

文章目录前言1. 添加操作1.1 正常添加操作1.2 将暂存区文件回滚到未跟踪状态2. 修改操作2.1 正常修改操作2.2 将工作空间的修改回滚到修改前的状态3. 删除操作3.1 正常删除操作3.2 使用 git rm 命令来进行删除操作3.3 注意点4. 移动操作4.1 正常移动操作4.2 使用 git mv 命令来进行移动操作5. 重命名操作前言该文章只是记录了一些自己的见解,可能并不准...

2020-04-26 22:35:55 401

原创 2. Git基础命令

文章目录前言1. 初始化本地仓库1.1 git init1.2 git clone2. 查看状态命令2.1 git status3. 提交命令3.1 git add [file]3.2 git commit [file] -m [message]4. 修改配置命令4.1 git config1. 查看当前配置列表2. 添加/设置 key value3. 查看指定key对应的配置值4. 删除指定...

2020-04-26 22:33:23 358

原创 1. 为什么要使用Git

文章目录前言1. Git是什么?1.1 本地仓库1.2 工作空间1.3 暂存区1.4 分支2. Git和Svn的区别3. 为什么要用Git前言该文章只是记录了一些自己的见解,可能并不准确,只是为了学习时的一些记录,不喜勿喷,谢谢1. Git是什么?git是一个和svn一样的版本控制软件,但是与svn不同的是,git是一个分布式的高效版本控制系统。其实现原理跟svn也大相径庭,采取了一种...

2020-04-26 22:31:13 668

原创 4. 基于自定义数组的环形队列实现

package com.lonely.队列;/** * @author ztkj-hzb * @Date 2019/6/18 15:46 * @Description 循环队列 */public class LoopQueue<T> implements Queue<T> { /** * 队列数据 */ private T...

2019-06-18 18:15:29 182

原创 3. 基于自定义数组的普通队列实现

普通队列有个致命的地方就是 每次当队首弹出的时候,后续的所有元素都需要移动位置,复杂度很高,当数据量大的时候很致命,后面有循环队列来解决该问题Queue队列接口package com.lonely.队列;/** * @author ztkj-hzb * @Date 2019/6/18 15:21 * @Description 队列 先进先出 */public interfac...

2019-06-18 18:13:33 126

原创 2. 基于自定义数组的栈实现

package com.lonely.栈;/** * @author ztkj-hzb * @Date 2019/6/18 14:48 * @Description 栈接口 */public interface Stack<T> { /** * 压栈 * * @param t */ void push(T t);...

2019-06-18 18:11:10 119

原创 1. 数组二次封装

package com.lonely.数组;import java.text.MessageFormat;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.concurrent.*;/** * @autho...

2019-06-18 18:07:09 168

原创 玩转数据结构代码

首先,这里只有代码,没有任何的讲解过程,因为自己本身也只是个新手,在探索的过程,在学习教程<玩转数据结构>后,根据视频和思路来手敲的代码,具体的工程在github上 github代码地址,后面会给上每个小数据结构实现的代码,这里的代码只是自己记录,方便以后忘了可以快速找到。...

2019-06-18 18:05:41 356

原创 Docker容器数据卷

Docker容器数据卷文章目录Docker容器数据卷1. docker容器数据卷作用2. 添加数据卷的两种方式2.1 使用命令添加2.1.1 命令2.1.2 如何查看是否实现绑定(挂载)2.1.3 当容器退出后,修改宿主机,再次启动容器后会实现同步吗?2.1.4 如何实现权限控制2.2 使用DockerFile添加2.2.1 操作步骤2.2.2 验证是否构建成功1. docker容器数据卷作用...

2019-06-12 11:48:38 173

原创 Docker容器命令

Docker容器命令文章目录Docker容器命令1. docker运行(创建)容器命令2. docker查看容器命令3. docker退出容器命令4. docker启动容器命令5. docker重启容器命令6. docker停止容器命令7. docker删除容器命令8. docker进入容器命令9. docker查看容器日志10. docker查看容器内运行的线程11. docker查看容器的内...

2019-06-12 11:48:05 10893 1

原创 Docker镜像命令

Docker镜像命令文章目录Docker镜像命令1. docker镜像命令docker imagesdocker search 镜像名docker pull 镜像名docker rmi 镜像名2.docker导入导出命令2.1存出镜像命令2.2载入镜像命令1. docker镜像命令docker imagesdocker images该命令是用于查看当前docker主机上存在的镜像信...

2019-06-12 11:47:35 312

原创 Docker-社区版(CE)安装

Docker-社区版(CE)安装文章目录Docker-社区版(CE)安装安装步骤该安装方法是 基于centeros7 及其以上版本的安装方式,完全参考 docker官网提供的安装文档,官网安装文档地址为: https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/安装步骤安装所需的软件包。yum-ut...

2019-06-12 11:47:01 1523

原创 Docker相关概念

docker相关概念文章目录docker相关概念1. docker是什么2. 为什么要用docker3. docker理念4. docker三要素1. docker是什么docker是一个基于虚拟化服务的新型技术,是一个将运行时环境打包成容器进行传输的技术,实现 ”一次构建,处处运行的“理念 举个例子来说 docker的作用举例开发人员的工程在本地可以完美运行,但是交付给运维在...

2019-06-12 11:45:28 93

原创 Dockerfile 中 CMD 、RUN 和 ENTRYPOINT的区别和使用时机

Dockerfile 中 CMD 、RUN 和 ENTRYPOINT的区别和使用时机本博客来源来自https://blog.csdn.net/u010900754/article/details/78526443 ,这里只是记录一下,自己学习使用!文章目录Dockerfile 中 CMD 、RUN 和 ENTRYPOINT的区别和使用时机1. CMD 和 RUN 的区别2. CMD 和 E...

2019-06-12 11:44:11 9232

转载 IntelliJ IDEA2017.3激活

参考: http://blog.csdn.net/qq_27686779/article/details/78870816

2018-11-04 22:39:19 161 1

转载 Java读取resource文件/路径的几种方式

Java读取resource文件/路径的几种方式文章目录Java读取resource文件/路径的几种方式1. 说明2. 实现2.1 方式一2.2 方式二2.3 方式三1. 说明该文章转载自 https://blog.csdn.net/oschina_40188932/article/details/78833754?utm_source=blogxgwz0,写的很好 感谢解决我的需求,特此记...

2018-10-29 23:56:39 7584

原创 Spring之XML解析

XML解析,我们可以通过我们常用的以下代码作为入口也许,我们习惯使用第一种加载方式,但是以前也存在 第二种加载,并且这两种加载也有差别,下面再来分析。先分析 第二种 使用 BeanFactory 加载方式进入到  XMLBeanFactory中看到我们到  super(parentBeanFactory);  这个方法中,可以看到有一个操作,  ignoreDependencyInterface(...

2018-06-07 23:52:34 3891 2

原创 Redis主从复制原理

Redis主从同步原理 一台普通的redis服务器每秒一般处理100多个命令,当存在大量查询或者写命令时,服务器可能因承载不了而崩溃或者效率很低,此时可以通过配置从服务器来帮忙分担请求,达到降低负载的目的。细节redis是使用异步复制一个主服务器可以有多个从服务器,且每个从服务器下又可以有多个从服务器,展开就如同树型结构一般redis主从复制操作并不会阻塞主服务器,也就...

2018-06-07 23:50:26 235

原创 Redis-持久化

Redis持久化 持久化是为了数据重用或者防止系统崩溃后数据丢失,甚至就是保存计算后的结果方便使用等。redis支持两种方式来进行持久化将数据写入磁盘,分别是 快照以及aof。1.快照什么是快照 快照就是获取存储在内存中的数据在某个时间点的副本,在创建快照后,用户可以对快照进行备份,可以将快照放到其余服务器上进行恢复数据或者创建数据,还可以放在本地,方便系统重启后恢...

2018-06-07 23:50:08 178

原创 Redis过期设置

Redis-设置key过期expire key seconds 设置指定key 多少秒后过期, seconds 为 -1 时表示永不过期ttl key 查看指定key还有多少秒过期persist key 移除指定key的过期时间expireat key timestamp 设置指定key的过期时间为给定的unix时间戳pttl key ...

2018-06-07 23:49:46 5880 1

原创 Redis-Sort命令

Redis-sort命令使用 sort key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey] sort key 默认排序(升序),并且是默认是以分值来排序,例如有key1:{20 5 25},那么 执行 sort key1的结果就是 key1:{5 20 25...

2018-06-07 23:49:25 177

原创 Redis-ZSet常用命令

Redis-ZSet常用命令zadd key score member[{score member}…] 创建或设置指定key对应的有序集合,根据每个值对应的score来排名,升序。例如有命令 zadd key1 10 A 20 B 30 D 40 C;那么真实排名是 A B D Czrem key member 删除指定key对应的集合中的member元素zcard...

2018-06-07 23:49:08 472

原创 Redis-Hash

Redis-Hash常用命令hset key field value 设置一个散列,但是在散列中一次只能设置一个属性,如果要批量设置多个属性,则需要使用 hmset命令hget key field 获取指定key对应的散列中的指定属性对应的值,也是只能每次获取一个属性对应的值,如果要获取批量属性值,则需要使用命令 hmgethmset key field value[...

2018-06-07 23:48:50 648

原创 Redis-Set常用命令

Redis-Set常用命令Set与List的区别在于,Set保存的队列数据是不重复的,且无序sadd key value…在指定key对应的集合中添加 value集合,如果key不存在,即新创建srem key value…移除指定key中的value集合,并返回移除的值的数量sismember key value判断指定key中指定value是否存在集合中,返回 ...

2018-06-07 23:48:32 3914

jdk1.6 1.7 .18 local_policy.jar和US_export_policy.jar

下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。 如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security下覆盖原来文件,记得先备份。 如果安装了JDK,将两个jar文件也放到%JDK_HOME%\jre\lib\security下。 由于信息安全在军事等方面极其重要,如在第二次世界大战期间,使用了无线电,若是能够成功解密敌方的机密情报,往往预示着战争的胜利, 因此美国对加密解密等软件进行了出口限制,JDK中默认加密的密钥长度较短,加密强度较低,而UnlimitedJCEPolicyJDK7中的文件则没有这样的限制,因此为了获得更好的加密强度,需要替换掉那两个文件。

2018-05-22

java线程.pdf

线程是java程序设计的基本要素,但学习如何有效率的运用他们是很重要的工作。

2018-03-06

阿里巴巴Java开发手册终极版v1.3.0.pdf

《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总 结,经历了多次大规模一线实战的检验及不断的完善,系统化地整理成册,反馈给广 大开发者。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是 编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表 结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续 维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心 视角,划分为编程规约、异常日志、单元测试、安全规约、工程结构、MySQL 数据库六 个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障敏感性, 规约依次分为强制、推荐、参考三大类。对于规约条目的延伸信息中,“说明”对内 容做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要 提防的雷区,以及真实的错误案例。

2018-03-06

Spring技术内幕第二版pdf 百度云资源

Spring技术内幕 可以帮助我们更清晰的了解spring设计原理

2018-01-27

spring源码深度解析

该书籍 详细介绍了 spring 的 前世今生,收获很大

2018-01-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除