
java
hotdust
想成为一名JAVA方向的专家,做更多更好的基于JAVA的软件。
展开
-
Java 泛型在类继承方面的使用
对泛型的了解不多,最近了一个类继承方面的包装,更进一步了解泛型能如何使用。需求如下:有一个工厂类,通过工厂类去生产一个 Consumer。Consumer 需要调用 setMessageListener 方法去设置一个 IMessageListener。这个 IMessageListener 有一个方法onMessage(Object message)现在需要,使用者在使用on原创 2018-01-12 15:17:06 · 949 阅读 · 0 评论 -
关于Java的静态内部类
前言 看Spring源码和Map的源码时,发现有使用静态内部类。所以想知道静态内部类的特点是什么?在什么情况下使用静态内部类?原创 2016-12-13 11:13:23 · 432 阅读 · 0 评论 -
Mac上的双击执行Java程序使用的Jre
前一阵下载Java官网上的local_policy.jar US_export_policy.jarusug覆盖到Mac本地目录文件时,覆盖到了Java的安装目录: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/security在Finder中双击执行Jar文件,进行连接服务器时,原创 2016-11-24 09:31:28 · 3651 阅读 · 0 评论 -
Mac上的Java究竟在哪儿
http://www.voidcn.com/blog/zkq1989/article/p-2127581.html习惯了在Windows下开发的朋友,初次在Mac下进行Java编程开发对其安装位置都要纠结半天。这里作如下说明1. Mac下当你在【终端】输入java -version时,是执行的哪里的java呢,which java命令可以看到,就是【/usr/bin/java】转载 2016-11-23 23:18:09 · 4229 阅读 · 0 评论 -
Mac上的java_home命令的作用
https://my.oschina.net/shishaomeng/blog/537444摘要: 刚上手Mac还是有些别扭的,尤其安装个JDK都跟Windows不一样,而且是完全的不同本文仅针对mac osx 10.5+,其他版本有可能出现不适.JDK安装 JDK 1.转载 2016-11-23 23:12:57 · 5337 阅读 · 0 评论 -
深入分析Java ClassLoader原理
http://blog.youkuaiyun.com/xyang81/article/details/7292380一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不转载 2016-12-10 15:21:33 · 282 阅读 · 0 评论 -
Class.forName() 和 ClassLoader.loadClass()和 Class.forName().NewInstance()的区别
http://blog.youkuaiyun.com/shanliangliuxing/article/details/6730800Class.forName() 和 ClassLoader.loadClass()的区别? Class.forName() 和 Class.forName().NewInstance()的区别?Class.forName("xx.xx")等同于Cla转载 2016-11-02 14:04:36 · 1371 阅读 · 0 评论 -
使用Class.getResource(),ClassLoader.getResource(),ResourceBundle.getBundle ()进行资源定位
http://www.javaworld.com/article/2077352/java-se/smartly-load-your-properties.htmlhttp://stackoverflow.com/questions/676250/different-ways-of-loading-a-file-as-an-inputstream使用FileInputStream,转载 2016-11-02 13:46:50 · 1292 阅读 · 0 评论 -
用Class.forName注册JDBC驱动的原理
原文标题:Class.forName()的作用与使用总结 http://blog.youkuaiyun.com/fengyuzhengfan/article/details/380867431、Class类简介: Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,转载 2016-11-01 16:45:24 · 2426 阅读 · 0 评论 -
Java的内省(Introspector)操作
为了加强对Java Bean的操作支持,Java提供了Introspector类来对Java Bean的属性(Property)、方法(Method)、事件(Event)进行操作。Introspector类机制的主要思想是,通过Introspector来取得BeanInfo对象。再通过BeanInfo对象再取得EventSetDescriptor、MethodDescriptor、Proper转载 2016-10-28 19:46:27 · 516 阅读 · 0 评论 -
java动态代理(JDK和cglib)
http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.htmlJAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联转载 2016-11-09 11:55:39 · 319 阅读 · 0 评论 -
Java中的泛型方法
http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。转载 2016-10-18 10:35:34 · 255 阅读 · 0 评论 -
Java 8十个lambda表达式案例
http://www.jdon.com/idea/java/10-example-of-lambda-expressions-in-java8.html1. 实现Runnable线程案例使用() -> {} 替代匿名类://Before Java 8:new Thread(new Runnable() { @Override public void run转载 2016-11-07 16:39:53 · 266 阅读 · 0 评论 -
和Lambda表达式相关的Consumer、Function、Predicate 与 Supplier
http://openhome.cc/Gossip/Java/ConsumerFunctionPredicateSupplier.htmlLambda表示式實際的型態要看函式介面,雖然可以自行定義所需的函式介面,只不過對於幾種函式介面的行為,JDK8已經定義了幾個通用的函式介面,你可以先基於這些通用函式介面來撰寫程式,在必要時再考慮自訂函式介面,JDK8定義的通用函式介面,基本上置放於ja转载 2016-11-07 16:39:15 · 1968 阅读 · 3 评论 -
Java 8 Lambda表达式探险
http://www.cnblogs.com/feichexia/archive/2012/11/15/Java8_LambdaExpression.html为什么? 我们为什么需要Lambda表达式 主要有三个原因: > 更加紧凑的代码 比如Java中现有的匿名内部类以及监听器(listeners)和事件处理器(handlers)都显得很冗转载 2016-11-07 16:38:01 · 261 阅读 · 0 评论 -
Java8 Lambda表达式教程
http://blog.youkuaiyun.com/ioriogami/article/details/127821411. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; }转成λ表达式后是这个样子: (int x转载 2016-11-07 16:37:00 · 230 阅读 · 0 评论 -
多线程访问HashMap的问题
先记录一下,需要时候读一下: Is a HashMap thread-safe for different keys?:讲了多线程访问HashMap会产生的问题 HashMap完全解读:讲了HashMap的结构,如果想看了解多线程访问HashMap的问题的话,先读一下这个比较好。 java.util.HashMap在多线程环境中可能出现的问题:具体分析了是哪块代码,是如何产生问题的转载 2016-12-13 12:37:49 · 970 阅读 · 0 评论 -
Java访问私有属性(不使用getter方法和反射)
前言 今天看书的时候,看到一个写法,在不使用不使用getter方法和反射访问私有属性。原创 2016-12-16 12:58:43 · 4493 阅读 · 2 评论 -
把嵌套Json转换成Java对象
问题描述我希望能够从Java动作方法中的JSON字符串访问属性。该字符串可以通过简单的说myJsonString = object.getJson()。以下是字符串可以是什么样的示例:转载 2017-07-13 23:01:58 · 11306 阅读 · 1 评论 -
apache-common pool 的使用
Apache Commons-pool2(整理) apache-common pool的使用转载 2017-11-24 08:26:10 · 453 阅读 · 0 评论 -
JDK内置工具使用
from:http://blog.youkuaiyun.com/fenglibing/article/details/6411924 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Machine Process Status Tool) 三、jstack命令(Java Stack Trace) 四、jstat命令(Jav转载 2017-06-10 22:58:43 · 263 阅读 · 0 评论 -
关于注解的文章
深入理解Java注解类型(@Annotation):关于学习注解的好的基础文章,写的非常全,而容易明白 你了解注解内的@interface List么:Java8之前,解决多重重复注解问题的好文章 Spring AOP中pointcut expression表达式解析:关于PointCut expression写法的文章,不错原创 2017-07-10 23:09:27 · 369 阅读 · 0 评论 -
JAVA 注解的几大作用及使用方法详解(转)
from: http://langgufu.iteye.com/blog/2082590java 注解,从名字上看是注释,解释。但功能却不仅仅是注释那么简单。注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种:生成文档。这是最常见的,也是ja转载 2017-07-10 22:54:51 · 384 阅读 · 0 评论 -
Java应用线上问题排查的常用工具和方法
from:http://blog.hesey.net/2013/09/common-troubleshooting-tools-and-methods-on-java.html在长期排查线上问题的过程中,总结了一些工具的用法和排查问题的思路,这里跟大家分享一下,在遇到类似的问题时,希望能给予一些帮助。首先讲讲工具,JVM自带的一些工具是必须熟练掌握的,例如jstack, jma转载 2017-06-07 13:15:01 · 511 阅读 · 0 评论 -
Java 性能测试工具 JMH
前言 最近在看《Java8函数式编程》时,发现了一个性能测试工具 JMH(Java Microbenchmark Harness)。这个工具方便了我们进行微基准测试。比如,在进行微基准测试时,我们想要测试的是“程序被JVM编译成机器代码(而不是直接执行字节码)”的执行速度。为了让JVM把要测试的代码编译成机器码,我们可能需要把要测试的代码进行“预热处理”(就是先跑几回,或十几回等,当运行的次多了原创 2017-05-23 15:57:32 · 9305 阅读 · 2 评论 -
Java中守护线程的总结
http://blog.youkuaiyun.com/shimiso/article/details/8964414在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非转载 2017-01-24 11:17:54 · 374 阅读 · 0 评论 -
Idea打包Jar文件
前言 如何使用Idea把多个可执行的Class文件,打到一个Jar包里,使用Java命令执行不同的Class文件呢?还有,如何打成直接可执行的Jar包呢?下面进行说明原创 2017-02-21 10:46:13 · 21529 阅读 · 5 评论 -
java的static块执行时机
http://blog.youkuaiyun.com/berber78/article/details/46472789一、误区:简单认为JAVA静态代码块在类被加载时就会自动执行。证错如下: [java] view plain copyclass MyClass1 { static {//静态块 System.转载 2017-02-11 14:19:02 · 328 阅读 · 0 评论 -
类在什么时候加载和初始化
http://www.importnew.com/6579.html理解类在JVM中什么时候被加载和初始化是Java编程语言中的基础概念,正因为有了Java语言规范,我们才可以清晰的记录和解释这个问题,但是很多Java程序员仍然不知道什么时候类被加载,什么时候类被初始化,类加载和初始化好像让人很困惑,对初学者难以理解,在这篇教程中我们将看看类加载什么时候发生,类和接口是如何被初始化的,转载 2017-02-11 14:14:53 · 719 阅读 · 0 评论 -
关于SoftHashMap实现相关内容
前言 在看这篇文章时,看到了里面使用了SoftHashMap类。这个类是Shiro框架中的一个类,博主把这个类拿过来后,又添加了一个新的方法来方便使用。 在看到这个类后,想了一个问题:会不会发生GC的时候,SoftHashMap里的Value被回收了,而Key还存在的问题呢?如果会发生这样的问题的话,我们就无法用Key来判断缓存是否存在了。下面我们看一下它是如何处理的。原创 2017-02-10 21:29:42 · 2496 阅读 · 0 评论 -
final变量在多线程程序中的好处
好处:保证在构造函数中的变量设置,对其它线程来说,都是可见的。而且对于通过final变量到达的任意变量,对其它线程也是可见的(例如final Map变量里面的值)。 原因:对于通过final域可到达的变量的写入操作,将不会与构造过程后的操作,一起被重排序。原创 2017-02-17 10:16:11 · 2935 阅读 · 0 评论 -
volatile变量规则:对一个变量的写操作先行发生于后面对这个变量的读操作
如果单看一句话的,基本上是无法理解的。这句话的意思,并不是“对于一个变量a,a=5这样的写操作,在b=a这样的读操作之前执行”的意思,这句话实际上就是体现happens-before原则具备传递性。想要解理这句话的意思可以看下面的文章: - Java多线程:volatile变量、happens-before关系及内存一致性:这章文章的“什么是 happens-before 关系?”部分以下的一部分原创 2017-02-16 22:49:54 · 3397 阅读 · 4 评论 -
-jar参数运行应用时classpath的设置方法
http://www.zeali.net/entry/15当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报ClassNotFound错误。实际上这是由于当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJarExe.jar的内部cla转载 2017-01-04 21:53:26 · 619 阅读 · 0 评论 -
CLASSPATH 是什麼
http://openhome.cc/Gossip/JavaEssence/WhatClasspath.html假 設你在C:\workspace下寫了個HelloWorld.java,並順利使用編譯器javac將之編譯為HelloWorld.class,在不 切換路徑的情況下,可以直接執行java HelloWorld來載入HelloWorld.class並運行當中所定義的行為。转载 2017-01-04 21:28:27 · 406 阅读 · 0 评论 -
读取Jar文件中的Class文件或其它资源
在看《从零开始写JavaWeg框架》时候,看到从Jar文件中读取类文件的一段,自己试了一下怎么也读不出来。又上网看了一些文章,说是能读出来,还可能从Java自带的的jce.jar中读取class文件,但就是没有试出来。后来发现原因在于:没有把要读取的Jar当做Library加到工程中。具体过程如下:1,做一个Maven工程,创建一个叫“config.txt”文件在src/main/re原创 2016-11-07 10:33:35 · 2448 阅读 · 0 评论 -
深入浅出Java Annotation(元注解和自定义注解)
http://josh-persistence.iteye.com/blog/2226493一、基本概述 Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。 更通俗的意思是为程序的元素(类、方转载 2016-11-04 10:07:41 · 375 阅读 · 0 评论 -
Java Annotation认知(包括框架图、详细介绍、示例说明)
http://www.cnblogs.com/skywang12345/p/3344137.html摘要Java Annotation是JDK5.0引入的一种注释机制。网上很多关于Java Annotation的文章,看得人眼花缭乱。Java Annotation本来很简单的,结果说的人没说清楚;弄的看的人更加迷糊。我按照自己的思路,对Annotation进行了整理。理转载 2016-11-04 10:06:14 · 298 阅读 · 0 评论 -
关于Java的静态块和和非静态块(构造块)的加载顺序
http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html顺序如下:父类静态初始化块子类静态初始化块父类非静态初始化块父类的构造方法子类非静态初始化块子类的构造方法如果有静态方法的调用的话,静态初始化块和静态方法的调用的先后顺序,是根据写在类中的先后顺序来的。例如:下面的的情况的话,转载 2016-02-26 13:49:14 · 526 阅读 · 0 评论 -
关于泛型的一些文章
http://www.cnblogs.com/mengdd/archive/2013/01/21/2869778.htmlhttp://www.cnblogs.com/lwbqqyumidi/p/3837629.html转载 2016-02-24 21:51:51 · 384 阅读 · 0 评论 -
如何使Metrics好用
1,在项目上点右键,选上“Enable Metrics”2,把Workspace下的metricsdb.db删除掉 例:Workspace\.metadata\.plugins\net.sourceforge.metrics\metricsdb.db3,看看在Eclipse上能不能运行Metrics原创 2013-01-07 16:41:10 · 794 阅读 · 0 评论