java
houzhizhen
专注大数据处理和分布式计算。
展开
-
Java 在 finally 里返回会忽略执行中的任意异常
Java 在 finally 里返回会忽略执行中的任意异常。当参数为 0 时,会抛出异常,然后进入finally 代码块, finally 中,有 return,会返回 “not success”,不会继续向上层抛出异常。如果我们的上层代码依赖异常,则会返回错误的结果。原创 2024-11-04 16:58:00 · 209 阅读 · 0 评论 -
java 动态读取 classpath 下所有的一种资源
有的时候,需要读取所有的 jar 文件中的一种资源。如以下示例读取 ,可以读取所有 jar 文件中的 META-INF/MANIFEST.MF。原创 2022-12-07 16:03:27 · 216 阅读 · 0 评论 -
Java MemoryHierarchy 测试
做三个测试,都是计算 C = A * B,结果都一样,但是用的时间不一样。在笔记本中,testIJK 用 5s 32ms,testJKI 用 15s 542ms,testKIJ 用 403 ms。可以看到,testKIJ 的 cache 命中率最高。public class TestMemoryHierarchy { int length = 1000; double[][] a; double[][] b; double[][] c; @BeforeClas原创 2021-10-09 10:14:00 · 85 阅读 · 0 评论 -
URI 中包含用户信息
@Test public void test() throws UnsupportedEncodingException { String encodedUserInfo = URLEncoder.encode("hozhizhen:password", "UTF-8"); String url = "hdfs://" + encodedUserInfo + "@localhost:8020/a/b"; URI uri = URI.create(ur原创 2021-09-09 10:10:50 · 389 阅读 · 0 评论 -
Java Method Signature -- Java 方法签名
Character Type Interpretation------------------------------------------B byte signed byteC char Unicode characterD double double-precision floating-point valueF flo.原创 2021-08-18 11:03:31 · 888 阅读 · 0 评论 -
Java 的 for 条件判断,每次都执行一次
@Testpublic void test2() { for (int i = 0; i < size(); i++) { System.out.println(i); }}static int index = 0;public int size() { return 10 - index++;}输出结果:01234原创 2021-07-13 11:10:03 · 587 阅读 · 0 评论 -
async-profiler wiki
HomeEditNew PageAndrey Pangin edited this pageon 13 Mar·7 revisionsTable of contentsWhy yet another profiler? Basic UsageProfiler modes:CPU profiling Installing Debug Symbols Allocation profiling Java method profiling Wall clock profi...原创 2021-06-09 11:01:28 · 244 阅读 · 0 评论 -
Synchronized
SynchronizedJava’s primary tool for rendering interactions between threads predictably is the synchronized keyword.Many programmers think of synchronized strictly in terms of enforcing a mutual exclusion semaphore (mutex) to prevent execution of critica原创 2021-02-09 15:06:10 · 144 阅读 · 0 评论 -
Java的Volatile关键字的作用
VolatileVolatile 概念是Java特有的。如果你理解它解决的问题,会更容易理解它。如果一个变量,例如一个计数器正在被一个线程使用,有可能计数器的一个副本放在CPU 高速缓存里,并且每次修改时,仅修改高速缓存的内容,而不是写到主存。JVM会决定什么时候更新主存。甚至当其他线程从主存里读取计数器的值时,有可能读到过期的值。如果一个变量用volatile修饰,不论一个线程读还是写此变量,总是从主存里读写。作为进一步的保证,当一个写线程写一个volatile修饰的变量时,写线程能看到的所有变原创 2021-02-09 15:00:00 · 380 阅读 · 0 评论 -
jdk-1.8.0_181 Math.floorMod的doc部分有bug
Math.floorMod的doc部分有bug。以下代码的最后一行,{@code /}应该是 {@code %} * The difference in values between {@code floorMod} and * the {@code %} operator is due to the difference between * {@code floorDiv} that returns the integer less than or equal to the qu原创 2020-11-06 14:40:26 · 193 阅读 · 0 评论 -
使用maven命令安装jar包到本地仓库
使用maven命令安装jar包到本地仓库第三方jar包在开发工具中引入后编译没问题, 启动调试包括打包时会提示找不到jar包的错误.需要上传到maven仓库中,并在pom文件内引入.maven命令:安装指定文件到本地仓库命令:mvn install:install-file-DgroupId=<groupId> : 设置上传到仓库的包名-DartifactId=<artifactId> : 设置该包所属的模块名-Dversion=1.0.0原创 2020-08-04 16:50:58 · 409 阅读 · 0 评论 -
Guava MapMaker的用法
guava.version:21.0MapMaker.makeMappublic <K, V> ConcurrentMap<K, V> makeMap() { if (!useCustomMap) { return new ConcurrentHashMap<K, V>(getInitialCapacity(), 0.75f, getConcurrencyLevel()); } return MapMakerInternalMap.原创 2020-06-17 09:58:18 · 1117 阅读 · 0 评论 -
Java Garbage Collector (GC) Monitor
List<GarbageCollectorMXBean> mxBeans = ManagementFactory .getGarbageCollectorMXBeans(); final OutOfCoreEngine oocEngine = serviceWorker.getServerData().getOocEngine(); for (GarbageCollectorMXBean gcBean : mxBeans) { Noti原创 2020-06-15 08:41:27 · 507 阅读 · 0 评论 -
java语句顺序有时很重要
我们学习java时,通常被告知,变量定义的顺序不重要,但是以下程序确在jdk 1.7上运行出错。public class FactoryImpl implements Serializable { private final static FactoryImpl INSTANCE = new FactoryImpl(); private final static Atomic原创 2016-02-18 17:43:54 · 7927 阅读 · 1 评论 -
使用 ClassUtil.findContainingJar找到 class所在jar包的名称和绝对路径
@InterfaceAudience.Privatepublic class ClassUtil { /** * Find a jar that contains a class of the same name, if any. * It will return a jar file, even if that is not the first thing * on t...原创 2018-09-13 11:18:20 · 319 阅读 · 0 评论 -
jarsigner
You use the jarsigner tool to sign and verify Java Archive (JAR) files.Synopsisjarsigner [ options ] jar-file alias jarsigner -verify [ options ] jar-file [alias ...]jarsigner -verify [ option...转载 2018-10-26 17:26:20 · 1024 阅读 · 0 评论 -
Class not implements Cloneable will cause CloneNotSupportedException
The test case using jdk 1.8.class C implements Cloneableclass C implements Cloneable { int id; public C(int id) { this.id = id; } @Override public C clone() throws Clone...原创 2019-04-10 09:16:00 · 218 阅读 · 0 评论 -
java request https URL through HttpsURLConnection Test
import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.security.KeyManagementException;import java.security.NoSuchAlgorithmExcepti...原创 2018-06-06 17:47:18 · 240 阅读 · 0 评论 -
Java9 基于异步响应流的发布-订阅框架
为响应式流(Reactive Streams)增加的发布-订阅(publisher-subscriber)框架、并发包CompletableFuture类的增强,等等。转载 2017-10-10 17:30:47 · 1461 阅读 · 0 评论 -
动态MBean:DynamicMBean
JMX的Dynamic MBean不需要自定义MBean接口,只需要实现JDK提供的DynamicMBean接口即可。Dynamic MBean没有任何明显写在代码里的属性和方法,所有的属性和方法都是通过反射结合JMX提供的辅助元数据,从而动态生成的。Dynamic MBean:[java] view plain copy package com.jmx.dynamic.demo转载 2017-09-18 10:08:06 · 1224 阅读 · 0 评论 -
IdentityHashMapTest
/** * Returns the same hash code for the given object as * would be returned by the default method hashCode(), * whether or not the given object's class overrides * hashCode().原创 2016-12-12 14:08:41 · 381 阅读 · 0 评论 -
jvm工具系列之 -- jhat
jhat , 当屏幕显示 "Server is ready"后,用户在浏览器中输入 http://:7000/ 就可以看到分析结果原创 2015-10-09 14:30:26 · 2186 阅读 · 0 评论 -
jvm工具系列之 -- 使用 jmap 生成堆转储快照
jmap (Memory Map for Java)用于生成堆转储快照。jamp命令格式:jmap [ option ] vmid选项 作用-dump 生成Java堆转储快照。格式为:-dump:[live,]format=b,file=,其中live子参数表示是否只dump出活的对象。-finalizerinfo 显示在F-Queue中等...原创 2015-10-08 17:05:26 · 1714 阅读 · 0 评论 -
使用java Reflection机制使单例模式不再只有一个对象的实例
在java的单例模式中,有几个要点。第一,构造方法私有,防止其它应用程序调用构造方法来创建对象;第二,有一个static的对象存放全局性变量,有一个getInstance方法来返回全局性变量,常见代码如下:public class FactoryImpl { private final static AtomicInteger count = new AtomicInteger(0)原创 2016-02-18 18:04:36 · 596 阅读 · 0 评论 -
java内存溢出
jvm内存溢出主要分为以下几个方面。1。java 堆溢出。2. Direct Memory: 可通过 -XX:MaxDirectMemorySize 调整大小,内存不足时抛出OutOfMemoryError或者OutOfMemoryError:Direct buffer memory.3. 线程堆栈:可通过-Xss调整大小,内存不足时抛出StackOverflowError(纵原创 2015-10-09 15:49:29 · 666 阅读 · 0 评论 -
jvm工具系列之 -- jstat
jstat命令格式为jstat [option vmid [interval [s | ms] [count] ] ]选项 作用-class 监视类装载、卸载数量、总空间以及类装载所耗费的时间-gc 监视java堆状况,包括Eden区,两个survivor区,老年代,永久代等的容量、已用空间、GC时间合计等信息。-gccapac原创 2015-10-08 15:00:11 · 431 阅读 · 0 评论 -
jvm工具系列之 -- Java配置信息工具
Java配置信息工具有两个,一个是jinfo,还有一个是java -XX:+PrintFlagsFinal -version.jinfo可以输出指定程序的vm参数。java -XX:+PrintFlagsFinal -version 输出默认的jvm参数。原创 2015-10-08 15:16:41 · 420 阅读 · 0 评论 -
jvm工具系列之--jps
jps 选项-q 只输出LVMID(Local Virtual Machine Identifier),省略主类的名称-m 输出虚拟机进程记动时传递给主类main()函数的参数-l 输出主类的全名,如果进程执行的是jar包,输出Jar路径。-v 输出虚拟进程启动时JVM参数。原创 2015-10-08 14:25:22 · 380 阅读 · 0 评论 -
java 1.8 KeyStore
public class KeyStoreextends ObjectThis class represents a storage facility for cryptographic keys and certificates.A KeyStore manages different types of entries. Each type of entry implements th翻译 2017-01-06 16:10:38 · 505 阅读 · 0 评论 -
java 1.8 security LoginContext
Class LoginContextjava.lang.Objectjavax.security.auth.login.LoginContextpublic class LoginContextextends ObjectThe LoginContext class describes the basic methods used to authentic翻译 2017-01-06 16:30:58 · 1519 阅读 · 0 评论 -
Useful JVM Flags – Part 7 (CMS Collector)
The Concurrent Mark Sweep Collector (“CMS Collector”) of the HotSpot JVM has one primary goal: low application pause times. This goal is important for most interactive applications like web applicatio转载 2017-09-08 17:11:58 · 360 阅读 · 0 评论 -
Metrics介绍
Metrics可以为你的代码的运行提供无与伦比的洞察力。作为一款监控指标的度量类库,它提供了很多模块可以为第三方库或者应用提供辅助统计信息, 比如Jetty, Logback, Log4j, Apache HttpClient, Ehcache, JDBI, Jersey, 它还可以将度量数据发送给Ganglia和Graphite以提供图形化的监控。Metrics提供了Gauge、Counte转载 2017-05-18 15:00:27 · 41333 阅读 · 0 评论 -
java线程之InheritableThreadLocal
hreadLocal和InheritableThreadLocal区别,可以用代码测试一下:[java] view plain copy 在CODE上查看代码片派生到我的代码片 package com.lang; import junit.framework.TestCase; import static java.lang.System.out; public转载 2017-04-21 15:29:57 · 331 阅读 · 0 评论 -
Enable JXM Remote Monitor
To let a java procedure be monitored remotely, we must start it with the following jvm arguments. com.sun.management.jmxremote.port: which port to be listened.-Dcom.sun.management.jmxremote.port=9999原创 2017-04-10 11:42:19 · 513 阅读 · 0 评论 -
JAVA8 十大新特性详解
Java is still not dead—and people are starting to figure that out.” 本教程将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字。一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 代码如下:interface Formula {转载 2017-03-02 10:05:00 · 297 阅读 · 0 评论 -
java WeekReference ReferenceQueue测试
构建WeekReference(referent, referenceQueue)对象时,代表referent指向的对象要被回收时,当 WeekReference对象放到referenceQueue队列里,WeekReference对象的引用要一直保持,不能被回收。如下例所示,如果没有最后的打印wrapper操作,wrapper也会被回收,则从referenceQueue队列里会一直取不到数据。原创 2017-01-11 16:44:48 · 9348 阅读 · 0 评论 -
java addShutdownHook
addShutdownHook 注册一个新的虚拟机的停止回调。Java虚拟机遇到以下两种事件停止。 第一,程序正常退出,当最后一个非后台线程退出时,咖啡厅当System.exit方法被调用时。 第二, 当用户中断时,像 ^C,或者系统的事件,例如登出,或者系统关机。 关闭回调是一个只初始化,但并没有启动的线程。当虚拟机开始它的关闭步骤时,它会启动所有注册的关闭回调,这些原创 2017-01-10 10:34:44 · 4329 阅读 · 0 评论 -
Ubuntu下Eclipse安装反编译插件JadClipse .
我是在Ubuntu中使用Eclipe helios,即eclipse 3.6,参考了这篇文章http://www.blogjava.net/hongjunli/archive/2007/08/15/137054.html安装jodeclipse不成功,打开class文件,报错“the editor’s class name was mistyped in plugin.xml.”,可能是因为j转载 2014-09-10 17:24:16 · 615 阅读 · 0 评论