一.前言 前一阵子比较好奇,想看到底层(虚拟机.汇编)怎么实现的java 并发那块. volatile是在汇编里加了lock前缀,因为volatile可以通过查看JIT编译器的汇编代码来看. 但是原子类,本来在jvm中就是汇编实现的,反而没法看.如果能实际跟踪一下断点,应该也算实际验证了. 这边基本参照下面文章来的,补充了很多让初学者头疼的细节,并拓展了一部分, 包括调试java 原子类在jvm中的实现的一些细节. https://marcin-chwedczuk.github.io/debug…
本文首发于个人博客https://kezunlin.me/post/39ab7ed9/,欢迎阅读最新内容! compile and install cgal on ubuntu 16.04 Guide version: 4.13.1 install wget https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.13.1/CGAL-4.13.1.zip cd CGAL-4.13.1 mkdir build && c…
JDK1.8源码阅读笔记(2) AtomicInteger AtomicLong AtomicBoolean原子类 Unsafe Java中无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存.Java中的Unsafe类为我们提供了类似C++手动管理内存的能力.Unsafe类是"final"的,不允许继承. Number类(abstract) xxxValue()方法:将 Number 对象转换为xxx数据类型的值并返回. Atomic Boolean-Integer…
Android Apktool源码编译 标签(空格分隔): Android Apktool 源码编译 需求 习惯NetBeans调试smali需要用Apktool反编译apk,需要用-d的参数才能生成.java文件.下载最新的Apktool.jar,运行后提示smalidebugging已经从Apktool去掉了.尝试早期版本,存在bug需要源码调试修复. 编译过程遇到的问题 1.从github下载smalidebugging的代码.(Apktool-issue_901) 2.编译提示错误修复.…
mpusher 源码编译 for windows X64 对于java我是小白,通过一步步的摸索,将经验总结下来,给更多码友提供入门的帮助.一个人的摸索是很困难的,本教程感谢 [MPush开源消息推送系统 114583699]杭州-夜色(251939168) 的帮助,也希望MPush在开源理念的帅领下会做的更好. 教程中科普的部分可以跳过,直接看编译的部分. 一.下载源码 https://github.com/mpusher/ 解压到d:/mpusher/mpusher 目录 二,下载 idea…
写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些自己的经验,希望能对读者有所帮助.期间参考了许多前人的文章,后文会一一附上链接,在此先行谢过.在下能力有限,经验不足,请大家多多指教. 关键词:Ubuntu16.04 Server   深度学习环境搭建   安装   显卡驱动   CUDA8.0   cuDNN6.0   Bazel   源码编译 …
http://johnhany.net/2016/07/build-opencv-manager-for-android-on-ubuntu/ 最近想在Android上尝试一下SIFT和SURF匹配算法,但考虑到这些算法都是专利保护的,并没有被包含在预编译库中,所以还需要自己来动手编译OpenCV Android SDK.在OpenCV 2.4.x版本中,这些算法被包含在nonfree模块中:从3.0版本开始,用于图像特征匹配的一些算法(比如SIFT,SURF,BRIEF,FREAK等)被转移到…
要分析JVM的源码,结合资料直接阅读是一种方式,但是遇到一些想不通的场景,必须要结合调试,查看执行路径以及参数具体的值,才能搞得明白.所以我们先来把JVM的源码进行编译,并能够使用GDB进行调试. 编译环境 本文使用的JDK版本:OpenJDK7,分支b147 下载页面:https://download.java.net/openjdk/jdk7 下载地址:http://download.java.net/openjdk/jdk7/promoted/b147/openjdk-7-fcs-src-…
Sun JDK中采用javac将Java源码编译为class文件,这个过程包含三个步骤:     1.分析和输入到符号表(Parse and Enter)    Parse过程所做的工作有词法和语法分析.词法分析要完成将代码字符串转变为Token序列.语法分析则是根据语法将Token序列生成抽象语法树.    Enter过程将符号输入到符号表,通常包括确定类的超类型和接口.根据需要添加默认构造器.将类中出现的符号输入类自身的符号表中等. 2.注解处理(Annotation Processing)…
一.整体编译 我的环境: Ubuntu 16.04 LTS apache-ant-1.8.0-bin.zip 环境变量: export LANG=C export ALT_BOOTDIR=/home/wangx/warehouse/jdk1..0_80 export ALLOW_DOWNLOADS=true export HOTSPOT_BUILD_JOBS= export ALT_PARALLEL_COMPILE_JOBS= export SKIP_COMPARE_IMAGES=true ex…