- 博客(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
588
原创 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
441
原创 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
289
原创 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
220
原创 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
161
原创 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
132
原创 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
123
原创 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
509
原创 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
735
原创 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
241
原创 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
325
原创 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
427
原创 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
232
原创 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
412
原创 5. Git 本地分支命令
文章目录前言1. 什么是分支2. 如何查看分支列表,以及当前所处分支3. 如何创建新分支4. 如何切换分支5. 如何删除分支5.1 是否可以删除当前所处分支前言该文章只是记录了一些自己的见解,可能并不准确,只是为了学习时的一些记录,不喜勿喷,谢谢该文章,只要记录一些关于分支的使用笔记1. 什么是分支当我们每次commit之后,就会生成一个提交节点,而多个提交节点组成的链路,就叫做一个...
2020-04-26 22:38:23
173
原创 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
243
原创 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
515
原创 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
427
原创 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
744
原创 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
223
原创 3. 基于自定义数组的普通队列实现
普通队列有个致命的地方就是 每次当队首弹出的时候,后续的所有元素都需要移动位置,复杂度很高,当数据量大的时候很致命,后面有循环队列来解决该问题Queue队列接口package com.lonely.队列;/** * @author ztkj-hzb * @Date 2019/6/18 15:21 * @Description 队列 先进先出 */public interfac...
2019-06-18 18:13:33
150
原创 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
146
原创 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
196
原创 玩转数据结构代码
首先,这里只有代码,没有任何的讲解过程,因为自己本身也只是个新手,在探索的过程,在学习教程<玩转数据结构>后,根据视频和思路来手敲的代码,具体的工程在github上 github代码地址,后面会给上每个小数据结构实现的代码,这里的代码只是自己记录,方便以后忘了可以快速找到。...
2019-06-18 18:05:41
384
原创 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
203
原创 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
11194
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
446
原创 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
1647
原创 Docker相关概念
docker相关概念文章目录docker相关概念1. docker是什么2. 为什么要用docker3. docker理念4. docker三要素1. docker是什么docker是一个基于虚拟化服务的新型技术,是一个将运行时环境打包成容器进行传输的技术,实现 ”一次构建,处处运行的“理念 举个例子来说 docker的作用举例开发人员的工程在本地可以完美运行,但是交付给运维在...
2019-06-12 11:45:28
128
原创 Dockerfile 中 CMD 、RUN 和 ENTRYPOINT的区别和使用时机
Dockerfile 中 CMD 、RUN 和 ENTRYPOINT的区别和使用时机本博客来源来自https://blog.youkuaiyun.com/u010900754/article/details/78526443 ,这里只是记录一下,自己学习使用!文章目录Dockerfile 中 CMD 、RUN 和 ENTRYPOINT的区别和使用时机1. CMD 和 RUN 的区别2. CMD 和 E...
2019-06-12 11:44:11
10520
转载 IntelliJ IDEA2017.3激活
参考: http://blog.youkuaiyun.com/qq_27686779/article/details/78870816
2018-11-04 22:39:19
199
1
转载 Java读取resource文件/路径的几种方式
Java读取resource文件/路径的几种方式文章目录Java读取resource文件/路径的几种方式1. 说明2. 实现2.1 方式一2.2 方式二2.3 方式三1. 说明该文章转载自 https://blog.youkuaiyun.com/oschina_40188932/article/details/78833754?utm_source=blogxgwz0,写的很好 感谢解决我的需求,特此记...
2018-10-29 23:56:39
7698
原创 Spring之XML解析
XML解析,我们可以通过我们常用的以下代码作为入口也许,我们习惯使用第一种加载方式,但是以前也存在 第二种加载,并且这两种加载也有差别,下面再来分析。先分析 第二种 使用 BeanFactory 加载方式进入到 XMLBeanFactory中看到我们到 super(parentBeanFactory); 这个方法中,可以看到有一个操作, ignoreDependencyInterface(...
2018-06-07 23:52:34
4096
2
原创 Redis主从复制原理
Redis主从同步原理 一台普通的redis服务器每秒一般处理100多个命令,当存在大量查询或者写命令时,服务器可能因承载不了而崩溃或者效率很低,此时可以通过配置从服务器来帮忙分担请求,达到降低负载的目的。细节redis是使用异步复制一个主服务器可以有多个从服务器,且每个从服务器下又可以有多个从服务器,展开就如同树型结构一般redis主从复制操作并不会阻塞主服务器,也就...
2018-06-07 23:50:26
260
原创 Redis-持久化
Redis持久化 持久化是为了数据重用或者防止系统崩溃后数据丢失,甚至就是保存计算后的结果方便使用等。redis支持两种方式来进行持久化将数据写入磁盘,分别是 快照以及aof。1.快照什么是快照 快照就是获取存储在内存中的数据在某个时间点的副本,在创建快照后,用户可以对快照进行备份,可以将快照放到其余服务器上进行恢复数据或者创建数据,还可以放在本地,方便系统重启后恢...
2018-06-07 23:50:08
205
原创 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
5954
原创 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
214
原创 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
698
原创 Redis-Hash
Redis-Hash常用命令hset key field value 设置一个散列,但是在散列中一次只能设置一个属性,如果要批量设置多个属性,则需要使用 hmset命令hget key field 获取指定key对应的散列中的指定属性对应的值,也是只能每次获取一个属性对应的值,如果要获取批量属性值,则需要使用命令 hmgethmset key field value[...
2018-06-07 23:48:50
684
原创 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
3963
jdk1.6 1.7 .18 local_policy.jar和US_export_policy.jar
2018-05-22
阿里巴巴Java开发手册终极版v1.3.0.pdf
2018-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人