首先要知道CAS CAS Compare and Swap,即比较再交换; 区别于synchronouse同步锁的一种乐观锁(是一种无锁算法) CAS有3个操作数, 内存地址,以直接从内存中获取旧值; 旧的预期值A,代码中的旧值; 要修改的新值B 当且仅当预期值A和内存值V相同时,将内存值V修改为B ...
分类:
其他好文 时间:
2020-04-05 09:40:41
阅读次数:
58
上班闲的时候看下源码,边看边更新,欢迎评论 继承关系 其中 Number 是个抽象类,主要抽象了一下方法: 即数值型的类型转换 变量 @Native public static final int MIN_VALUE = 0x80000000; int 型最小值,表示-2^(32-1) @Nativ ...
分类:
编程语言 时间:
2020-01-10 10:51:39
阅读次数:
80
1.关于int和Integer的问题区别分析编译阶段、运行时,自动装箱/自动拆箱是发生在什么阶段?使用静态工厂方法valueOf会使用到缓存机制,那么自动装箱的时候,缓存机制起作用吗?为什么我们需要原始数据类型,Java的对象似乎也很高效,应用中具体会产生哪些差异?阅读过Integer源码吗?分析下类或某些方法的设计要点?int和Integer的区别1、Integer是int的包装类,int则是j
分类:
编程语言 时间:
2019-12-11 23:43:12
阅读次数:
168
众所周知,JDK提供了AtomicInteger保证对数字的操作是线程安全的,线程安全我首先想到了synchronized和Lock,但是这种方式又有一个名字,叫做互斥锁,一次只能有一个持有锁的线程进入,再加上还有不同线程争夺锁这个机制,效率比较低,所以又称“悲观锁”。 但是相应的有了乐观锁的概念, ...
分类:
编程语言 时间:
2019-08-08 21:39:27
阅读次数:
165
1. 源码相关的说明参考java 8 doc https://docs.oracle.com/javase/8/docs/api/ 2.自动装箱使用缓存原理: 调用static valueOf从而使用内部静态内static class IntegerCache{},其中cache最大值可以调整,通过 ...
分类:
其他好文 时间:
2019-05-28 09:20:02
阅读次数:
87
对于 java 中 Integer 类型 比较 ,经常在面试中被提到 ,有时 还真的 让人 头疼。下面我来分析下。integer 比较问题。 解决 Integer 值比较问题。我想从以下几点说起。 1. Integer 的源码。 2.堆内存与常量池 从Integer 源码开 。 在 -128 到 1 ...
分类:
编程语言 时间:
2019-05-18 00:46:41
阅读次数:
132
Integer 缓存 点击查看结果 Integer 源码 / Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved. ORACLE PROPRIETARY/CONFIDENTIAL. Use is su ...
分类:
其他好文 时间:
2018-12-09 21:05:26
阅读次数:
119
本文对JDK8中的java.lang.Integer包装类的部分数值缓存技术、valueOf()、stringSize()、toString()、getChars()、parseInt()等进行简要分析。 Integer缓存 先来看一段代码: 两个输出语句具有不同的输出,在于Integer使用了一个 ...
分类:
编程语言 时间:
2018-06-21 22:28:25
阅读次数:
158
今天不看spring了,上了一天的课,晚上还要写编译原理作业(头疼)。先看点api的源码放松一下。不得不说,看这些世界上最顶尖的程序员写出来的东西真是和看nba一样是一件愉快的事情,虽然有点烧脑。 先看看Integer.toString(int i)是怎么实现的。 首先有两个相关的方法,string ...
分类:
编程语言 时间:
2017-09-28 20:43:30
阅读次数:
181
//Integer 源码 private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; public static Integ ...
分类:
其他好文 时间:
2017-09-04 11:01:05
阅读次数:
161