自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Java并发容器和框架(五)

ConcurrentHashMap的实现原理与使用为什么要使用ConcurrentHashMapHashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环获 取Entry。HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下Hash

2017-02-22 16:00:55 614

转载 (一)大型网站架构演化

成熟的系统架构是随着业务扩展而完善出来的,并非一蹴而就。不同业务特征的系统,会有各自的侧重。例如有的要解决海量的商品信息的搜索、下单,支付等,有的要解决海量用户的实时消息传输,有的要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。大型网站访问量和数据量二者缺一不可。大型网站,其实最核心的功能就是计算和存储。一般DB是用来存储的,Application Server完成了业务功能和逻辑

2017-02-20 14:38:06 372 1

转载 Java 位运算

简介位运算是二进制运算。Java中基本数据类型: 这里包括了float和double两个浮点型,不予考虑,因为位运算是针对整型的。进行位操作时,除long型外,其他类型会自动转成int型,转换之后,可接受操作数长度为32。byte和char进行移位运算时不会发生错误,并且均按照整型进行计算,当计算结果超出byte或是char所能表示的范围时则进行相应的转换(分别输出了结果-8和?)。Java位运算

2017-02-17 14:30:38 615

转载 Java中的锁(四)

Lock接口锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用时需

2017-02-15 16:23:29 517

转载 Java内部类

为什么要使用内部类为什么要使用内部类?在《Think in java》中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。其实使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,但是如果我们不需要解决多重继承问题,那么我们自然可以使用其他的编码方式,但是使用内部类还能够为我们带来如下特性

2017-02-14 18:02:39 467

转载 Java异常处理

Java异常介绍异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。Java异常类层次结构Java异常类层次结构图:在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。T

2017-02-14 14:02:56 277

转载 final关键字

final关键字可以用于修饰变量、方法、类。final关键字的解释

2017-02-13 17:33:25 218

转载 Java并发编程基础(三)

3.1 线程简介3.1.1 什么是线程现代操作系统在运行一个程序时,会为其创建一个进程。例如,启动一个Java程序,操作系统就会创建一个Java进程。现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线层都拥有自己的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉线程在同时

2017-02-10 15:34:43 329

转载 Java线程(十)

10.1 Java与线程10.1.1 线程的实现线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的最基本单位)。Java语言提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个java.lang.Thread类的实例就代表了一个线程。不过Thread类所有关键方法都被声明为Native。在Java API

2017-02-06 16:29:38 324

转载 Java并发机制的底层实现原理(二)

Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行。Java中所使用的并发机制依赖于JVM的实现和CPU的指令。2.1 volatile的应用1.volatile的定义与实现Java编程允许线程访问共享变量,为了确保共享变量能被准备和一致地更新,线程应该确保通过排他锁单独获得这个变量。如果一个字段被声明为volatile,

2017-02-06 11:13:34 1280

转载 并发编程的挑战(一)

1.1 上下文切换       即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给每个线程的时间,因为时间片非常短,说以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。       CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保

2017-02-06 10:34:25 483

转载 Java各种数据在内存中的存储(九)

Java的内存管理实际上就是变量和对象的管理,其中包括对象的分配和释放。基本数据类型Java的基本数据类型共有8种,即int, short, long, byte, float, double, boolean, char(注意,并没有string的基本类型)。 这种类型的定义是通过诸如int a = 3; long b = 255L;的形式来定义的,称为自动变量。 如int a = 3;这里的

2017-02-02 15:38:16 5606 3

空空如也

空空如也

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

TA关注的人

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