![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础知识
后端的基础知识
菜鸟园管理者
这个作者很懒,什么都没留下…
展开
-
java之对象的逃逸分析
前人栽树:传送门逃逸分析个人理解主要是为了优化gc的技术文章中还提到了锁消除,如果锁对象不发生逃逸,会自动消除synchronized块 public String concatString(String s1, String s2, String s3){ return s1 + s2 + s3; }大家都知道,编译器会对String的连接做自动优化。jdk5之前,会转化为StringBuffer对象的连续append()操作,jdk5及之后,会转化为StringBu原创 2020-06-15 20:13:48 · 367 阅读 · 0 评论 -
java之this引用逃逸
前人栽树传送门A传送门B文章A中,线程B执行时提到的空指针,我认为就是程序没执行new ThisEscape(),obj永远都是null,所以才会出现NPE异常。我们一般也不会犯这种毛病。线程A那个才是真正意想不到的,因为指令的重排序不归我管…这时候volatile了解一下主要原因this引用逃逸说到底就是其他线程引用了还没有构造完成的类对象,之后还要去访问人家的变量,之后就出现了不可思议的事情(手动狗头)。平时注意1.构造方法中尽量少去开启线程2.就算在构造方法中开启了线程,线程里也不要去原创 2020-06-15 19:55:22 · 423 阅读 · 0 评论 -
transient关键字
被修饰的变量不会被序列化好多博主有总结,我就不赘述了,大家也可以看下hashmap的序列化,很有意思传送门原创 2020-06-12 20:10:18 · 78 阅读 · 0 评论 -
java之ThreadLocal相关
ThreadLocal记录线程本地变量,生命周期与线程的生命周期相同set()方法 public void set(T value) { // 获取的当前线程 Thread t = Thread.currentThread(); // 获取当前线程的ThreadLocalMap ThreadLocalMap map = getMap(t); // 将当前threadLocal实例作为key,值作为val存入map原创 2020-06-12 18:29:17 · 124 阅读 · 0 评论 -
java的几种排序方式
java常用排序方式java中的排序就是通过实现Comparator接口完成的拿奥运会奖牌榜为例定义beanclass Country implements Comparable<Country>{ // 国家名字 private String name; // 金牌数 private Integer a; // 银牌数 private Integer b; // 铜牌数原创 2020-06-08 15:56:50 · 282 阅读 · 0 评论 -
java位操作符相关总结
位操作相关与(&)布尔短路与判断二进制位操作或(|)布尔短路或判断二进制位操作异或(^)二进制位操作与(&)参加运算的两个数据,按二进制位进行“与”运算。布尔短路与判断运算规则:true & true = true;true & false = false;只要有一个为false,结果就是falseboolean result01 = 1 != 1 & 1 == 1; // false, 即使1 != 1已经为false,还会去判断1 == 1的结果boo原创 2020-06-08 13:29:39 · 107 阅读 · 0 评论