首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

聊聊java8中的@sun.misc.Contended与伪共享

在前面学习ConcurrentHashMap的size方法的过程中,对于CounterCell这个类,有个特殊的注解 @sun.misc.Contended。...如上图所示,我们笔记本使用的I7CPU的三级缓存,L1为256k,L2为1M,L3为8M。 当CPU在执行计算的时候,先去L1查找数据,然后再去L2、L3,如果都没有数据则需要到主存中去加载。...对于java类而言,一个javalong的对象长度为8字节,因此一个缓存行就是8个long的长度。...在java7中我们只能通过内存填充来解决这个问题,但是在java8中,提供了@sun.misc.Contended注解,替换了内存填充的工作。这就是@sun.misc.Contended注解的作用。...以及@sun.misc.Contended注解的作用和使用方法。 这也是ConcurrentHashMap中为了性能提升所采取的一个优化措施。

96921

java包分类包括java.*,sun.*

最近在学习Class加载的过程,无意中看到ClassLoader中有sun开头的类,甚是奇怪,随知孤陋寡闻了,不由感叹到java果然博大精深,在下拜服。...特此记录一番,以方便同辈人士观之 1. java.* JavaSE的标准库,是java标准的一部分,是对外承诺的java开发接口,通常要保持向后兼容,一般不会轻易修改。...此上两者都属于java标准库,公有的API,遵循java平台规范, 3. com.sun.* 是sun的hotspot虚拟机中java.* 和javax.*的实现类。...4. org.* 是由企业或者组织提供的java类库,大部分不是sun公司提供的,同com.sun.*,不具备向后兼容性,会根据需要随时增减。...*包: 1、不是API公开接口的一部分,调用sun包的程序并不能确保工作在所有Java平台上,不同的操作系统中的实现可能不相同。 2、不同的jdk版本sun包中的类也可能不定期的变化,因此sun.

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢?...在JDK7的时候,OpenJDK已经作为JDK7的主干开发,SUN JDK7是在OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。...关于JDK和OpenJDK的区别,可以归纳为以下几点: 1.授权协议的不同: OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。...3.部分源代码用开源代码替换: 由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。...不能使用Java商标:这个很容易理解,在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK,但是如果是使用Icedtea补丁的OpenJDK,显示的是java

70910

Sun Cluster工作原理介绍(转)

Sun Cluster工作原理介绍 本章的结构安排是以介绍Sun Cluster中重要的概念为主线。相关的工作原理分布在各个概念的介绍之中。     quorum的概念在分布式系统中经常被用到。...Sun Cluster需要在一个物理设备的帮助下来解决CMM quorum的问题,这个物理设备就是quorum device。    ...在Sun Cluster中,这组资源包括一组网络主机名和与之相关的IP地址,加上一个或多个磁盘组。 在Sun Cluster中,一个IP地址被分配给一个逻辑机,并临时与服务器应用运行的主机捆绑。...Data Service重点突出提供一种数据“服务”,而且在Sun当中,它多次提到Data Service必须位于共享磁盘中,目的是为了HA。...公网管理器(PNM)软件(处于Sun Cluster框架软件中)允许网卡们可以被组成不同的组,一旦组中一个网卡失败了,组中的其他网卡可以接替网络所需的服务。

80930

Java漫谈8

字符串,在Java中一个最接近与8大数据类型的存在。甚至于由于它太好用了,以至于在编写代码的时候都快忘了有个叫char的基本数据类型了。...我记得,当年刚能独立写一些小型代码的时候,被老师问到8大基本的数据类型有哪些,便脱口而出了String,int, boolean……(当然这个回到是错误的) 为什么会出现这种情况呢,因为String有一个非常特殊的功能...相较于数组,字符串更倾向于显示内容,而且纵观Java的API,String类是没有属性的,像得到它的hashcod,length这些结果都是用方法去得到的。...而在Java中,调用方法时就会有有括号出现,于是就出现了字符串得到长度的大小时用.length(),而数组的长度是用length。...由于开发的时候对字符串的需求远胜于单个字符,故Java在设计String的时候,让它有了不用new,就能直接赋值的方式。

680100

Java 8教程

Java 8 - 简介 Java 8于2014年初发布。在java 8中,大多数关于功能的是lambda表达式。它还有许多其他重要功能,如默认方法,Streams API和新的日期/时间API。...8函数式接口教程 默认方法 Java 8允许您在接口中添加非抽象方法。...8日期和时间API更改 Java 8 Lambda表达式教程 一个非常全新而令人兴奋的功能,java 8搭配它,是Lambda表达式。...Java 8方法引用与示例 在Java 8中,您可以使用class::methodName类型语法引用类或对象的方法。让我们在java 8中了解不同类型的可用方法引用。...java 8中的默认方法是什么? 默认方法使您能够向库的接口添加新功能,并确保与旧版本的这些接口编写的代码的二进制兼容性。 顾名思义,java 8中的默认方法是默认的。

1.7K42
领券