自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 java volatile不能保证原子性

Java中long和double赋值不是原子操作,因为先写32位,再写后32位,分两步操作,这样就线程不安全了。如果改成下面的就线程安全了private volatile long number = 8;那么,为什么是这样?volatile关键字难道可以保证原子性?java程序员很熟悉的一句话:volatile仅仅用来保证该变量对所有线程的可见性,但不保证原子性。但是我们这里的例子,...

2018-09-11 22:23:25 293

原创 红黑树1

1.R-B Tree简介红黑树又称“R-B Tree”,他是一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特点:1.每个节点或者是黑色,或者是红色。2.跟节点是黑色。3.每个叶子节点(NIL)是黑色。[这里的叶子节点是指为空(NIL或者NULL)的叶子节点]4.如果一个节点是红色的,则它的子节点必须是黑色的。...

2018-09-11 22:15:19 108

原创 JVM(2)类加载机制

类加载机制分为五个部分:加载、验证、准备、解析、初始化,下面我们来看这五个过程加载加载是类加载过程中的一个阶段,将class文件加载在内存中,并将静态数据结构(数据存在于class文件的结构)转化成方法区中运行时的数据结构,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意,这里不一定要从一个Class文件获取,这里既可以从...

2018-08-27 14:37:44 163

原创 JVM(1)

JVM被分为三个主要的子系统:类加载器子系统 运行时数据区 执行引擎类加载子系统Java的动态类加载功能是由类加载子系统处理。当它在运行时(不是编译时)首先引用一个类时,它加载、连接并初始化该类文件。1.1 加载类有此组件加载。启动类加载器(BootStrap class Loader)、扩展类加载器(Extension class Loader)和引用程序类加载器(Appl...

2018-08-21 14:25:52 188

原创 Java NIO

Java NIO也叫New IO,是从java1.4版本开始引入的一个新的IO API,可以代替标准的java IO API。Java NIO提供了与标准IO不同的IO工作方式:Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作的,数据总是从通道读取到缓冲区,或者从缓冲区写入...

2018-08-14 14:55:26 116

原创 数据流和字节数组流

网络传输模型在一个网络传输模型中,假如A电脑想把一个double类型的数值12.34传给另一个网络的电脑B,要如何实现?1. 转为字节数组无论网络上两个终端之间要传输什么类型的数据,实际在网线上传输都是二进制数据(bit)。所以A电脑并不能字节把这个double类型的数据传送出去,而是必须将这个值12.34转换为字节类型(16个bit).将一个double类型转换为字节类型并不...

2018-08-13 23:08:23 3474

原创 JAVA IO流(一)

相信很多刚毕业或者工作一两年的程序员在工作中都很少用到IO流,甚至跟我一样没有用过,但是面试中又经常问到,怎么办呢?下面是乔最近的一些学习心得,希望和大家一起探讨,有错的地方希望大家能给予指导,嘻嘻谢谢啦!首先是流的概念:Java中对文件的操作是以流的形式进行的。什么是流?流是Java内存中的一组有序数据序列,Java将数据从源(包括文件呀、内存或者是键盘输入都可以)读到内存中,就形成了流,然...

2018-08-13 14:47:49 328

空空如也

空空如也

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

TA关注的人

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