Java基础知识

spring容器的生命周期和初始化过程
https://www.cnblogs.com/zzq919/p/13139515.html

spring事务原理:
https://blog.csdn.net/feng8403000/article/details/114606868
1.spring事务本质是对数据库的事务的支持,没有数据库的事务,就不存在spring的事务
2.真正的数据库层的事务提交和回滚是通过binlog或者redo log实现的

spring循环依赖以及解决方案:
1.@lazy 延迟加载
2.三级缓存,减少构造器依赖,用setter方式进行属性注入
https://www.zhihu.com/question/438247718/answer/1730527725

spring IOC的父子容器
https://www.cnblogs.com/jhxxb/p/13598074.html

@Transactional
1.只能用在public方法上,其他的方法上是没有作用的。
2.回滚的时候,必须是定义的unchecked异常才能回滚,checked异常是不能回滚的。
3.事务超时的定义

字节码增强:
JDK动态代理和CGLib动态代理
JDK是必须有接口实现的类;CGLib实现的
https://zhuanlan.zhihu.com/p/81965927
https://www.cnblogs.com/msi-chen/p/10801816.html

string buffer 与string builder的区别
stirng buffer 线程安全synchronized,tostring从缓冲区来构建一个字符串
stirngbuilder tostring时每次复制一次字符串组,再构建一个字符串
为什么不用string而用上面两个:string不可变对象,每次改变相当于生成一个新的对象
stringBuilder性能高于stringbuffer
https://segmentfault.com/a/1190000017909550

String.valueOf和Integer.toString的区别
前者对null的处理为“null”,后者会抛出空指针异常

lsf4j与log4j,logback的区别
lsf4J是一个接口API支持多种日志系统
其他两个是具体的日志系统
案例:如果之前系统中是单独使用log4j做为日志输出的,这时再想使用slf4j做为日志输出时,如果系统中日志比较多,此时更改日志输出方法肯定是不太现实的,这个时候就可以使用log4j-over-slf4j.jar将使用log4j 日志框架输出的日志路由到slf4j上来统一采用slf4j来输出日志
private static final logger

java数据结构:
数组,栈,堆,队列,链表,二叉树,红黑树,哈希表,图
connection:
LIST:基础是数组
list纯数组,arrylist数组上的链表,vector链表形式数组(sychronized),适合查询
linklist非数组,链表形式data,nextnode;适合添加删除操作
SET:基础是hashmap
hashset
linkedHashset
sortedset-sortedmap实现,有序的set
map:
sortedmap-treemap
hashmap

RuntimeException和Exception区别
Runtime Exception:
在定义方法时不需要声明会抛出runtime exception;
在调用这个方法时不需要捕获这个runtime exception;
runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。
例如:nullpointexception,IndexOutOfBoundsException就属于runtime exception
Exception:
定义方法时必须声明所有可能会抛出的exception;
在调用这个方法时,必须捕获它的checked exception,
不然就得把它的exception传递下去;exception是从java.lang.Exception类衍生出来的。
例如:IOException,SQLException就属于Exception

敏捷开发中间件:
lombok - 對象不需要增加getting/setting代碼
swagger自动生成接口文档
JDK1.8增加了函数式的写法(Lambda 表达式)

Object的方法:
1.使用registerNatives()想JVM注册,然后才能使用native方法调用非Java方法;整体是C/C++编写
2.getclass,hashcode,equals,clone,tostring,wait,wait(long),waite(long,int),notify(),notifyall,finazile(对象在JVM中存在三个状态:可达,可恢复,不可达)

匿名内部类的用法:Java内部类与匿名内部类的区别
https://www.cnblogs.com/wuhenzhidu/p/anonymous.html
https://blog.csdn.net/u014745194/article/details/72638872
https://blog.csdn.net/lxf2769686661/article/details/110495098

cookie,session,token的区别
cookie只是客户端存储用户信息,用于辨别用户信息 ,session会话机制保存在server端,通过cookie传递,保持在单机,sessionID共享,保存用户信息或者购物车信息;token是用户校验,做单点登录使用
app对cookie支持不是很好,使用大部分用token;token与sessionID

Session与token的区别:
https://blog.csdn.net/love_onefly/article/details/80738888
session是通过cookie来传输的或者是URL重写来传输;服务器重启后,服务器端的session就是失效了
token是可以自定义,session是随机字符串,默认携带
https://www.cnblogs.com/belongs-to-qinghua/p/11353228.html

base64
Base 64能够将任何数据转换为易移植的字符串,避免了传输过程中失真问题
需要注意的是,Base 64不是一种加密方式,只是一种编码方式。很多时候,我们都将Base64编码作为数据加密后的传输 / 存储格式
DES加密过程:
对称密码体制,分组加解密算法,加解密同一个算法

通过openssl 生成私钥公钥
http://web.chacuo.net/netrsakeypair

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值