摘要:
两个线程,其中一个打印奇数,另一个打印偶数,打印的结果是按照顺序1~100,不使用锁。 import java.util.concurrent.atomic.AtomicInteger; public class PrintOneToOneHundred { private static int n 阅读全文
摘要:
环境: Linux centos7 3.10.0-957.el7.x86_64 安装MariaDB 如果centos安装的是minimal版本,需要先安装mariadb yum install mariadb-server.x86_64 配置 安装完成后,MariaDB没有启动,使用 systemc 阅读全文
摘要:
/** * Bitmap用于标识[low, high]区间内的数的占用情况, * 进一步可以用来去重,用来排序等 */ private static class Bitmap { // 区间的左边界,默认为0 private int low; // 区间的右边界 private int high; 阅读全文
摘要:
visualvm正如其名,它能让我们以可视化的方式观察JVM的运行信息,包括启动参数、堆内存、加载的类等。 visualvm既可以观察本地的JVM,也可以观察远程服务器上的JVM。 以观察远程服务器上的tomcat为例。 首先,在服务端开启jstatd 想要远程监控JVM需要jstatd来简化连接和 阅读全文
摘要:
```javapublic class HeapSort implements SortAlgorithm { @Override public void sort(int[] nums) { if (nums == null || nums.length == 0) return; // 构建最大堆 buildMaxHeap(nums); ... 阅读全文
摘要:
1. 概述 在英文中,latch是“门闩”的意思,这跟锁(lock)所要表达的意思接近,获取到latch则可以进入房间,否则只能等待。而我猜测使用latch而不是用lock可能是想表达“轻量级锁”。 LimitLatch实例在初始化时会设置一个资源的上限值,在某一时刻,资源使用未达到上限则可以获取锁 阅读全文
摘要:
Tomcat中存在着诸多的组件,如Server、Service、Engine、Host、Context等,这些组件都遵从Tomcat的生命周期管理,比如当Catalina调用 方法启动Tomcat时,这些组件会随之启动,当调用 关闭时,这些组件会随之关闭。 理解Tomcat的生命周期管理对于分析To 阅读全文
摘要:
不同类加载器加载同一个class文件得到的类型也是不同的。 验证如下: 在 目录下,有名为 的文件,其编译前的源码如下: 每当创建一个对象的时候,静态变量 就会自增,可以利用 的值来判定不同类加载器得到的Class对象是否是同一个。 创建 类如下: 在 方法中,首先自定义两个类加载器,分别使用这两个 阅读全文
摘要:
现有两个类 和`HelloWorld`,其源代码如下: Demo.java: HelloWorld.java: 可以看到 和`HelloWorld Demo print() HelloWorld.foo()`从而打印出"Hello World!"。 现有一个 类,其结构如下: 现在,我们的任务是 在 阅读全文
摘要:
刚学Java那会儿,配置Java开发环境,网上查找的教程都会教你如何配置 以及 环境变量。 然而, 其实是无需配置的。 Java程序使用到的类文件可以分为三类: 启动类(Bootstrap classes):组成Java平台的类,包括 以及其他一些重要jar文件; 扩展类(Extension cla 阅读全文