- 博客(27)
- 收藏
- 关注
原创 springboot启动流程解析
这里会解析所有配置类(包括@SpringBootApplication标注的主类 ),扫描所有@Configuration 注解解析@EnableAutoConfiguration 注解,并通过AutoConfigurationImportSelector加载META-INF/spring.factories中定义的自动配置类。用户也可以通过代码或配置添加自定义的监听器。所以该类注解是组合注解,一般都会组合一个@Import 注解,用于导入指定的多个类,而被导入的类一般分为三种:配置类、选择器与注册器。
2025-03-11 17:46:05
651
原创 【JVM逃逸分析】
只有当对象无法被拆解(如包含数组或复杂结构)且栈空间足够时,才可能选择栈上分配。实际开发中,标量替换是更常见的优化手段,而栈上分配的实现依赖于具体的 JVM 策略。如果对象未逃逸但无法被拆解为标量(例如包含复杂结构或数组),JVM 可能会直接在栈帧中分配内存,“在 Java 中,未逃逸的对象不一定会直接在栈上分配。,JVM 可能将其拆解为标量(Scalar)或直接分配在栈上,从而避免堆内存分配。:栈内存有限(默认 1MB),大对象无法栈上分配。:在栈上分配一块连续内存,模拟堆中对象的结构。
2025-03-02 23:08:56
536
原创 【垃圾回收】三色标记算法原理及应用
三色标记算法是一种用于垃圾回收的理论模型。**白色:**该对象没有被标记过,在标记开始时,堆内存中的对象都是白色的。标记结束后,仍为白色则被认为是垃圾对象。**灰色:**该对象已经被标记过(存活的对象,不会被清理),但该对象下引用的子对象没有全被标记完,表示这个对象正在枚举中。是一个过渡状态。**黑色:**该对象已经被标记过,该对象下引用的子对象也全被标记完(程序需要的对象)。三色标记过程:1、初始时,堆中所有对象都是白色2、从GC Roots开始枚举,它们所有的直接引用变为灰色,自己变为黑色。
2025-02-13 17:36:39
1142
原创 【分布式事务】SEATA介绍与实现
XA模式的锁是数据库的DB锁,锁的粒度不同。如果是XA模式,上述场景事务2都没法读写对应资源了,AT模式事务2还可以修改相同数据库表的其它字段。微服务结构:agent模拟采集数据,上报数据经过gateway网关路由到processor服务,processor记录agent基本数据到其库表,随后调用其它微服务记录个子需要的数据。由于不是所有业务都适合TCC模式,上面的测试代码是新增,不存在资源预留,用AT模式就很好。这样事务1在2阶段回滚时发现数据和更新后的数据不一样了,就记录异常,人工介入。
2025-02-07 20:39:23
715
原创 【方法区】运行时数据区——方法区
本质上是Java语言编译后代码 存储区域,它存储每一个类的结构信息,例如:运行时常量池、成员变量、方法数据、构造方法和普通 方法的字节码指令等内容。很多语言都有类似区域。方法区的具体实现有两种:永久代(PermGen)、元空间(Metaspace)Class信息:类型信息,比如Class(com.hero.User类)方法信息,比如Method(方法名称、方法参数列表、方法返回值信息)字段信息,比如Field(字段类型,字段名称需要特殊设置才能保存的住)类变量(静态变量)
2025-02-01 18:02:40
440
原创 【JAVA内存模型】缓存一致性协议与volatile关键字
为了缓解内存 和 CPU之间的速度差的问题, 现在计算机会在CPU上增加缓存,每个CPU内核都有自己的L1和L2高速缓存,CPU芯片上的CPU内核共享一个L3缓存。JAVA内存模型也是如此。CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找,每个cpu有且只有一套自己的缓存。这就涉及到缓存一致性的问题。
2025-01-22 15:26:54
852
原创 【Linux小实战】项目运行环境替换class文件实现项目更新
step 1首先在本地更新文件,rebuild项目,找到新的class文件。step 2链接项目linux系统,找到项目位置执行命令,找到要替换的文件加位置find / -name ***.class(一般在:/usr/local/apache-tomcat-8.5.31/webapps/war包名/WEB-INF/classes/…)使用XFtp在相应目录下替换文件重启tomcatcd /usr/local/apache-tomcat-8.5.31/binstartup.sh
2021-03-31 15:40:03
712
原创 vue-element-admin登录流程改造
基于第一篇https://blog.youkuaiyun.com/qq_40298670/article/details/1127021741.安装最新的vue-element-admin;2.如有需要可以去掉eslint;在下面这个文件里面全局搜索3.删除所有的eslint文件4.开始安装依赖包, npm install5.启动服务:npm run dev ,但是打开的是两个窗口,需要把open设置为false;6.进入登录页面:7.后端编写登录接口(这里以java为列):验证码根据需
2021-01-16 14:21:16
2131
1
原创 vue-element-template|实现登录,根据权限显示路由
文章目录前言一、安装vue-element-template基础模板?二、具体步骤1.修改路由文件2.挂载前的验证3.获取用户角色,保存一些从后台获得的roles相关信息4.筛选路由5.最后的加载6.别忘了修改登录、推出、获取用户信息路径三、遇到的bug1.data functions should return an object:2.配置后台api接口baseUrl不生效3.配置完第2部api后,报错Proxy error: Could not proxy request auth/code from
2021-01-16 13:56:01
3249
2
原创 centos配置桥接模式
配置centos桥接模式参考https://blog.youkuaiyun.com/u013626215/article/details/88645003配置完成后出现主机ping的通虚拟机,虚拟机ping不通主机的情况解决方案:https://blog.youkuaiyun.com/chenjin_csdn/article/details/106399050
2020-12-30 13:07:55
282
原创 IDEA配置PHP+Xdebug断点调试,踩过的坑
第一步,配置WrapServer参见百度配置php.ini(\wamp64\bin\apache\apache2.4.46\bin\php.ini)[xdebug]zend_extension=":/wamp64/bin/php/php7.3.21/zend_ext/php_xdebug-2.9.6-7.3-vc15-x86_64.dll";开启自动跟踪xdebug.auto_trace = On;开启异常跟踪xdebug.show_exception_trace = On;开启远程调试
2020-12-08 15:49:32
1427
转载 poi 处理excel 小数问题 整数不保留小数位 整数多.0
private String getValue(Cell hssfCell) { if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) { // 返回布尔类型的值 return String.valueOf(hssfCell.getBooleanCellValue()); ...
2019-06-03 16:18:05
3714
转载 mysql 多表更新
更新表1的某一列为表2中与表一关联的那些行的某列最大值SET SQL_SAFE_UPDATES = 0;UPDATE schema.tb1 name1 SET name1.law1= (SELECT name2.law2 FROM tb2 name2 WHERE name2.law2 = name1.law1 ORDER BY name2.law2 DESC limit 1)W...
2019-05-09 16:13:45
109
转载 【Linux 基础】 虚拟网络编辑
客户端与宿主机之间的网络速通方式1.桥接(client完全等价于一台物理主机)2.NET(最多,默认模式) a,Net Address transform,网络地址转换 b,客户机能访问外网,可以访问局域网内的其他物理主机。 c,其他的局域网内物理主机不能访问客户机。3.only host a.和NAT非常像 b.不能访问外网4.查看client机的网络链接模式 a.右键选...
2019-04-26 16:10:25
343
转载 【Linux基础】 目录和权限
【windous】以磁盘分区物理结构作为文件系统结构【centos】#逻辑结构/ #文件系统的根/bin #binarg文件,可执行文件(重要性高)/sbin #super binary/usr/bin #厂商的相关命令/usr/sbin #重要性高/*用户级别:*//usr/local/bin/usr/l...
2019-04-25 16:40:28
131
转载 【Linux基础】 基本命令
基本命令$>ls #当前目录$>ls -l #列表显示$>ls --help #帮助$>ls -a -l -h #查看当前目录 -h:人性化 -l:列表 -a:显示开头$>clear #清屏$>cd /home ...
2019-04-25 09:10:22
127
原创 mysql合并某字段相同元素,其余字段逗号 连接
mysql合并某字段相同元素,其余字段逗号 连接SELECT GROUP_CONCAT(`lowname`) as name1, lownameFROM table group by lowname;
2019-03-21 13:50:15
1092
转载 eclipse读入txt tab分割数据到二维数组
eclipse读入txt tab分割数据到二维数组import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;pub...
2019-03-13 17:58:04
470
转载 eclipse读mysql数据错误问题
问题汇总:异常一:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time 解决:在连接url后加入参数&serverTimezone=UTC 异常二:超出了结果集边界解决:遍历得到结果集长度后要把...
2019-03-13 17:56:37
382
转载 windows命令行输出到txt
windows命令行输出到txt你的命令加>加你想保存的文件地址和名字就行了-java -jar yourjar.jar > your outputfile_name
2019-03-13 14:26:19
2513
转载 mysql导出指定列数据到txt中
导出指定表列数据到外部txt1、配置my.ini文件secure_file_priv = F:/2、重启mysql服务进入指定表> show databases;> use database;> select law1,law2 into outfile "F:/data.txt" (输出的文件路径) lines terminated by “\r\n...
2019-03-12 16:51:34
921
转载 mysql日期查询 日期比较
1.Convert转成String,在用Like查询。select * from table1 where convert(varchar,yourtime,120) like ‘2017-06-30%’ 2.Betweenselect * from table1 where yourtime between ‘2017-...
2019-03-04 11:57:01
1372
原创 MYSQL 导入txt文件;删除表数据;
MYSQL 导入txt文件操作命令load data local infile “f:/data.txt” into table tb_name();
2019-01-30 21:45:06
288
转载 mysql error code 1175
mysql error code 1175Error Code: 1175Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option i...
2019-01-30 10:18:36
161
转载 mysql error code 1093
MYSQL ERRORCODEError Code 1093解决方法Error Code 1093update car set tag = 1 where id in (select id from car where brand_id=182 and tag=0);Error Code: 1093. You can’t specify target table ‘O’ for update...
2019-01-30 10:12:12
255
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人