说明继承是Java语言中四大特性之一,其余三大特性包括封装、抽象和多态。  在面向对象程序设计中,可以从已有的类派生出新类。这称作继承。在java中使用extends关键字来表示继承关系。举个简单的例子:class Person {
    int age;
    String  name;
    void eat(){
        System.out.println("吃饭");
             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-13 23:24:35
                            
                                19阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            3.  如何产生inner class对象的总结3.1 non-static内隐类1)        在enclosing class的non-static函数中可以直接通过new来产生2)        在enclosing class的stati            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-21 05:29:33
                            
                                21阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            内部类和C++中的嵌套类有点类似,不过Java中的内部类很有价值. 需要内部类的几大理由: 1.内部类可以隐藏你不想让别人看到的操作,此话怎讲呢,看看下面的例子(程序是Java编程思想里面的):   public interface Contents {
    int value();
} 
public interface Destination {
    String readL            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-14 22:20:26
                            
                                15阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类继承中最常使用的两个关键字是extends和implements。这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系。通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。所有Java的类均是由java.lang.Object类继承而来的,所以Object是所有类的祖先类,而除了Object外,所有类            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-31 12:28:04
                            
                                63阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            @sun.misc.Contended 的value,含义是一个组 猜测 tlr 意思是:ThreadLocalRandom。 出处:https://stackoverflow.com/questions/34529036/what is sun misc contended annotations            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-04-23 18:12:00
                            
                                86阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            说到伪共享,就要说CPU缓存,我们程序执行时候信息会被保存到CPU缓存中而这些缓存中的数据可能被多线程访问,假如一个线程还没处理完            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-07-24 00:38:45
                            
                                116阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Java8中@Contended和伪共享Java8引入了@Contented这个新的注解来减少伪共享(False Sharing)的发生。本文介绍了@Contented注解并解释了为什么False Sharing是如何影响性能的。缓存行CPU读取内存数据时并非一次只读一个字节,而是会读一段64字节长度的连续的内存            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-12-22 01:09:57
                            
                                123阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Disruptor原理分析Disruptor关联好任务处理事件后,就调用了disruptor.start()方法,可以看出在调用了start()方法后,消费者线程就已经开启。启动Disruptorstart()开启Disruptor,运行事件处理器。javapublicRingBuffer<Tstart(){checkOnlyStartedOnce();//在前面handleEventsWith(            
                
                    
                        
                                                            
                                                                        
                                                                推荐
                                                                                        原创
                                                                                    
                            2021-10-12 12:34:31
                            
                                3542阅读
                            
                                                        
                                点赞
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            文章目录简介false-sharing的由来怎么解决?使用JOL分析Contended在JDK9中的问题padded和unpadded性能对比Contended在JDK中的使用总结简介现代CPU为了提升性能都会有自己的缓存结构,而多核CPU为了同时正常工作,引入了MESI,作为CPU缓存之间同步的协议            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-04-20 12:08:30
                            
                                536阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            @sun.misc.Contended 介绍
@sun.misc.Contended 是 Java 8 新增的一个注解,对某字段加上该注解则表示该字段会单独占用一个缓存行(Cache Line)。
这里的缓存行是指 CPU 缓存(L1、L2、L3)的存储单元,常见的缓存行大小为 64 字节。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-19 11:31:30
                            
                                140阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、复习上次连载简单的介绍了其他函数的作用以及功能二、完整的LongAdder类源码package com.ruigege.AtomicOperationClass4;
import java.util.function.LongBinaryOperator;
import sun.misc.Unsafe;
@sun.misc.Contended public class LongAdderT            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-01-23 12:03:07
                            
                                203阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             	
	一、复习上次连载简单的介绍了其他函数的作用以及功能二、完整的LongAdder类源码package com.ruigege.AtomicOperationClass4;
import java.util.function.LongBinaryOperator;
import sun.misc.Unsafe;
@sun.misc.Contended public class LongAd            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-04-29 12:24:22
                            
                                125阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            原子累加器(JDK1.8):AtomicLong和AtomicDouble的升级类型,专门用于数据统计,性能更高。 
   DoubleAccumulatorDoubleAdderLongAccumulatorLongAdder伪共享问题 
   缓存行失效 / 伪共享@sun.misc.Contended注解Unsafe对象7.1 原子累加器(1)LongAdder,DoubleAdder作用:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-01 13:05:28
                            
                                38阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、复习上次连载简单的介绍了其他函数的作用以及功能二、完整的LongAdder类源码package com.ruigege.AtomicOperationClass4;
import java.util.function.LongBinaryOperator;
import sun.misc.Unsafe;
@sun.misc.Contended public class LongAdderT            
                
         
            
            
            
            一、CPU缓存友好编程1.1 缓存行对齐黑科技// 伪共享解决方案(JDK15+)
@Contended
class Counter {
    volatile long count1;
    volatile long count2; // 自动填充至不同缓存行
}
// 手动填充方案(兼容旧版本)
class PaddedCounter {
    volatile long count            
                
         
            
            
            
            目录1.CPU Cache2. Cache Line伪共享及解决方案2.1Cache Line伪共享分析2.2Cache Line伪共享处理方案2.2.1Padding 方式2.2.2Contended注解方式3.java中场景示例3.1JDK1.8 ConcurrentHashMap的处理3.2JDK1.8 Thread 的处理3.3 Java中对Cache line经典设计            
                
         
            
            
            
            # 实现Java对象头对齐填充区域作用教程
## 1. 整体流程
我们首先来看一下整个过程的流程,你可以按照下面的步骤来进行操作:
| 步骤 | 操作 |
| ------ | ------ |
| 1 | 创建一个Java类 |
| 2 | 在类中定义若干字段 |
| 3 | 使用`@sun.misc.Contended`注解进行对象头对齐填充 |
| 4 | 编译并运行程序 |
## 2            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-21 04:04:09
                            
                                50阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本文基于 OpenJDK 8 ~ 14 的版本JEP 142 内容用于将某个或者某些需要多线程读取和修改的 field 进行缓存行填充。同时由于 Java 8 之前对于缓存行填充的方式,比较繁琐且不够优雅,还有可能缓存行大小不一的问题,所以这个 JEP 中引入了 @Contended 注解。什么是缓存行填充以及 False SharingCPU 缓存结构:CPU 只能直接处理寄存器中的数据,从上面            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-18 22:29:25
                            
                                62阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录1 什么是伪共享1.1 从疑问说起 --- 难道JMM中不存在局部性原理???1.2 缓存行的概念1.3  伪共享(False Sharing)的概念 + 其可能引发的性能问题2 如何避免伪共享  --- 数据填充2.1 不使用数据填充时的效率验证2.2 手动进行数据填充的效率验证2.3 通过java8新特性@sun.misc.Contended注解进行数据填充的效率验证源码地址:ht...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-09 15:54:40
                            
                                375阅读