7 returnTrue999

尚未进行身份认证

涉及领域:java、.net、python、flutter、tensorflow、linux、docker、数据库

等级
TA的排名 8w+

你可能不知道的Java小细节

1.下面代码:Stringp="abc";Stringq="cde";if(p==(p=q)){System.out.println(true);}System.out.println(p);打印结果:ced如果改为:St...

2019-08-24 18:49:26

Java使用label+continue+break随意跳出任意层循环

System.out.println("start");label:while(true){System.out.println(1);label1:while(true){System.out.println(2);...

2019-08-24 16:38:21

Winform像Wpf MVVM那样进行界面数据绑定

Winform的界面数据绑定需要手动绑定,比如下面的代码:Modelmodel;publicForm1(){InitializeComponent();model=newModel();label1.DataBindings.Add("Text",mo...

2019-08-21 11:09:59

Docker启动常用容器(redis、mysql、rabbitMq等等)

1.redis:1)dockerpullredis2)dockerrun--restart=always--privileged=true-p6379:6379-v/home/data:/data--nameredis857c4ab5f029-d857c4ab5f029为拉取下来的镜像id3)通过命令:dockerexec-itredisredis...

2019-08-14 17:24:29

Flutter学习笔记

1.Dart之闭包的使用之前写Java和C#的时候,如果想让多个调用的方法,共享一个变量,那这个变量的作用域起码应该是不能太小的,或者通过传递引用实现,在Dart里面可以尝试使用闭包的方案,代码如下:fn(){inti=10;return(){i++;print(i);};};varf=fn();...

2019-08-07 17:48:18

Java实现不加锁的线程安全的单例模式

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18publicclassSingleton{publicSingleton(){System.out.println("初始化");}privatestaticclassInner{privates...

2019-07-21 17:06:23

Java中ThreadLocal的使用

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18写两个个测试类:publicclassEntity{publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=...

2019-07-21 15:29:15

Java中Condition的使用

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18之前的一篇博客(https://blog.csdn.net/dap769815768/article/details/96712257)讲了wait、notify\notifyAll的使用,实际上目前我们比较推荐的方式是用Condition的await、signal\signalAll来实现类似的功...

2019-07-21 14:40:24

Java中wait、notify\notifyAll的使用

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18这三个关键子一般配合synchronized,不然会报java.lang.IllegalMonitorStateException异常。看下面的代码:publicclassTest{publicsynchronizedvoidstart(){try{...

2019-07-21 14:27:10

CAS算法的一些局限

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18前面我分析了ConcurrentHashMap源码,它的线程安全策略是volatile+CAS+synchronized+sizeCtl。这里简单说下CAS一般会有哪些问题:1)ABA问题,所谓ABA就是将一个变量改为A,再改为B,再改为A,这个时候可能会认为这个变量没发生改变。这个问题可以通过...

2019-07-21 01:08:13

一个Java8中ConcurrentHashMap的CAS锁引发的问题

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18使用java8运行如下代码:ConcurrentHashMap<String,Integer>map=newConcurrentHashMap<>(16);map.computeIfAbsent("AaAa",key->map.computeIfAbsen...

2019-07-20 23:04:45

Java8中ConcurrentHashMap的源码分析

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18ConcurrentHashMap是java并发库里面的一个集合类,是一个线程安全的HashMap,它继承ConcurrentMap<K,V>接口。它的基本操作和HashMap几乎一样,差别就在于它实现了线程安全,它实现线程安全在Java8中使用的策略是CAS+volatile+sync...

2019-07-20 23:01:11

java8中的HashMap源码分析(四):总结

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18上一篇(https://blog.csdn.net/dap769815768/article/details/96584394)我们分析了HashMap的get方法,下面我针对目前的源码分析对HashMap做下总结:1.往链表里面追加数据是从尾部加入,即p.next=newNode(h...

2019-07-20 15:27:32

Hashtable、LinkedHashMap、HashSet和HashMap的比较

Java架构师交流群:793825326java版本:jdk1.8IDE:idea181)Hashtable实现Map<K,V>接口,它在put和get方法里面加了synchronized,因此是线程安全的,它不具备红黑树特性,是单纯的链表加数组。并且它是在链表的头部插入数据(区别于hashmap的尾部)。同时它不允许key和value为null。至于原因,和Concur...

2019-07-20 14:31:36

java8中的HashMap源码分析(三):get方法

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18上一篇(https://blog.csdn.net/dap769815768/article/details/96484391)我们分析了put方法的源码,这篇我们分析一下get方法的源码。get方法的源码比较简单,就是根据key找到对应的node,获取到它的value,返回。下面一步步跟踪代码...

2019-07-20 13:55:10

java8中的HashMap源码分析(二):put方法

Java架构师交流群:793825326java版本:jdk1.8IDE:idea18在第一篇文章中我们介绍了HashMap的四个构造方法(文章地址https://blog.csdn.net/dap769815768/article/details/89189496)。这个四个构造方法的操作都是为了确定两个值:this.loadFactor=loadFactor;th...

2019-07-20 11:58:05

java中String、StringBuilder、StringBuffer

StringBuilder和StringBuffer都是用于字符串操作的,StringBuffer是线程安全的,其线程安全的实现方案是加synchronized,简单粗暴。二者的使用场景都是大量的字符串拼接操作才会用到,都可以定义初始大小,大概就是把字符串转成Char数组,而这个初始大小,就是这个数组的大小。这样不会导致频繁给数组扩容。...

2019-07-11 17:12:36

Java中信号量Semaphore的使用以及和线程池的区别

Java架构师交流群:793825326java版本:jdk1.8IDE:Idea2019Semaphore属于Java并发库里面的类,它在我看来算是线程池的一种吧,当然它和真正的线程池还是有些差别的。它的原理是管理一定数量的许可证,当线程要运行的时候,首先从它这里获取许可证(acquire),如果它的许可证发放完了,那么这个线程就要等待,直到其他的线程释放了许可证(release)。...

2019-07-04 16:53:12

Java等待所有的线程运行结束解决方案总结(8种)

Java架构师交流群:793825326java版本:jdk1.8IDE:Idea2019实际开发中,经常会碰到这种问题,某个线程需要等待所有的线程执行结束了,才可以继续执行。要实现这个效果,Java中有很多方案,下面我列举一些我所知道的方案:方案一:join。代码如下:Threadthread1=newThread(newRunnable(){...

2019-07-04 13:05:24

AspectJ的使用和原理分析

Java架构师交流群:793825326java版本:jdk1.8IDE:Idea2019要想完整的体验AspectJ的功能,要在你的idea里面安装一下它的编译器。到官网下载安装包:https://www.eclipse.org/aspectj/downloads.php下载下来之后直接双击安装就可以了。安装好之后,打开idea的settings:编译器选择Ajc,地...

2019-06-28 17:21:53

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。