java
蚂蚁要上天
这个作者很懒,什么都没留下…
展开
-
java cas底层源码学习
java cas深究问题:cas怎么保证共享变量是原子性的?1、demo演示cas demo代码:public class CasCounter { private volatile int count = 0; private static long offset; private static Unsafe unsafe; static { try { Field f = Unsafe.class.getDecl原创 2020-09-08 14:18:07 · 272 阅读 · 0 评论 -
理解java.util.concurrent.atomic中的compareAndSet
今天在研究卷积神经网络的代码时看到多线程的问题,中间的compareAndSet方法不太理解,举例演示线程1和线程2在运行时,想只让线程1运行if语句,但是如果在someone从false到true过程中线程2也开始运行,那么很可能线程2也会进入if条件体里面,如下所示。示例1:package atomicboolean_test;public class visit impl原创 2017-04-24 11:55:10 · 5422 阅读 · 1 评论 -
cmd的javac多个类编译方法
cmd下的javac命令实现多个类的编译原创 2017-05-04 22:12:17 · 3020 阅读 · 0 评论 -
自己编译jdk
使用的是vm虚拟机,在vmware虚拟机中搭建ubuntu系统,版本是16.04,如下: 1.依赖准备需要依赖的包如下:sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libm...原创 2018-06-04 18:42:26 · 3655 阅读 · 4 评论 -
如何仅用递归函数和栈操作逆序一个栈
/** * 如何仅用递归函数和栈操作逆序一个栈 * 题目: * 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。 * 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。 * @author GPJ * */ 方法一:既然是递归,第一反应是采用两个栈实现该功能实现,依次弹出栈顶元素,然后压入另外一个...原创 2018-06-26 16:42:26 · 1197 阅读 · 0 评论 -
用一个栈实现另一个栈的排序
题目:一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?方法一:我用一个栈实现的,只有一个排序栈,和逆序一个栈思路一样,都是使用递归的方式记录局部变量,然后一个个压入栈中getMaxElement()方法的目的是获取栈中从栈底到栈顶方法遇见的第一个最大值,然后把该元素弹出,其他栈中元素相对位置不变...原创 2018-07-03 10:32:25 · 870 阅读 · 0 评论 -
自己动手实现远程执行功能(深入理解java虚拟机)
书中的案例自己实现一遍,过程如下文具体是在eclipse中实现,整体截图如下:1.ByteUtils的代码如下:package org.jvm;/** * Bytes数组处理工具 */public class ByteUtils { public static int bytes2Int(byte[] b, int start, int len) { int sum = 0; i...原创 2018-07-13 12:54:35 · 1993 阅读 · 1 评论 -
new String("abc")的详细流程
1.代码jdk版本是1.8.0_111代码如下:对Test4.class的代码执行javap命令,如下:执行后截图如下: 2.执行字节码指令的过程第0行:为str分配内存空间,并把该引用放到操作数栈中。第3行:复制操作数栈栈顶的元素,并放到操作数栈中。第4行:把指向常量池中引用(暂时为该引用命名为sym)放到操作数栈栈顶。第6行:...原创 2018-08-28 14:21:41 · 7613 阅读 · 0 评论