4 公众号:JavaEdge

尚未进行身份认证

曾就职于百度,携程,华为的软件工程师

等级
TA的排名 2k+

命令太长懒得敲?快试试Git别名缩短你的痛苦!

有一个小技巧可以使你的 Git 体验更简单、容易、熟悉:别名。Git 并不会在你输入部分命令时自动推断出你想要的命令。 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名。 这里有一些例子你可以试试:git config --global alias.co checkout这意味着,当要输入 git commit 时,只需要输入 ...

2020-04-08 14:59:10

JavaSwing-ItemSelectable

包含一组可以选择零或更多项的对象的接口APIaddItemListener添加监听器以在用户更改项目状态时接收项目事件。 如果以编程方式设置项目状态时,不会发送项目事件。 如果l是null ,则不会引发异常并且不执行任何操作。removeItemListener...

2020-04-07 15:35:43

JavaSwing-ItemListener接口

用于接收项目事件的监听器界面。 对处理项目事件感兴趣的类将实现此接口。 然后使用该类创建的对象使用组件的addItemListener方法向该组件注册。 发生项目选择事件时,将调用监听器对象的itemStateChanged方法。处理ItemEvent的类应该实现此接口。该类的对象必须使用组件注册。可以使用addItemListener()方法注册该对象。发生操作事件时,将调用该对象的itemS...

2020-04-07 15:27:18

JavaSwing-AbstractButton详解

