随心记笔记

1.栈管运行,堆管存储,方法调用入栈,调用结束出栈,方法对象保存在堆中,调用结束出栈并不代表立即销毁,有垃圾回收策略。方法中的变量过了作用域其局部变量表中的地址不会消失,会被方法中的下个变量复用。

2.数据库,MVCC多版本并发控制,redo,undo日志

redo日志 记录某数据块被修改后的值,可以用来恢复未写入data file 的已成功事物更新的数据,redo即重做

undo日志 记录某数据被修改前的值,可以在事物失败时进行rollback;undo即撤销还原。

3.StringUtils.hasLength() spring的方法 判断字符串序列不为null且长度大于0 则返回true

4.学习:

redis shiro jwt  springboot mybatis cloud rabbitsmq  nacos openfeign nacos config sentinel linux websocket

5.类加载过程:

加载-连接-初始化  连接分为验证、准备、解析,

.java文件经过javac编译后成为.class文件,在磁盘上通过io流读入.class二进制字节码文件放到java虚拟机的运行内存中的方法区里,并且在堆内存中创建一个class对象,此为加载过程 

连接中的验证指验证二进制字节码文件的正确性和有效性

连接中的准备指给类的静态变量分配内存,并且初始化默认值

连接中的解析指把类中符号的引用转换为直接引用

初始化是给类的静态变量初始化指定的值,执行静态代码块

6.平衡二叉树:

基于二叉排序树,所以根本也是一个二叉排序树,每个节点的平衡因子的绝对值小于1的二叉排序树称为平衡二叉树.平衡因子(左子树的高度减去右子树的高度)

7.SpringSecurity认证过程:

用户访问资源,底层经过滤器filters->认证管理器AuthentiationManger(接口)-默认实现(ProviderManager)->认证服务AuthentiationProvider(是ProviderManager的一种具体的认证方式)->UserDetailService接口进行用户验证

8.@Value

用于注入外部参数对应的property(配置数据)

${ property : default_value }  冒号后面default_value是前者配置数据没写定值的时候的默认值

9.spring.application.name= xxx  配置应用程序名称(nacos服务名)

10.application.properties和application.yml区别:

两者都是SpringBoot的配置文件,yml文件的层次结构有序,更明显,properties优先级相对于yml更高,可以在不同的目录下添加properties配置文件

11.

Logger log=LogerFactory.getLogger(类名.class) 产生日志对象


System.currentTimeMillis()获取当前时间


@Cacheable 通过代理对象增强缓存功能,通知底层系统 把方法的返回值存储到Cache中
 

12.

MP自动填充:

有些表中会有更新时间、创建时间、更新人或者创建人这些字段。

每次对数据进行新增、删除、修改时都需要对这些字段进行设置。传统的做法是在进行这些操作前,对Entity的字段进行set设置,然后再进行操作。这种做法不仅容易忘记导致出错、而且代码会显得特别冗余。

所以MP就提供自动填充的功能,帮助自定设置这些字段的值,提升开发效率,代码也会显得特别优雅。

1.在属性上添加注解@TableField(fill = FieldFill.INSERT)

2.创建实现类并且实现MetaObjectHandler,实现两个方法,一个是在MP进行添加的时候执行,一个是在MP进行修改的时候执行,类交给Spring管理

MP的乐观锁解决并发问题

1.在实体类操作版本号的属性上添加@Version注解,2.配置乐观锁插件(交给Bean管理)

使用 @Mapper,最终 Mybatis 会有一个拦截器,会自动的把 @Mapper 注解的接口生成动态代理类,可以在 MapperRegistry 类源代码里查看。

@Mapper 注解针对的是一个一个的类,相当于是一个一个 Mapper.xml 文件。而一个接口一个接口的使用 @Mapper太麻烦,于是 @MapperScan 就应用而生。@MapperScan 配置一个或多个包路径,自动的扫描这些包路径下的类,自动的为它们生成代理类

13.

Node.js:

是基于 Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行时环境,

JavaScript 原来是只能在浏览器中运行的,node.js把它扩展成为可以在计算机上作为独立的程序运行

NPM是node.js包管理工具,全球最大的模块生态系统,相当于前端的Maven

里面的BBF组件对后端发起请求,对收到的数据做整合、封装,把数据传给前端页面,显示数据

14.

jvm在执行某个类,jvm会先加载class文件,而在class文件中除了有类的魔术,版本号,字段,方法和接口等秒速信息,还有一项就是常量池,用来存放编译期间生成的各种字面量和符号引用。像是字面量包含字符串,基本final类型修饰常量,符号引用等等。加载到内存后,jvm就会像class文件常量池中内容存放到运行时常量池中,解析阶段就会将符号引用变为直接引用,对象的索引值。就如刚才所说的静态变量加载阶段放到class文件常量池,在jvm加载万类以后,jvm会将这个变量或者常量放到运行时常量池,解析阶段指定对象索引值或者赋值。7以前常量池部分在方法区好像,后来放入堆中。
 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值