首页
学习
活动
专区
工具
TVP
发布

源码之路

专栏作者
84
文章
99233
阅读量
24
订阅数
分布式基础篇-docker安装mysql和redis
docker run -p 3306:3306 --name 12mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
源码之路
2023-02-14
4600
Mybatis源码阅读(一) 配置文件的加载及查询过程
首先在 MyBatis 启动的时候我们要去解析配置文件,包括全局配置文件和映射器配置文件,这里面包含了我们怎么控制 MyBatis 的行为,和我们要对数据库下达的指令,也就是我们的 SQL 信息。我们会把它们解析成一个 Configuration 对象。
源码之路
2021-12-16
7070
"删库跑路"真的存在吗,我们该如何应对
对于任何一个企业来说,数据安全的重要性是不言而喻的。我在开篇词中也曾经强调过,凡是涉及到数据的问题,都是损失惨重的大问题。
源码之路
2021-06-24
5570
搭建自己的Gitlab
sudo EXTERNAL_URL="https://gitlab.congzhizhi.com" yum install -y gitlab-ee 如果用的是国内仓库地址,则执行以下命令,其实区别就是ee和ce版 sudo EXTERNAL_URL="https://gitlab.congzhizhi.com" yum install -y gitlab-ce 此时要么买一个域名,要么在本地的hosts文件中设置一下 安装gitlab服务器的ip地址 gitlab.congzhizhi.com 假如不想设置域名,可以直接安装 yum install -y gitlab-ee
源码之路
2021-04-09
8110
黑科技:Java程序跑在远程服务器,竟然可以本地打断点调试
注意-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005就是上面配置断点时IDEA给你生成的。
源码之路
2021-04-09
2.2K0
Java代码原来是这么执行的—怒撕字节码指令
getstatic指令的操作码是0xB2,该指令需要一个操作数,该操作数是常量池中某个CONSTANT_Fieldref_info常量的索引。在本例中,该指令表示获取System的out静态字段,该静态字段的类型为java.io.PrintStream。该指令执行完成后,操作数栈顶存放的就是System的out静态字段的引用
源码之路
2021-03-02
9460
5. java 对象是如何创建的?new背后到底做了什么
虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。
源码之路
2021-03-02
6680
4. JDK源码级别彻底剖析类加载机制
当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到 JVM。
源码之路
2021-03-02
3610
Class文件结构(2)——用java代码实现解析Class文件
代码地址:https://github.com/congzhizhi/classFile,我就贴测试代码了,github上项目路径下的test有测试代码。
源码之路
2021-02-05
2.8K0
Class文件结构(1)—手动解析每一个字节,你看不懂
通过我们javap -verbose TulingByteCode .class反编译,下面的字节码想必大家都看过,但是他是怎么来的呢?又代表了什么意思呢?
源码之路
2021-02-04
4010
java虚拟机栈-由StackOverFlowError引起的思考
在默认栈大小的情况下,多次运行代码,得出的结果是相差不大的。在发生StackOverflowError时,进程并没有结束,因为一个线程的StackOverflowError并不影响整个进程。 现在我们将配置JVM的启动参数-Xss(栈大小),以调整虚拟机栈的大小为256k。如果你是使用idea运行本例代码,可直接在VM options配置加上-Xss256K。如果你是使用java命令运行,可在java命令后面加上-Xss256k。
源码之路
2021-02-04
1.2K0
短文:用字节码解析i++和++i的区别
是不是很无聊,相信很多人会回答,i++是先赋值再+1,++i是先+1再赋值。确实是这样,但是我总是想追根溯源,如何解释这个原则?
源码之路
2021-02-02
7680
<循环渐进JVM> jvm总览-让我们从头开始,带官网解释
Reference -> Developer Guides -> 定位到:https://docs.oracle.com/javase/8/docs/index.html
源码之路
2020-12-22
3930
笔记:win10上快速搭建容器环境,不需要VM
1.5.1 在Win10上准备centos7 和大家说明一下,我们的目的仅仅是要安装一个centos7,然后在centos7上安装docker 如果搞不定vagrant+virtualbox的方式,也可以直接使用VM搭建一个centos7 或者你可以直接使用一台云服务器,上面安装了centos7 毕竟我们的目的只是为了得到一个centos7的机器,所以不必花太多精力在这个问题上折腾 我上课用的环境是 【 win10 64位 VirtualBox-6.0.12-133076-Win
源码之路
2020-12-01
5180
「Mysql优化大师三」查询执行计划explain详解,含案例
select查询的序列号,包含一组数字,表示查询中执行select子句或者操作表的顺序 id号分为三种情况: 1、如果id相同,那么执行顺序从上到下 2、如果id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 3、id相同和不同的,同时存在:相同的可以认为是一组,从上往下顺序执行,在所有组中,id值越大,优先级越高,越先执行
源码之路
2020-10-18
1.1K0
「Mysql优化大师一」mysql服务性能剖析工具
方法一: 全局变量设置,将 slow_query_log 全局变量设置为“ON”状态 mysql> set global slow_query_log='ON'; 设置慢查询日志存放的位置 mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log'; 查询超过1秒就记录 mysql> set global long_query_time=1;
源码之路
2020-09-24
1K0
Callable/Future 使用及原理分析,Future .get()为啥能等待呢?
Callable/Future 和 Thread 之类的线程构建最大的区别在于,能够很方便的获取线程执行完以后的结果。首先来看一个简单的例子
源码之路
2020-09-04
4.1K0
线程池ThreadPoolExecutor 源码分析,面试官也就那么回事,他怎么敢!
在 Java 中,如果每个请求到达就创建一个新线程, 创建和销毁线程花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。
源码之路
2020-09-04
5620
逐行阅读Spring5.X源码(十三)spring事务源码分析
spring并不直接管理事务,而是提供了多种事务管理器,他们将事务的管理职责委托给Hibernate或JTA等持久化机制所提供的相关平台框架的事务来实现。通过这个接口,spring为各个平台如JDBC、Hibernate等提供了对应的事务管理器,但是事务的实现就是各平台自己的事情了。
源码之路
2020-09-04
6090
逐行阅读Spring5.X源码(十二)AOP源码分析,难!面试官都不一定懂!
警告:阅读此文前务必先阅读之前写的《spring如何解决循环引用》,本篇文章高度依赖循环引用。
源码之路
2020-09-04
4870
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档