定义按钮和菜单项的常见行为。可以通过操作配置按钮,并在某种程度上控制按钮。 除了直接配置按钮外,将动作与按钮配合使用还有很多好处。警告:此类的序列化对象将与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,已将所有JavaBeans™的长期存储支持添加到java.beans包中API /** * 设...

2020-04-07 15:00:30

Java编程思想第五版(On Java8)读书笔记(一)-什么是对象

第一章 对象的概念“我们没有意识到惯用语言的结构有多大的力量。可以毫不夸张地说,它通过语义反应机制奴役我们。语言表现出来并在无意识中给我们留下深刻印象的结构会自动投射到我们周围的世界。” – Alfred Korzybski (1930)计算机革命的起源来自机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写...

2020-04-07 14:51:40

啃透JDK源码-JCheckBox详解

继承体系属性标识对flat属性的更改。flatJCheckBox是Swing中的复选框。复选框可以同时存在多个这样的控件,它们可以有多个处于被选中状态。对于每一个复选框而言,它只有选中和未选中两种状态。JCheckBox的常用方法如下图所示:构造方法JCheckBox()创建一个最初未选中的复选框按钮,没有文本,也没有图标。JCheckBox(Action a)...

2020-04-07 14:35:47

Java长度为0的阻塞对列-TransferQueue详解

Java7中加入了JSR 166y规范对集合类和并发类库的改进。其中的一项是增加了接口TransferQueue和其实现类LinkedTransferQueue。TransferQueue继承了BlockingQueue并扩展了一些新方法。BlockingQueue(和Queue)是Java 5中加入的接口,它是指这样的一个队列:当生产者向队列添加元素但队列已满时,生产者会被阻塞;当消费者从队...

2020-04-05 21:26:45

华为Java高级面试题:用两个线程,一个输出字母,一个输出数字,交替输出1A2B3C4D...26Z

HSDIS查看Java代码的汇编指令java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssemble使用 LockSupport.park()and unpark()

2020-04-05 20:58:25

Java大厂多线程面试题详解

1 大厂面试题请描述synchrnoized和reentrantlock的底层实现及重入的底层原理- 百度阿里请描述锁的四种状态和升级过程-百度阿里吊打Java面试官-Java锁升级详解CAS的ABA问题如何解决-百度请谈一下AQS,为什么AQS的底层 是CAS + volatile-百度请谈一下你对volatile的理解-美团阿里volatile的可见性和禁止指令重排序是如何实现...

2020-04-04 22:38:56

美团面试官问我-Java单例模式DCL双重检验锁为什么一定要加volatile,刚好我都会

对于 T t = new T();其实有如下字节码指令完成_new 'org/openjdk/jol/T'dupINVOKESPECIAL org/openjdk/jol/T.<init> ()Vastore 1return线程一 new 到一半时,m=0,发生重排序这时线程 2 来了!看到 t 已经指向了一个半初始化的实例了!这个概率很小,但是并发如淘宝,...

2020-04-04 22:38:10

缓存一致性协议和 volatile 到底什么关系?

缓存一致性协议和 java 的 volatile 实现无任何关系cache line的概念 缓存行对齐 伪共享a. cache是以cache line为单位与内存映射的,cache只要命中了就是命中64字节,对应内存中连续的64个地址,这64个地址刚好对应了地址的低6位。所以这6位被划为一个段。b. cache分为了64组,要有hash方式确定内存中的地址在哪个cache组,可以用36位地址...

2020-04-04 22:27:56

看完这篇volatile实现原理,我和阿里面试官扯了一小时

4 volatile 关键字可见性问题让一个线程对共享变量的修改,能够及时的被其他线程看到。根据JMM中规定的happen before和同步原则:对某个volatile字段的写操作happens- before每个后续对该volatile字段的读操作。对volatile变量v的写入,与所有其他线程后续对v的读同步要满足这些条件,所以volatile关键字就有这些功能:禁止缓存...

2020-04-04 22:15:57

吊打Java面试官-Java内存模型深入详解(JMM)

0 CPU 性能优化手段 - 缓存为了提高程序运行的性能,现代CPU在很多方面对程序进行了优化。:例如: CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存(cache)以提高性能。0.1 多级缓存L1 Cache(一级缓存)CPU第一层高速缓存,分为数据缓存和指令缓存。一般服务器CPU的L1缓存的容量通常在32- - 4096KB。L2由于L1级高...

2020-04-04 22:14:54

x86系统cache locking的原理

cmpxchg 本身不是原子的,需要加 lock 才是原子的,而 lock 是通过锁内存总线来实现原子性的。内存总线就一条,是独占的,不管你是多核还是单核,同一时间,只有一个能占用总线.占用总线的,可以是 CPU 的核,也可以是 DMA 等能访问内存的设备,一般叫 bus master。一个元器件读内存时就会占用总线,读完后再解除对总线的占用,其它元器件才能进总线继续访问内存,任何元器件不会在...

2020-04-04 21:52:49

JVM 的Lock Record简介

锁记录被用于偏向锁优化和轻量级锁优化,这篇文章只是总结一下相关性质。基本问题数据结构及其openjdk实现什么时候被创建?在哪里创建?有什么作用?一、数据结构及其openjdk实现lock record的数据结构The lock record holds the original value of the object’s mark word and also contains me...

2020-04-04 21:51:08

吊打Java面试官-Java锁升级详解

1 大厂面试题请描述synchrnoized和reentrantlock的底层实现及重入的底层原理- 百度阿里请描述锁的四种状态和升级过程-百度阿里CAS的ABA问题如何解决-百度请谈一下AQS,为什么AQS的底层 是CAS + volatile-百度请谈一下你对volatile的理解-美团阿里volatile的可见性和禁止指令重排序是如何实现的-美团CAS是什么-美团请描述一下...

2020-04-04 21:36:14

啃透JDK源码-LinkedLis

0 前言与 ArrayList 一样实现了 List 接口,只是 LinkedList 底层结构为链表.在插入和删除时更优于 ArrayList,而随机访问则比 ArrayList 稍逊.其允许元素包括 null.除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作...

2020-04-04 19:41:19

Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析

对类的植入锁定进行判断几个可以对覆盖率跟踪的Java类定义进行instrument的APIpublic byte[] instrument(final ClassReader reader) { final ClassWriter writer = new ClassWriter(reader, 0) { @Override protected String getCommon...

2020-04-04 19:37:08

啃透JDK源码系列-Arrays核心源码解析

不知道自己无知,乃是双倍的无知。——柏拉图0 前言此类包含用于操纵数组的各种方法(例如排序和搜索)。 此类还包含一个静态工厂,该工厂允许将数组视为列表。如果指定的数组引用为null,则除非另有说明,否则此类中的方法都抛出NullPointerException。此类中所包含方法的文档包括对实现的简要说明。 此类描述应被视为实现的说明,而不是标准。只要遵守规范本身,实现者就可...

2020-04-04 18:23:39

Java的类/方法/字段注释详解

一个程序的可读性,关键取决于注释。如果一个程序想二次开发,要读懂前面的程序代码,就必须在程序中有大量的注释文档,所以对于一个优秀的程序员来说,学会在程序中适当地添加注释是非常重要的。注释除了帮助别人了解编写的程序之外,还对程序的调试、校对等有相当大的帮助。当程序具体运行时,计算机会自动忽略注释符号之后所有的内容。教程第二章中曾经提到过注释,读者也许印象不太深,在这里复习一遍。本节将简单地介绍类...

2020-04-04 15:45:50

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】— 学习力挑战》的文章入选【每日精选】的博主
  • 原力突破
    原力突破
    参与《原力计划【第二季】— 学习力挑战》的文章入选【学习力挑战周榜】的博主
  • 学习力
    学习力
    参与《原力计划【第二季】— 学习力挑战》获得推荐的原创文章的博主
  • 分享达人
    分享达人
    成功上传6个资源即可获取