<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a791812366的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a791812366</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a791812366]]></copyright><item><title><![CDATA[JUC并发编程]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/124445630</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/124445630</guid><author>a791812366</author><pubDate>Wed, 27 Apr 2022 16:56:38 +0800</pubDate><description><![CDATA[1.什么是JUC
其实就是三个包：
java.uitl.concurrent
java.uitl.concurrent.atomic
java.uitl.concurrent.locks
2.线程和进程
java默认有几个线程？
2个，main线程，GC线程
线程有几种状态？
 public enum State {
        NEW,// 线程新生
        RUNNABLE, // 运行
        BLOCKED, // 阻塞
        WAITING, // 等待，死死的等
 ]]></description><category></category></item><item><title><![CDATA[Cannal组件]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/124422124</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/124422124</guid><author>a791812366</author><pubDate>Tue, 26 Apr 2022 17:19:14 +0800</pubDate><description><![CDATA[1.Cannal入门
什么是canal
当mysql发生新增，修改，我们可以利用cancal监控到这个修改的数据，并将这个数据写到消息队列，供实时计算框架使用。
cancal主要支持了MYSQL的Binlog解析，解析完成后才利用Cancal Client来处理获得的相关数据
什么是mysql的binlog
MYSQL的二进制日志可以说是MYSQL最重要的日志了，它记录了所有的DDL和DML（除了数据查询语句），以事件形式记录，还包含语句执行的消耗时间。
二进制有两个重要的使用场景：
1.主从数据同步
2.]]></description><category></category></item><item><title><![CDATA[Java反射与自定义注解]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/124383002</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/124383002</guid><author>a791812366</author><pubDate>Sun, 24 Apr 2022 17:23:37 +0800</pubDate><description><![CDATA[反射技术
基本概念：
使用反射机制可以动态获取当前class的信息，比如方法的信息，注解信息，方法的参数，属性等；
反射技术应用的场景

JDBC加载驱动链接 class.forname
Spring容器框架IOC实例化对象
自定义注解生效（反射+AOP）
第三方核心的框架


...]]></description><category></category></item><item><title><![CDATA[2022-面试题汇总]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/124190602</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/124190602</guid><author>a791812366</author><pubDate>Fri, 15 Apr 2022 16:39:10 +0800</pubDate><description><![CDATA[1.四大频繁Full GC原因
 1. 大量反射代码使永久代类太多导致频繁Full GC
 解决方案：在有大量反射代码的场景下，只要把-XX:SoftRefLRUPolicyMSPerMB=0，这个参数设置大一些即可，千万别让一些新手同学设置为0，可以设置个1000，2000，3000，或者5000毫秒，都可以。提高这个数值，就是让反射过程中JVM自动创建的软引用的一些类的Class对象不要被随便回收，优化这个参数之后，就可以看到系统稳定运行了。
 2. 大对象导致频繁Full GC
 解决方案，一是对SQ]]></description><category></category></item><item><title><![CDATA[JAVA多线程]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/124027591</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/124027591</guid><author>a791812366</author><pubDate>Thu, 07 Apr 2022 23:49:38 +0800</pubDate><description><![CDATA[一，进程和线程
相关概念
 - 进程

1.进程指运行中的程序，比如我们使用QQ，就启动了一个进程，操作系统就会为该进程分配内存空间。
2，进程是程序的一次执行过程，或是正在运行的一个程序，是动态过程：有它自身的产生，存在和消亡的过程

 - 线程

1.线程由进程创建的，是进程的一个实体
2.一个进程可以拥有多个线程

 - 其他相关概念

*单线程*：同一个时刻，只允许执行一个线程
*多线程*：同一个时刻，可以执行多个线程

*并发*：同一个时刻，多个任务交替执行，造成一种“貌似同时”的错觉，简单的说，]]></description><category></category></item><item><title><![CDATA[JAVA代码执行顺序]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/124002956</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/124002956</guid><author>a791812366</author><pubDate>Wed, 06 Apr 2022 23:11:07 +0800</pubDate><description><![CDATA[1.类中代码的执行顺序
1，先执行静态代码块
public class Test {
    static {
        System.out.println("static code execute");
    }
    public static void main(String[] args) {
        System.out.println("main() execute");
    }
}

// static code execute
// main() execute

2]]></description><category></category></item><item><title><![CDATA[JVM梳理]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/123738052</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/123738052</guid><author>a791812366</author><pubDate>Fri, 25 Mar 2022 17:25:55 +0800</pubDate><description><![CDATA[一，JAVA从编码到执行
图示

拓展：
1.栈，本地方法栈，程序计数器不会有垃圾回收
2.JVM调优，调方法区和堆，大部分是堆


二，类加载器
作用：加载Class文件

]]></description><category></category></item><item><title><![CDATA[再战集合1]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/123549360</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/123549360</guid><author>a791812366</author><pubDate>Thu, 17 Mar 2022 17:23:01 +0800</pubDate><description><![CDATA[前置知识点：
集合的理解和好处
之前学过数组用于存放一组数据，而数组有以下不方便的特点：
1，长度开始时必须指定，而且一旦指定，不能更改。
2，保存的必须为同一类型的元素
3，使用数组进行增加元素的示意代码
而集合有以下优点
1.可以动态保存任意多个对象，使用比较方便
2.提供了一些列方便的操作对象的方法：add,remove，set，get等
3.使用集合添加，删除元素的示意代码更简洁
一，图解集合框架

集合的框架体系
Java的集合类很多，主要分为两大类：
单列集合 集合中放的都是单个单个的元素

双]]></description><category></category></item><item><title><![CDATA[mybatisplus]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/121579952</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/121579952</guid><author>a791812366</author><pubDate>Sat, 27 Nov 2021 22:25:26 +0800</pubDate><description><![CDATA[mybatisplus注意点
1.直接用mapperScan就行了，没有加mapper注释。
2.测试打印sql语句yaml配置mybatis.configuration.log-impl:stdoutinpl
3.常用注解
@TableName
映射数据库的表名，默认是按照实体类的名字去找表的名字。如果实体类的名字和实体类不一样，就用@TableName(value=“user”)来解决
@TableId（value=“id”，type=IdType.）
设置主键映射，value主键的字段名,
type设]]></description><category></category></item><item><title><![CDATA[Cannot read properties of null (reading ‘style‘)前端错误记录21/10/20]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/120870807</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/120870807</guid><author>a791812366</author><pubDate>Wed, 20 Oct 2021 17:30:50 +0800</pubDate><description><![CDATA[在代码中使用到了v-if，
并且在mounted中引用函数，判断并渲染这个v-if下面的元素了。

经过查阅后得知：
v-if
初始渲染
初始值为 false 组件不会渲染，生命周期钩子不会执行，v-if 的渲染是惰性的。
初始值为 true 时，组件会进行渲染，并依次执行 beforeCreate,created,beforeMount,mounted 钩子。
切换
false =&gt; true
依次执行 beforeCreate,created,beforeMount,mounted 钩子。
tru]]></description><category></category></item><item><title><![CDATA[MapStruct]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/115093547</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/115093547</guid><author>a791812366</author><pubDate>Mon, 22 Mar 2021 21:27:40 +0800</pubDate><description><![CDATA[MapStruct
使用场景：用于不同的pojo之间的转化
传统方式
通过get，set方式转换
@Data
publci class CarDTO{
private Long id;
private String name;
…
}
@Data
public class CarVO{
}
业务层代码如下：
  //模拟业务构造出的CarDTO对象
    CarDTO carDTO = buildCarDTO();
    //转换dto-vo
    CarVO carVO = new CarVO();]]></description><category></category></item><item><title><![CDATA[JNDI RAS,SM2,SM4 动态sql Event]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/115009891</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/115009891</guid><author>a791812366</author><pubDate>Sun, 21 Mar 2021 21:18:31 +0800</pubDate><description><![CDATA[JNDI :https://blog.youkuaiyun.com/wn084/article/details/80729230
RAS SM2 SM4加密算法：https://blog.youkuaiyun.com/jambeau/article/details/99761661
动态sql：https://mybatis.org/mybatis-3/zh/dynamic-sql.html
Event事件通知机制：https://blog.youkuaiyun.com/chengbinbbs/article/details/88409951]]></description><category></category></item><item><title><![CDATA[VUE+elementUI]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/113532629</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/113532629</guid><author>a791812366</author><pubDate>Sun, 21 Mar 2021 21:17:32 +0800</pubDate><description><![CDATA[Vue
集大成者
MVVM+DOM



]]></description><category></category></item><item><title><![CDATA[Lambda]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/114763333</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/114763333</guid><author>a791812366</author><pubDate>Sun, 14 Mar 2021 10:40:23 +0800</pubDate><description><![CDATA[Lambda
Lambda是JAVA8添加的一个新的特性，就是一个匿名函数，使用Lambda表达式可以对一个接口进行非常简洁的实现。
简单实例：
public class Test {
public static void main(String[] args) {
    //1，使用接口的实现类
    Com com = new mycom();
    //2，使用匿名内部类
    Com com1 = new Com() {
        @Override
        public in]]></description><category></category></item><item><title><![CDATA[Swagger]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/114295306</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/114295306</guid><author>a791812366</author><pubDate>Wed, 03 Mar 2021 10:27:24 +0800</pubDate><description><![CDATA[Swagger简介
前后端分离
Vue+SpringBoot
前端：后端控制层，服务层，数据访问层
前端：前端控制层，视图层
前后端如何交互？==&gt;API
前后端相对独立，并且松耦合；
前后端甚至可以部署在不同的服务器上；
产生一个问题：
前后端集成联调，前端人员和后端人员，无法做到及时协商。
解决方案：
首先指定schema【计划的提纲】，实时更新最新的API，降低集成的风险；
Swagger
- 号称世界上最流行的Api框架；
- RestFul Api 文档在线自动生成工具=&gt; Api文档]]></description><category></category></item><item><title><![CDATA[MyBatisPlus]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/114088808</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/114088808</guid><author>a791812366</author><pubDate>Fri, 26 Feb 2021 16:50:54 +0800</pubDate><description><![CDATA[MyBatisPlus
MyBatisPlus可以节省我们大量的时间，简化MyBaits，所有的CRUD代码它都可以自动化完成。
快速入门
使用第三方组件：
1，导入对应的依赖
2，研究依赖如何配置
3，代码如何编写
4，提高扩展能力
步骤
1，创建数据库 mybatis_plus
2,   创建User表
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT ‘主键ID’,
name VARCHAR(30]]></description><category></category></item><item><title><![CDATA[Mybatis连接达梦8数据库]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/114086514</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/114086514</guid><author>a791812366</author><pubDate>Thu, 25 Feb 2021 15:43:48 +0800</pubDate><description><![CDATA[1，导入相应jar包
2，导入依赖
&lt; dependency&gt;
&lt; groupId&gt;com.dm&lt; /groupId&gt;
&lt; artifactId&gt;Dm8JdbcDriver&lt; /artifactId&gt;
&lt; version&gt;1.7&lt; /version&gt;
&lt; scope&gt;system&lt; /scope&gt;
&lt; systemPath&gt;${project.basedir}/src/main/resou]]></description><category></category></item><item><title><![CDATA[JAVA doc常用注释]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/114009914</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/114009914</guid><author>a791812366</author><pubDate>Wed, 24 Feb 2021 09:31:21 +0800</pubDate><description><![CDATA[标记                            用于                                                        作用
@author           对类的说明                                          标明开发该类模块的作者
@version          对类的说明                                          标明该类模块的版本
@see         ]]></description><category></category></item><item><title><![CDATA[SpringCloud   Nacos]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/113919030</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/113919030</guid><author>a791812366</author><pubDate>Tue, 23 Feb 2021 14:39:37 +0800</pubDate><description><![CDATA[微服务架构4个核心问题：
1.服务很多，客户端怎么访问
2.服务之间怎么通信
3.服务如何治理
4.服务挂了怎么办
解决方案：
SpringCloud~ 生态！
1.SpringCloud NetFlix
一站式解决方案
Api网关：zuul组件
Feign --HttpClinet —Http通信方式，同步，阻塞
服务注册发现：Eureka
熔断机制：Hystrix
2.SpringCloud Apache Dubbo Zookeeper
半自动，需要整合别人的
Api网卡：没有，找第三方组件，或者自己实]]></description><category></category></item><item><title><![CDATA[SpringBoot Mybatis 分布式 Dubbo Zookeeper]]></title><link>https://blog.youkuaiyun.com/a791812366/article/details/113727876</link><guid>https://blog.youkuaiyun.com/a791812366/article/details/113727876</guid><author>a791812366</author><pubDate>Sun, 21 Feb 2021 15:34:03 +0800</pubDate><description><![CDATA[Springboot主程序
@SpringBootApplication//标注这个类是一个springboot的应用
public class SpringbootApplication {
public static void main(String[] args) {
    //将springboot应用启动
    SpringApplication.run(SpringbootApplication.class, args);
}

}
注解
@SpringBootConfiguration
s]]></description><category></category></item></channel></rss>