
J2SE
conquer0715
追求卓越,成功会在不经意间追上你
展开
-
基础排序算法 java 实现(冒泡、选择、插入、快排、归并、堆排)
package demo;import java.util.Arrays;public class SortUtil { private static void printArr(int[] arr) { System.out.println(Arrays.toString(arr)); } private static void checkSor原创 2018-01-23 17:00:15 · 551 阅读 · 0 评论 -
IoC and DI JSR-299 JSR-330
前言JSR 299: Contexts and Dependency Injection for the JavaTM EE platformJSR 330: Dependency Injection for Java从名称来看可知 JSR 299 主要作用于 JavaTM EE(在JavaSE环境下功能会打折扣),JSR 330 则作用于任何 Java 环境理解与认知原创 2016-05-24 15:47:57 · 3568 阅读 · 0 评论 -
Guice:轻量级IOC/DI 容器
Guice 简介Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。Guice采用Java加注解的方式进行托管对象的配置,充分利用IDE编译器的类型安全检查功能和自动重构功能,使得配置的更改也是类型原创 2016-04-27 18:08:31 · 4800 阅读 · 0 评论 -
Apache Shiro:Java 认证授权框架 SSO 单点等了解决方案
Shiro简介Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权。使用 Shiro,您就能够为您的应用程序提供安全性而又无需从头编写所有代码。Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比springSecurity,可能没有Spring Security做的功能强大,但原创 2016-04-27 16:59:43 · 8518 阅读 · 1 评论 -
java7 实用的新特性:编程技巧
出处:http://it.deepinmind.com/java/2014/04/21/10-jdk-7-features-to-revisit-before-you-welcome-java-8.html回顾下Java 7有哪些新特性,如果你还记得的话,Java 6是没有增加任何特性的,只是JVM的一些改动以及性能的提升,不过JDK 7倒是增加了不少有助于提升开发效率的很给力原创 2016-04-27 14:10:11 · 4063 阅读 · 0 评论 -
JPA规范:Java Persistence API 标准规范用法示例
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA 是 JCP定义的一种规范,要使用此规范,必需配合该规范的实现,开源实现有 apache的 openjpa,还有使用更广泛的hibernate jpa实现。JPA是目前比较流行的一种ORM技术之一,所以他拥有ORM技术的各种特点,当原创 2016-04-26 15:36:05 · 15677 阅读 · 4 评论 -
Java 覆盖系统类:endorsed 技术
之前接触过 Java.ext.dirs 用于扩展jdk的系统库,那么 -Djava.endorsed.dirs 又有什么神奇的作用呢?java提供了endorsed技术:关于endorsed:可以的简单理解为-Djava.endorsed.dirs指定的目录面放置的jar文件,将有覆盖系统API的功能。可以牵强的理解为,将自己修改后的API打入到虚拟机指定的启动API中,取原创 2016-04-25 16:45:47 · 8926 阅读 · 0 评论 -
JSR 303 - Bean Validation
关于 Bean Validation在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和一些管理的问题,比如说语义的一致性等。为了避免这样的情况发生,最好是将验证逻原创 2016-04-25 15:59:04 · 3145 阅读 · 0 评论 -
回调函数(callback Function)
一、概念介绍 回调函数(callback Function),顾名思义,就是为被调用方所反过来调用的函数,即调用的时机等等都完全由被调用方控制,也就是回调方法自己不使用是给别人使用的,比如说客户程序Client调用了服务端Server中的某个函数serverMethod,然后Server又在一个不确定的时机反过来调用Client中的某个函数才clientMethod,那么这个被Serve原创 2013-04-06 12:52:07 · 7056 阅读 · 0 评论 -
ServiceLoader : JAVA SPI 机制
简单来说就是通过配置文件指定接口的实现类。当我们开发一套框架、一套机制、一个插件或一套API时候,如果需要第三方的服务支持,可以直接写死到代码里面,但这种方式耦合太强,不利于切换到其它服务,好的方法是写一个配置文件指定服务的实现方,幸运的是java的spi机制已经帮我们做好了。原创 2016-02-24 10:56:51 · 8032 阅读 · 0 评论 -
java7 AIO / NIO 2 小记
JSR 203 习惯上称为 NIO.2,主要包括新的:异步 I/O(简称 AIO);Multicase 多播;Stream Control Transport Protocol(SCTP);文件系统 API;以及一些 I/O API 的更新原创 2016-03-02 16:21:20 · 6981 阅读 · 0 评论 -
Java7 Fork-Join 框架:任务切分,并行处理
概要现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机、多核处理器已被广泛应用。在未来,处理器的核心数将会发展的越来越多。虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优势。为了充分利用多CPU、多核CPU的性能优势,级软基软件系统应该可以充分“挖掘”每个CPU的计算能力,决不能让某个CPU原创 2016-04-29 15:56:52 · 6328 阅读 · 0 评论 -
Java ClassLoader 深入理解
ClassLoader问题剖析做为一个java开发人员,我们都曾经受这些异常的折磨:ClassNotFoundException、NoClassDefFoundError、ClassCastException、ClassCircularityError,究其根源,我们不可避免地要面对java的大人物: ClassLoader !ClassLoader基础java程序不是本地的可执行程序,它的执行依原创 2016-04-29 18:19:26 · 10336 阅读 · 3 评论 -
线程按次序执行队列任务
package demo;import java.util.LinkedList;import java.util.Queue;import java.util.concurrent.CountDownLatch;public class ThreadOrder { static class TaskProcess implements Runnable { p原创 2018-01-23 17:00:29 · 2456 阅读 · 0 评论 -
Hashtable 的并发异常行为
问题与 HashMap 相比,Hashtable 被描述为线程安全的 键-值 存储集合,似乎可以放心地应用于多线程的环境,阅读 JDK 中 Hashtable 的源码可以看到,它通过在操作方法上面添加 synchronized 关键字实现线程安全,但是,其仍然有可能发生并发异常(throw new ConcurrentModificationException()),错误发生的场景:使用了迭代原创 2018-01-23 17:21:26 · 1234 阅读 · 0 评论 -
Java 脚本 引擎 jsr223 与 javascript 文件交互
JDK1.6开始,Java引入了jsr223,就是可以用一致的形式在JVM上执行一些脚本语言,如js脚本,本文详细说明了java脚本引擎的使用方式,并贴出了大量的经过实际测试的java源代码,请各位参考:Java 脚本引擎技术相关内容,都已经在Java代码中以注释的形式说明了,请测评:package jaas;import javax.naming.Context;impor原创 2017-10-25 16:39:58 · 4615 阅读 · 0 评论 -
Java认证和授权服务 JAAS 之 授权
前提请先看,JAAS 认证部分: http://blog.youkuaiyun.com/conquer0715/article/details/78204889配置文件和源码jaas.config/** 登录配置 **/Sample { jaas.MyLoginModule required debug=true;};jaas.policygrant cod原创 2017-10-11 17:00:18 · 7190 阅读 · 1 评论 -
Java认证和授权服务 JAAS 之 认证
LoginModule 它是认证服务器端的实现,用于验证客户端的信息,实现者实现 javax.security.auth.spi.LoginModule 接口的 login、commit、abort、logout 方法来完成用户的登录和登出操作,示例代码:package jaas;import javax.security.auth.Subject;import jav原创 2017-10-11 16:09:06 · 5340 阅读 · 0 评论 -
Map 排序 TreeMap 陷阱
HashMap的基于hash表的实现机制决定了他非常快的检索速度,但也定了“不能排序”的标牌,工作中如果需要排序就要使用TreeMapTreeMap是可排序map,可对ke进行排序,那么,是不是任何我们原来使用HashMap实现的业务都能使用TreeMap进行替换排序呢?答案是:“否”原因在于,它们判断重复元素机制不同:HashMap通过hashcode和equals方法来判断重复,以原创 2016-08-17 19:35:40 · 4596 阅读 · 0 评论 -
Java 字节码 工具 javassist
1、javassist是基于源码级别的API比基于字节码的ASM简单。2、基于javassist开发,不需要了解字节码的一些知识,而且其封装的一些工具类可以简单实现一些高级功能。比如HotSwaper。原创 2016-07-21 17:27:06 · 9333 阅读 · 0 评论 -
罕见类加载冲突问题:LinkageError
问题描述假设有C1类和C2类都依赖C0,C1和C2分别用不同的2个类加载器加载,而这两个类加载器都能在自己的类加载路径中加载到C0,这个时候如果在C1中调用C2的某个方法(注:这个方法的签名中依赖了C0)就会出现LinkageError错误。用例模拟及分析冲突的依赖类,模拟问题描述中的C0package loader;public class ConflictDependence {}发生错误的原创 2016-06-02 18:50:36 · 6763 阅读 · 0 评论 -
JAX-WS(JWS):Java WebService
Java 的 WebService概述本文主要介绍java6以后的JAX-WS(JWS),Java 的 WebService框架有JWS、Axis2、XFire、CXF、Spring WS,简单介绍:1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用W原创 2016-04-21 16:40:47 · 6456 阅读 · 0 评论 -
YAML 技术研究
YAML预研文档YAML概要YAML vs XMLYAML vs JSONYAML用途脚本语言序列化配置文件调试YAML缺陷与不足YAML语法与范例YAML的JAVA实现使用SnakeYAML实现使用JYaml实现YAML预研文档YAML概要YAML是”YAML Ain’t a Markup Language”(YAML不是一种置标语言)的递归缩写,早先YAML的意思其实原创 2016-04-29 18:32:01 · 5670 阅读 · 0 评论 -
Java 多线程 并发 锁 Java线程面试题 Top 50
多线程 并发 锁 同步 原子转载 2015-12-01 19:57:35 · 8586 阅读 · 1 评论 -
java 多线程同步辅助类(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)
java 多线程同步辅助类(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)原创 2013-05-31 14:56:34 · 6686 阅读 · 0 评论 -
Java脚本语言引擎接口
JSR 233 为 Java 设计了一套脚本语言 API。这一套 API 提供了在 Java 程序中调用各种脚本语言引擎的接口。任何实现了这一接口的脚本语言引擎都可以在 Java 程序中被调用。在 Mustang 的发行版本中包括了一个基于 Mozilla Rhino 的 JavaScript 脚本引擎。通过jdk6以后提供的脚本引擎,java语言和脚本语言可以非常方便的交互,给我们进行 软件原创 2015-01-17 15:20:31 · 5702 阅读 · 0 评论 -
Java命令行解析工具Apache CLI
Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种:POSIX(Portable Operating System Interface of Unix)中的参数形式,例如 tar -zxvf foo.tar.gzGNU原创 2015-01-17 17:28:29 · 12087 阅读 · 1 评论 -
java的System.getProperty()方法可以获取的值
原文:http://blog.youkuaiyun.com/kongqz/article/details/3987198java.versionJava 运行时环境版本java.vendorJava 运行时环境供应商java.vendor.urlJava 供应商的 URL原创 2013-07-16 14:49:24 · 3491 阅读 · 0 评论 -
java本地调用 - JNA技术
#JAVA 本地调用 - JNA技术##JNI回顾JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。我们知道,使用JNI调用.dll/.so共享类库是非常非常麻烦和痛苦的。如果有一个现有的.dll/原创 2014-06-23 12:56:28 · 8920 阅读 · 2 评论 -
ClassLoader问题剖析
#ClassLoader问题剖析 做为一个java开发人员,我们都曾经受这些异常的折磨:ClassNotFoundException、NoClassDefFoundError、ClassCastException、ClassCircularityError,究其根源,我们不可避免地要面对java的大人物: ClassLoader !##ClassLoader基础java程序不原创 2014-07-28 14:11:12 · 6227 阅读 · 0 评论 -
JNDI 介绍和使用
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的统一的API。JNDI使用通用接口来访问不同种类的目录服务;JNDI可以同时连接到多个命名或目录服务上;JNDI建立逻辑关联,允许把名称同Java对象或资源关联起来,而不必知道对象或资源的物理ID。JNDI架构提供了一组 标原创 2013-08-17 18:35:09 · 6314 阅读 · 0 评论 -
《Java程序性能优化》-笔记
第一章:Java性能调优概述 1.最有可能成为系统瓶颈的计算资源: 网络操作、磁盘I/O、异常(异常的捕获和处理非常消耗资源)、数据库、锁竞争、CPU(计算性程序)、内存 2.根据“木桶原理”,必须对系统中表现最差的组件进行优化,而不是其它表现良好的。 3.提供系统性能应该尽力去降低串行化比重提高并行化比重,而不是一味的增加CPU数量。 4.调优层次: 设计原创 2014-04-08 11:16:09 · 4794 阅读 · 0 评论 -
Java内省机制IntroSpector
内省(IntroSpector)是Java语言对JavaBean 类属性、事件的一种处理方法。例如类A中有属性name, 那我们可以通过getName,setName 来得到其值或者设置新的值。通过getName/setName 来访问name属性,这就是默认的规则。Java中提供了一套API 用来访问某个属性的getter/setter方法,通过这些API 可以使你不需要了解这个规则原创 2015-01-17 15:39:27 · 5028 阅读 · 0 评论 -
java 枚举
如果某“数据集”的元素是稳定的而且个数是有限的(如东南西北、周一到周日、春夏秋冬)可以使用枚举类,个人理解枚举类是预初始化了指定实例的java类,枚举列有很多有趣的用法,伴随EnumSet(高性能Set)和EnumMap(高性能Map)的加入,枚举类变得越来越有意思,如果我们有Set集合或Map集合key有了枚举类的特征(稳定、数目限定等)可以考虑代替HashMap和HashSet加入应用场景。原创 2013-06-03 18:05:47 · 3423 阅读 · 0 评论 -
Callable/Future Runnable 以及 FutureTask 用法
Callable/Future Runnable 以及 FutureTask 用法原创 2013-10-07 05:50:32 · 6337 阅读 · 0 评论 -
java 原子量Atomic举例(AtomicReference)
并发原子量原创 2013-10-07 02:43:40 · 17438 阅读 · 3 评论 -
一个 AES 加解密工具类
import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import java.nio.charset.Charset;import java.security.SecureRandom;public class AESUtil { //用户密钥原创 2015-04-14 19:20:18 · 3756 阅读 · 0 评论 -
Java发送邮件javax.mail
在下载使用javax.mail的jar包时候,注意:有的jar没有包含sun的实现,只包含了api,这类jar名称通常为javax.mail-api-x.x.x.jar,在使用smtp协议发邮件过程中会报错:java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger另一种jar是包含了sun的实现的,名称通常为javax.m原创 2015-04-02 14:35:25 · 49308 阅读 · 12 评论 -
Java 远程方法调用 RMI
概述rmi是一种多个计算机之间利用远程对象互相调用实现双方通信的机制,rmi使得一台计算机上的对象调用另外一台计算机上的对象非常方便。著名的 EJB 就是基于rmi实现的,可以说 rmi 是java建立 分布式应用 的方便途径和有力武器!RMI开发步骤1.建立远程调用接口并声明方法,注意:这是双方通信的接口,需要继承java.rmi.Remote2.开发远上述程接口的实现类,注原创 2015-03-26 18:43:32 · 5298 阅读 · 0 评论 -
java集合类结构梳理及用法简析
PS:以下内容基于 JDK7List 结构图: Set 结构图:Queue 结构图:Map 结构图:用法简析:Java的集合分为了四类:List Set Queue Map,每类都有不同的实现,有基于数组实现的,有基于链表实现的,有基于xx树实现的,不同的实现虽在功能上可以相互替代但都有各自的应用场景,如基于数组的实现擅长原创 2013-10-07 04:58:30 · 9379 阅读 · 0 评论