java基础
文章平均质量分 76
w4xj
业精于勤荒于嬉
展开
-
jdk1.7及之前的HashMap
注:这里的HashMap中的静态内部类Entry是jdk1.7及之前版本,在jdk1.8及以后为Node类,以下主要讨论下jdk1.7及以前的HashMap 1.HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2.HashMap的数据结构在J...原创 2018-12-07 23:20:29 · 520 阅读 · 0 评论 -
JVM及GC
参考:https://www.cnblogs.com/huajiezh/p/5769255.htmlhttp://www.cnblogs.com/shengyang17/p/10765888.htmlhttps://www.cnblogs.com/princessd8251/articles/3914434.html推荐:周志明-深入理解Java虚拟机 JVM高级特性与最佳实践...原创 2019-05-30 19:48:31 · 1046 阅读 · 0 评论 -
Java线程池
1.获得线程的方法[1].extendsThread(不推荐用)[2].implementsRunnable/*** 实现Runnable*/class RunnableThrad implements Runnable{@Overridepublic void run() {}}[3].Callable①.代码...原创 2019-05-16 07:33:08 · 197 阅读 · 0 评论 -
Java阻塞队列
参考:http://ifeve.com/blocking-queues/https://blog.csdn.net/bohu83/article/details/807848911.阻塞队列[1].当阻塞队列是空时,从队列中获取元素的操作将会被阻塞,直到其他线程往里面插入新的元素[2].当阻塞队列是满时,往队列里添加元素的操作将会被阻塞,直到其他线程从队列里移除一个或多个或者完...原创 2019-05-16 07:26:52 · 395 阅读 · 0 评论 -
CountDownLatch、CyclicBarrier、Semaphore
参考:http://www.importnew.com/15731.html1.CountDownLatch[1].让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒[2].CountDownLatch主要有2个方法countDown():计数器减一await():到此处线程阻塞,当计数器变成0后,被唤醒[3].代码示例package com.w4xj.inte...原创 2019-05-07 22:59:02 · 108 阅读 · 0 评论 -
Java锁
参考:http://www.cnblogs.com/xingzc/p/5750152.htmlhttp://www.cnblogs.com/tison/p/8283233.html1.公平锁与非公平锁[1].公平锁是指多个线程按照申请锁的顺序来获取锁,类似排队[2].非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获得锁,在高...原创 2019-05-07 21:21:47 · 140 阅读 · 0 评论 -
Java线程不安全集合类解决办法以及JDK1.7与1.8ConcurrentHashMap之间的区别
参考:https://www.cnblogs.com/chengxiao/p/6842045.htmlhttps://blog.csdn.net/u010723709/article/details/48007881https://blog.csdn.net/bill_xiang_/article/details/81122044以前文章传送门:jdk1.7及之前的HashM...原创 2019-05-09 21:43:15 · 457 阅读 · 0 评论 -
CAS以及ABA问题
参考:https://www.jianshu.com/p/fb6e91b013cchttps://blog.csdn.net/iteye_4653/article/details/826551711.CAS是什么[1].在AtomicInteger中的compareAndSet方法是这么定义的,即CAS就是Compare-And-Swap(比较并交换)的缩写,另外CAS还有Cen...原创 2019-05-04 12:58:22 · 401 阅读 · 1 评论 -
Volatile及JMM
参考:https://blog.csdn.net/suyimin2010/article/details/80722262https://www.cnblogs.com/yuluoxingkong/p/9236077.htmlhttps://blog.csdn.net/sdr_zd/article/details/81323519https://www.jianshu.com/p/...原创 2019-05-04 12:55:00 · 364 阅读 · 0 评论 -
java打包压缩下载
1.代码package com.w4xj.newStart.io.download;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOExce...原创 2019-03-17 12:04:28 · 94 阅读 · 0 评论 -
jdk7和jdk8HashMap主要的区别
1.在上篇HashMap博客中,已经提到jdk7使用的是数组+链表来实现,而jdk8使用数组+链表+红黑树实现,那为什么要引入红黑树呢,原因就是哪怕将hash的碰撞降到最低,也不能避免链表会越来越长。[1].链表属于插入快,遍历慢的数据结构[2].完全二叉树插入慢,遍历快[3].红黑树插入和查询都较快[4].jdk7中的put方法public V put(K key, V v...原创 2019-02-05 18:55:04 · 3707 阅读 · 4 评论 -
java的值传递机制
1.形参与实参[1].形参:方法声明时,方法小括号内的参数[2].实参:调用方法时,实际传入的参数的值2.规则:java中的参数传递机制:值传递机制[1].形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量[2].形参是引用数据类型的:将实参的引用类型变量的值(对应的堆空间的对象实体的首地址值)传递给形参的引用类型变量。首先看一下不调用方法的情况,变量的值是怎么...原创 2018-12-09 11:23:14 · 587 阅读 · 1 评论 -
java8常用的一些新特性
概要1.速度更快[1].垃圾回收机制优化,详见G1回收器详见https://blog.csdn.net/sltylzx/article/details/90704205[2].底层数据结构算法优化,如HashMap详见HashMap7和8的对比;详见https://blog.csdn.net/sltylzx/article/details/86766164https://blog...原创 2019-08-31 17:26:06 · 229 阅读 · 0 评论