- 博客(7)
- 收藏
- 关注
原创 <读书笔记--并发>二、java并发机制
一、volatilevolatile是轻量级的synchronized,在多处理器开发中保证了共享变量的“可见性”(一个线程修改共享变量时,另一个线程能读到这个修改值),它比synchronized执行成本低,因为不会产生线程上下文的切换和调度 1、定义:如果一个变量被声明为volatile,java线程内存模型确保所有线程看到的这个变量的值是一致的(为了提高处理速度,处理器不直接和内存进行通信,
2017-04-05 14:45:31 253 1
原创 <读书笔记--并发>一、并发编程的挑战
1、上下文切换 并非只有多核处理器才能进行并发执行代码,单核处理器也可以,CPU会给每个线程分配时间片,根据时间片,CPU不断地切换线程执行代码,由于时间片非常短,所以感觉像是同时在执行一样,那么在切换到下一线程时,肯定需要保存当前线程的状态,才能保证切换回来时可以继续执行,所以任务从保存到再次加载的过程就是一次上下文切换,保存状态是需要时间的,所以上下文切换回影响多线程的执行速度,因此,多线程
2017-04-05 14:42:57 245
原创 Java源码阅读-ArrayList
ArrayList-源码阅读ArrayList是由数组支持实现的,内部封装了一个数组,下面介绍一下ArrayList内部的一些属性(其中包含三个数组,若暂时不理解可以继续向下看构造函数的实现,会有助于理解这三个数组的用途)
2017-02-23 21:13:20 171
原创 java源码阅读-集合接口
Collection接口JAVA SDK不提供任何对Collection接口的直接实现,只提供对一些子接口的实现,子接口的实现必须有两个构造函数,一个是无参的构造函数,用于创建空集合,另一个是以Collection为参数的构造函数,用于复制集合类int size();---返回集合中的元素个数,如果个数大于'Integer.MAX_VALUE',则返回'Integer.MAX_VALU
2017-02-22 20:14:44 215
原创 java-数组
首先,声明一个数组,一共有以下三种方式:1、String[] aArray = new String[5]; 2、String[] bArray = {"a","b","c", "d", "e"}; 3、String[] cArray = new String[]{"a","b","c","d","e"}; 这里的2和3其实是一样的,2只是一个语法糖而已,所谓语法糖就是指编程语
2017-02-21 22:26:17 210
原创 java集合类
java中的数组存储效率高,访问速度快,但使用起来并不是很灵活。比如一下两种情况: 1、当一组数据需要不同数据类型的时候; 2、当一组数据长度不固定的时候,即使是有动态数组,依然需要将长度固定在某一范围内; java提供了一种解决方案,就是容器,也就是我们常说的集合类。
2017-02-21 16:44:23 203
转载 图像文件读写时报错、“com.sun.image.codec.jpeg不存在”
JPEGImageEncoder类是SUN公司私有类FileOutputStream out = new FileOutputStream(targetImg);JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);encoder.encode(image);out.close();替换成/*FileOutputS
2016-02-25 15:16:07 416
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人