自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 java虚拟机JVM和jmm内存模型

学Java的朋友, 相信都听过一句话:java语言是跨平台的。那java是怎么跨平台的呢, 靠的就是JVM(Java Virtual Machine)java虚拟机。java编译以后会生成class字节码文件, 然后字节码文件运行在JVM上, 然后JVM就把class字节码文件转成机器指令, 可以在不同的平台上运行了。这里要注意的是, 跨平台的是java语言, 而不是JVM,不同平台上JVM的...

2019-06-24 19:13:30 224

转载 java虚拟机JVM--java虚拟机的内存管理(新生代、老年代)

前言在上一篇博客中,还遗留了一个问题:JVM的内存如何分配最高效?换一种说法就是:JVM的内存是如何的分配以及回收的?通过前面两篇博客的铺垫:java虚拟机JVM–java虚拟机的结构, java虚拟机JVM–java虚拟机垃圾的回收机制详解, 本篇将从JVM的内存如何分配的以及内存是如何回收的 角度来介绍java虚拟机的内存管理,来回答这一个遗留下的的问题。再贴一下JVM内存结构图:...

2019-06-24 16:04:38 206

转载 互斥锁 自旋锁 自适应的自旋锁

线程安全与锁的优化互斥锁:挂起线程和恢复线程的操作都需要转入内核态中完成 .从 实现原理上来讲,Mutex属于sleep-waiting类型的锁。例如在一个双核的机器上有两个线程(线程A和线程B),它们分别运行在Core0和 Core1上。假设线程A想要通过pthread_mutex_lock操作去得到一个临界区的锁,而此时这个锁正被线程B所持有,那么线程A就会被阻塞 (blocking),Co...

2019-06-13 15:37:21 382

转载 单例设计模式详解

为什么要有单例的类呢?有些对象的创建消耗时间和内存是非常大的,恰恰好这些对象在我们的应用中只需要使用 1 个,如果不能得到控制,会造成资源的浪费。说明:就向我们的办公室、家里那些很贵的电器,比如电冰箱、空调、打印机、热水器这一类电器,一般情况下,在一个小范围内我们只用使用 1 个。比如我们办公室吧, 1 台打印机就够我们几个人用了,没有必要买 2 台打印机。类似地,Java 中有这样的一些...

2019-06-12 15:58:56 195

转载 使用移位运算符做乘除法运算

>>(向右位移)针对二进制,转换成二进制后向右移动n位一个整数每次执行移位运算中的左运算n次,相当于这个整数乘以2的n次方;一个整数每次执行移位运算中的右运算n次,相当于这个整数除以2的n次方;不过这种方式只能用于乘以除以2的n次方,但是他的效率比乘法运算要高;坐乘右除public class Main { public static void main(.........

2019-06-04 11:38:58 4012

转载 ArrayList循环遍历并删除元素的常见陷阱

在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,首先请看下面的例子:public class DuplicateAndOrderTest{ public static void main(String[] args){ ArrayList<String>list=new ArrayList<>(); ...

2019-06-03 19:26:17 199

转载 ArrayList.add(index, element)失败,都是size的误解

在使用ArrayList时遇到一个很愚蠢的问题,想在大小为10的ArrayList的第5个位置插入10,结果抛异常。代码示例如下ArrayList<Integer> arr=new ArrayList<Integer>(10);arr.add(5, 10);异常为Exception in thread "main" java.lang.IndexOu...

2019-06-03 15:12:13 955

原创 Arrays.copyOf() 方法理解

最近看线性表、栈、队列数据结构实现源码时,经常看到 Arrays.copy()、System.arraycopy() 方法。在JDK 6中,Arrays 类别新增了copyOf()方法. Array.copyOf() 用于复制指定的数组内容以达到扩容的目的,该方法对不同的基本数据类型都有对应的重载方法,详见 java api: public static <T> T[]...

2019-06-02 22:44:30 28883

转载 Redis中位图Bitmaps的使用(签到功能的实现)

Bitmaps并不属于Redis中数据结构的一种,它其实是使用了字符串类型,是set、get等一系列字符串操作的一种扩展,与其不同的是,它提供的是位级别的操作,从这个角度看,我们也可以把它当成是一种位数组、位向量结构。当我们需要存取一些boolean类型的信息时,Bitmap是一个非常不错的选择,在节省内存的同时也拥有很好的存取速度(getbit/setbit操作时间复杂度为O(1))。假设现在...

2019-06-02 16:57:08 2637

SpringBoot2.0不容错过的新特性 WebFlux响应式编程.txt

SpringMVC是同步阻塞的IO模型,资源浪费相对来说比较严重,当我们在处理一个比较耗时的任务时,例如:上传一个比较大的文件,首先,服务器的线程一直在等待接收文件,在这期间它就像个傻子一样等在那儿(放学别走),什么都干不了,好不容易等到文件来了并且接收完毕,我们又要将文件写入磁盘,在这写入的过程中,这根线程又再次懵bi了,又要等到文件写完才能去干其

2019-08-15

Java并发编程与高并发解决方案.txt

互联网高并发必会技能,不会高并发的java开发不是合格的程序员!!!

2019-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除