Java基础
slimina
这个作者很懒,什么都没留下…
展开
-
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3转载 2013-12-30 17:54:22 · 1066 阅读 · 0 评论 -
Javad的Validator框架概述
Java EE 6 提出了 Bean Validation 规范,使用注解的方式对 Java Bean 进行约束验证,不局限于某一层次或者某一编程模型,灵活易用。下边将向您系统的介绍该规范的各种特性。概述 Bean Validation 规范Bean 是 Java Bean 的缩写,在 Java 分层架构的实际应用中,从表示层到持久化层,每一层都需要对 Java Bean 进行业务转载 2015-01-29 15:48:18 · 9027 阅读 · 0 评论 -
Java反射(java.lang.reflect)
学习一下java.lang.reflect包下有关反射的相关内容,提供类和接口,以获得关于类和对象的反射信息。在安全限制内,反射允许编程访问关于加载类的字段、方法和构造方法的信息,并允许使用反射字段、方法和构造方法对其底层对等项进行操作。原创 2015-01-29 12:18:45 · 5465 阅读 · 0 评论 -
Javad的Validator框架使用
结合hibernate-validator(除此之外Spring Framework自带的validation,struts validation等),说明Validator框架使用。原创 2015-01-29 16:01:41 · 1555 阅读 · 0 评论 -
Java并发包concurrent之CountDownLatch
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。换句话说,你可以并行的执行一段代码,并设置等待所有的线程都执行完的点,然后再一起开始执行。原创 2015-02-03 21:55:11 · 995 阅读 · 0 评论 -
基于JavaMail和freemarker模板的邮件发送java工具包
JavaMail提供给开发者处理电子邮件相关的编程接口,可以方便地执行一些常用的邮件传输。核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。该工具包结合freemarker模板,方便邮件模板的原创 2013-12-31 11:37:47 · 2127 阅读 · 0 评论 -
InfoQ精选文档
从InfoQ精选出的文档,详情参考:http://www.infoq.com/cn原创 2015-01-18 14:45:44 · 1692 阅读 · 0 评论 -
Java多线程系列文档目录
(一) 基础篇01. Java多线程系列--“基础篇”01之 基本概念02. Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式03. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别04. Java多线程系列--“基础篇”04之 synchronized关键字05. Java多线程系列-原创 2015-01-18 14:34:55 · 1244 阅读 · 0 评论 -
Java常见内存溢出异常分析
Java虚拟机规范规定JVM的内存分为了好几块,比如堆,栈,程序计数器,方法区等,而Hotspot jvm的实现中,将堆内存分为了三部分,新生代,老年代,持久带,其中持久带实现了规范中规定的方法区,而内存模型中不同的部分都会出现相应的OOM错误,接下来我们就分开来讨论一下。转载 2015-01-21 09:15:08 · 2333 阅读 · 0 评论 -
ThreadLocal 那点事儿
ThreadLocal,直译为“线程本地”或“本地线程”,如果你真的这么认为,那就错了!其实,它就是一个容器,用于存放线程的局部变量,我认为应该叫做 ThreadLocalVariable(线程局部变量)才对,真不理解为什么当初 Sun 公司的工程师这样命名。早在 JDK 1.2 的时代,java.lang.ThreadLocal 就诞生了,它是为了解决多线程并发问题而设计的,只不过设计得有些转载 2015-01-06 09:35:31 · 872 阅读 · 0 评论 -
java实现生成缩略图
有时候我们为了让用户快速预览所有图片,在上传图片时同时生产缩略图。java可以使用Graphics2D绘制出缩略图。原创 2015-03-26 21:06:20 · 4858 阅读 · 0 评论 -
线程Thread.join()介绍,实现线程工作时间统计
Thread.join():阻塞 “调用线程” 直到某个线程结束。原创 2015-03-10 21:06:49 · 2063 阅读 · 0 评论 -
使用java钩子,应用退出时释放资源
用户关闭关闭程序,需要做一些善后的清理工作,但问题是,某些用户不会按照推荐的方法关闭应用程序,肯能导致善后工作无法进行。像tomcat调用server的start方法启动容器,然后会逐级调用start。当发出关闭命令是会启动关闭功能,但是关闭可能会有一些意外产生,导致应用程序没有进入到我们制定的关闭方法去。如何解决这个问题呢,使得即使有意外也能正常进入关闭流程。原创 2015-03-10 20:59:10 · 3489 阅读 · 0 评论 -
JNA介绍及使用JNA监听鼠标实现
JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。原创 2015-03-10 21:03:57 · 8555 阅读 · 3 评论 -
Arrays.asList使用
将一个数组转化为一个List对象,一般会想到Arrays.asList()方法,这个方法会返回一个ArrayList类型的对象。但这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类,继承了java.util.AbstractList这个类,存储数组元素的a变量是final类型的,由此判断,这个静态内部类是不能做任何内部元素的添加、更新、删除操作,否则就会报UnsupportedOperationException异常。原创 2015-03-12 21:54:48 · 2036 阅读 · 0 评论 -
基于java反射对泛型的理解
Java 泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。原创 2015-01-29 14:35:47 · 1023 阅读 · 0 评论 -
java动态代理--代理接口无实现类
使用 1.接口定义原创 2014-10-14 14:32:04 · 5175 阅读 · 1 评论 -
java中关于Map的九大问题
通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的。下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题。0、将Map转换为List类型在java中Map接口提供了三种集合获取方式:Key set,,value set, and key-value set.。它们都可以通过构造方法或者addAll()方法来转换为List类型。下面代码就说明了转载 2014-08-12 08:49:09 · 873 阅读 · 0 评论 -
读取文本文件,利用java正则转换为pojo
1.文件在工程位置:2.pojo对象 Person.javaimport java.io.Serializable;public class Person implements Serializable{ private static final long serialVersionUID = 1L; private String id; private Str原创 2013-12-30 17:50:57 · 1311 阅读 · 0 评论 -
Java调用DOS命令
import java.io.*; public class DT { public static void main(String[] args) throws IOException { String command="ipconfig"; Ru原创 2010-04-15 22:59:00 · 889 阅读 · 0 评论 -
java 递归实现通配符匹配
/** * * 字符串中存在星号(表示多个字符)匹配 * @param pattern 包含星号的字符串 * @param str 要匹配的字符串 * @return */ public static boolean wildcardStarMatch(String pattern,原创 2014-01-03 10:14:51 · 2976 阅读 · 0 评论 -
StringBuilder、StringBuffer和String三者的联系和区别
StringBuilder、StringBuffer和String三者的联系和区别1. String 类String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。String a = “a”; //假设a指向地址0×0001a = “b”;//重新赋值后a指向地址0×0002,但0×0001地址中保存的”转载 2014-01-03 10:22:17 · 750 阅读 · 0 评论 -
基于反射机制的服务代理调用
实现原理:通过传递服务bean的名称、执行的方法及参数,通过反射机制进行调用返回。优点:只需对外提供一个接口服务即可,只要容器中操作服务bean,通过接口即可调用,增加服务bean无需增加对外接口。原创 2014-01-10 14:50:02 · 2041 阅读 · 0 评论 -
JAVA注解的几大作用及使用方法详解
java 注解,从名字上看是注释,解释。但功能却不仅仅是注释那么简单。注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种:生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等跟踪代码依赖性,实现替代配置文件功能转载 2014-03-06 19:54:55 · 993 阅读 · 0 评论 -
package-info.java 作用及用法详解
package-info.java对于经常使用外部包的程序员来说应该是熟悉陌生人。因为不是专门开发包的程序员很少需要关注它,而又常在其他包中看到他,眼很熟。它到底有哪些特性和作用及如何使用呢?程序员讲究动口不如动手,何不创建一个试试。打开Eclipse,new class,哦!创建失败,‘-’ 作为特殊字符不允许在类名称里出现,什么情况。原来它本来就是个特例当然得用特别方法创建,记事本上,好了成功转载 2014-03-06 19:55:25 · 1402 阅读 · 0 评论 -
Java6新特性之ServiceLoader
ServiceLoader,从META-INF/services这个目录下的配置文件加载给定接口或者基类的实现,ServiceLoader会根据给定的类的full name来在META-INF/services下面找对应的文件,在这个文件中定义了所有这个类的子类或者接口的实现类,返回一个实例。下面使用抽象类实现一下:新建一个抽象类AbstractTest:package cn.se原创 2014-03-07 13:44:28 · 1126 阅读 · 0 评论 -
Java7的新特性尝试
1.switch 支持字符串(以前只支持整型和字符型变量)public static void main(String[] args) { String s = "test"; switch (s) { case "test": System.out.println("---- test -----"); break; case "main": System.原创 2014-03-13 14:20:01 · 668 阅读 · 0 评论 -
java1.5新特性 ConcurrentHashMap、Collections.synchronizedMap、Hashtable讨论
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提转载 2014-03-14 16:27:35 · 838 阅读 · 0 评论 -
JAVA常见错误处理方法
java.lang.OutOfMemoryError: Java heap space原因:Heap内存溢出,意味着Young和Old generation的内存不够。解决:调整java启动参数-Xms -Xmx 来增加Heap内存。java.lang.OutOfMemoryError: unable to create new native thread原因:Stack空间不转载 2014-03-27 13:04:49 · 2031 阅读 · 0 评论 -
instanceof, isinstance,isAssignableFrom的区别
instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值,则测试结果总是false。 形象地:自身实例或子类实例 instanceof 自身类 返回true 例: String s=new String("javaisland"); System.out.println(s instanceof St转载 2014-03-31 15:40:17 · 726 阅读 · 0 评论 -
ThreadLocal实现线程范围的共享变量
threadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另一个线程中则共享另一份数据,线程的数据是独享的。 ThreadLocal的实现原理:每个线程调用全局ThreadLocal的set方法,就相当于往其内部的Map中增加一条记录,key是各自的线程,value是各自的线程调用set放进的值。在线程结束时可以调用转载 2014-03-22 15:49:00 · 745 阅读 · 0 评论 -
Map集合类比较
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap.Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取原创 2014-05-06 08:37:37 · 988 阅读 · 0 评论 -
java延时队列使用
在实际的业务中会遇到如下场景:1)过1分钟失败任务重试2)过1小时发送邮件等等,需要延时一段时间处理,在java的juc包中给我提供了DelayQueue延时队列处理,过一会该处理的事儿。DelayQueue,一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部是延迟期满后保存时间最长的Delayed元素。如果延迟都还没有期满,则队列没有头部,并且 poll 将返回 n原创 2016-12-10 00:51:51 · 12457 阅读 · 2 评论