会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
SanjiApollo
博客园
首页
新随笔
联系
订阅
管理
2020年9月3日
Java不使用锁让两个线程顺序打印1~100
摘要: 两个线程,其中一个打印奇数,另一个打印偶数,打印的结果是按照顺序1~100,不使用锁。 import java.util.concurrent.atomic.AtomicInteger; public class PrintOneToOneHundred { private static int n
阅读全文
posted @ 2020-09-03 10:05 SanjiApollo
阅读(475)
评论(0)
推荐(0)
2020年8月23日
MariaDB安装与使用
摘要: 环境: Linux centos7 3.10.0-957.el7.x86_64 安装MariaDB 如果centos安装的是minimal版本,需要先安装mariadb yum install mariadb-server.x86_64 配置 安装完成后,MariaDB没有启动,使用 systemc
阅读全文
posted @ 2020-08-23 18:07 SanjiApollo
阅读(367)
评论(0)
推荐(0)
2020年7月14日
用Java写一个简单的Bitmap
摘要: /** * Bitmap用于标识[low, high]区间内的数的占用情况, * 进一步可以用来去重,用来排序等 */ private static class Bitmap { // 区间的左边界,默认为0 private int low; // 区间的右边界 private int high;
阅读全文
posted @ 2020-07-14 21:41 SanjiApollo
阅读(390)
评论(0)
推荐(0)
2020年7月11日
使用visualvm观察远程服务器某个JVM运行数据
摘要: visualvm正如其名,它能让我们以可视化的方式观察JVM的运行信息,包括启动参数、堆内存、加载的类等。 visualvm既可以观察本地的JVM,也可以观察远程服务器上的JVM。 以观察远程服务器上的tomcat为例。 首先,在服务端开启jstatd 想要远程监控JVM需要jstatd来简化连接和
阅读全文
posted @ 2020-07-11 15:54 SanjiApollo
阅读(195)
评论(0)
推荐(0)
2020年5月20日
Java实现堆排序
摘要: ```javapublic class HeapSort implements SortAlgorithm { @Override public void sort(int[] nums) { if (nums == null || nums.length == 0) return; // 构建最大堆 buildMaxHeap(nums); ...
阅读全文
posted @ 2020-05-20 11:26 SanjiApollo
阅读(233)
评论(0)
推荐(0)
2020年5月10日
Tomcat知多少 -- 01. 使用LimitLatch限制最大连接数
摘要: 1. 概述 在英文中,latch是“门闩”的意思,这跟锁(lock)所要表达的意思接近,获取到latch则可以进入房间,否则只能等待。而我猜测使用latch而不是用lock可能是想表达“轻量级锁”。 LimitLatch实例在初始化时会设置一个资源的上限值,在某一时刻,资源使用未达到上限则可以获取锁
阅读全文
posted @ 2020-05-10 22:10 SanjiApollo
阅读(929)
评论(0)
推荐(1)
2020年5月9日
Tomcat知多少 -- 组件生命周期Lifecycle
摘要: Tomcat中存在着诸多的组件,如Server、Service、Engine、Host、Context等,这些组件都遵从Tomcat的生命周期管理,比如当Catalina调用 方法启动Tomcat时,这些组件会随之启动,当调用 关闭时,这些组件会随之关闭。 理解Tomcat的生命周期管理对于分析To
阅读全文
posted @ 2020-05-09 10:03 SanjiApollo
阅读(383)
评论(0)
推荐(0)
2020年5月6日
不同类加载器加载同一个class文件
摘要: 不同类加载器加载同一个class文件得到的类型也是不同的。 验证如下: 在 目录下,有名为 的文件,其编译前的源码如下: 每当创建一个对象的时候,静态变量 就会自增,可以利用 的值来判定不同类加载器得到的Class对象是否是同一个。 创建 类如下: 在 方法中,首先自定义两个类加载器,分别使用这两个
阅读全文
posted @ 2020-05-06 22:46 SanjiApollo
阅读(3278)
评论(0)
推荐(2)
自定义一个类加载器打印“Hello World!”
摘要: 现有两个类 和`HelloWorld`,其源代码如下: Demo.java: HelloWorld.java: 可以看到 和`HelloWorld Demo print() HelloWorld.foo()`从而打印出"Hello World!"。 现有一个 类,其结构如下: 现在,我们的任务是 在
阅读全文
posted @ 2020-05-06 20:39 SanjiApollo
阅读(304)
评论(0)
推荐(0)
关于classpath
摘要: 刚学Java那会儿,配置Java开发环境,网上查找的教程都会教你如何配置 以及 环境变量。 然而, 其实是无需配置的。 Java程序使用到的类文件可以分为三类: 启动类(Bootstrap classes):组成Java平台的类,包括 以及其他一些重要jar文件; 扩展类(Extension cla
阅读全文
posted @ 2020-05-06 15:02 SanjiApollo
阅读(186)
评论(0)
推荐(0)
下一页
公告