编程语言:Java
In Java, difference between default, public, protected, and private
In Java, are there clear rules on when to use each of access modifiers, namely the default (package private), public, protected and private, while making class and interface and dealing with inheri...
JAVA使用堆外内存导致swap飙高
近期遇到一个堆外内存导致swap飙高的问题,这类问题比较罕见,因此将整个排查过程记录下来了 现象描述 最近1周线上服务器时不时出现swap报警(swap超过内存10%时触发报警,内存是4G,因此swap超过400M会触发报警),每次都是童鞋们通过重启tomcat解决的; 但导致的根本原因是什么呢?必须找到根本原因才行,总是这么重启就有点low了 问题排查 于是找了1台占用了swap但还未触发...
Interfaces with static fields in java for sharing 'constants'
I'm looking at some open source Java projects to get into Java and notice a lot of them have some sort of 'constants' interface. For instance, processing.org has an interface called PConstants.jav...
Java方向如何准备BAT技术面试答案(汇总版)
这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改,欢迎朋友们吐槽、转发。因为篇幅长度和时间的原因,部分答案我没...
多种负载均衡算法及其Java代码实现
本文讲述的是\x26quot;将外部发送来的请求均匀分配到对称结构中的某一台服务器上\x26quot;的各种算法,并以Java代码演示每种算法的具体实现。
Java CompletableFuture 详解
Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。 1234567891011121314public class BasicFuture { public static void main(String[] args) throws Ex
Java常量池理解与总结
一.相关概念 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。 Clas...
Java 不可变对象整洁之道
最近来看看不可变对象及其周边。
细思极恐-你真的会写java吗?
细思极恐:你真的会写java吗?让我们来讨论一下你真的是否会写java这个简单的问题吧。
How to change the java DNS service provider
I'm building a fast web crawler and I need to have multithreaded DNS resolution, so I picked up a multithreaded DNS service provider called dnsjava. Unfortunately, I can't figure out how to replace...
红黑树深入剖析及Java实现
红黑树是应用广泛的数据结构,本文从二叉查找树开始讲起,透彻地分析了红黑树的插入和删除操作,并提供了Java实现代码。
伪共享和缓存行填充,从Java 6, Java 7 到Java 8
关于伪共享的文章已经很多了,对于多线程编程来说,特别是多线程处理列表和数组的时候,要非常注意伪共享的问题。否则不仅无法发挥多线程的优势,还可能比单线程性能还差。随着JAVA版本的更新,再各个版本上减少伪共享的做法都有区别,一不小心代码可能就失效了,要注意进行测试。这篇文章总结一下。 什么是伪共享 关