Java基础
liu254346742
这个作者很懒,什么都没留下…
展开
-
HashMap
数组和链表,无序,默认大小为16,负载因子0.75,翻倍扩容; JDK8中引入了红黑树。而当链表长度太长(默认超过8)时,链表就转换为红黑树,利用红黑树快速增删改查的特点提高HashMap的性能,其中会用到红黑树的插入、删除、查找等算法 LinkedHashMap 默认按插入顺序访问,new LinkedHashMap<String, String>(16,0.75f,true);...原创 2018-07-17 15:56:11 · 156 阅读 · 0 评论 -
volatile
volatile真正解决的问题是 JVM 在server模式下, 线程优先取用自己的线程私有stack中的变量值, 而不是公共堆中的值, 造成值老旧的问题;volatile强制要求了所有线程在使用变量的时候要去公共内存堆中获取值, 不可以偷懒使用自己的 volatile不会像锁一样造成阻塞,要求对变量的写操作不依赖于当前值,适用场景:状态等 volatile绝对不保证原子性, 原子性只能...原创 2018-07-13 15:23:20 · 119 阅读 · 0 评论 -
static
被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能参考:https://www.cnblogs.com/dolphin0520/p/3799052.html...转载 2018-07-13 15:36:22 · 100 阅读 · 0 评论 -
switch
java1.7中支持switch比较字符串从反编译后的字节码文件中可以看出 原来用在 switch 语句中的字符串被替换成了对应的哈希值,而 case 子句的值也被换成了原来字符串常量的哈希值。经过这样的转换,Java 虚拟机所看到的仍然是与整数类型兼容的类型。在 case 子句中仍然保留 equals 方法来进行字符串比较,因为哈希函数在映射的时候可能存在冲突,多个字符串的哈希值可能是一样的。进...原创 2018-07-13 16:32:42 · 447 阅读 · 0 评论 -
Java关键字
Java关键字转载 2018-07-13 16:33:56 · 80 阅读 · 0 评论 -
native
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1、在Java中声明native()方法,然后编译 2、用javah产生一个.h文件; 3、写一个.cpp文件实现...原创 2018-07-13 17:01:30 · 162 阅读 · 0 评论 -
transient
transient变量的值,不会被serialization序列化,反序列化后为null原创 2018-07-13 18:12:32 · 763 阅读 · 0 评论 -
ReentrantLock
默认非公平锁 ReentrantLock lock = new ReentrantLock(true);公平锁不会产生饥饿锁,只要排队等待,最终能等待到获取锁的机会原创 2018-07-25 16:21:46 · 108 阅读 · 0 评论