java
ak913
这个作者很懒,什么都没留下…
展开
-
Log4j tips
XML vs Properties conf:Properties can be defined by a properties file or by an XML file. Log4j looks for a file named log4j.xml and then for a file named log4j.properties.Both must be placed in转载 2012-09-04 16:49:11 · 793 阅读 · 0 评论 -
Tips of 垃圾回收 (GC)
绝大多数的对象都在young generation被分配,也在young generation被收回,当younggeneration的空间被填满,GC会进行minor collection(次回收),这次回收不涉及到heap中的其他generation,minor collection根据weak generational hypothesis(弱年代假设)来假设young generation转载 2012-09-18 17:09:29 · 759 阅读 · 0 评论 -
关于 Collection 接口
Collection: booleanadd(E e) 确保此 collection 包含指定的元素(可选操作)。如果此 collection 不允许有重复元素,并且已经包含了指定的元素,则返回 false booleanaddAll(Collection<? extends E> c) 将指定 collec转载 2012-09-19 12:02:47 · 695 阅读 · 0 评论 -
Java文件路径(getResource)
getResourceAsStream ()返回的是inputstreamgetResource()返回:URLClass.getResource("") 返回的是当前Class这个类所在包开始的为置Class.getResource("/") 返回的是classpath的位置getClassLoader().getResource("") 返回的是classpath的位置转载 2012-03-27 15:16:52 · 40331 阅读 · 2 评论 -
Java GC Performance Tuning
在我们的实践中, 常常会根据系统的实际情况,选用不同的GC collector,配合不同的参数来进行性能调整,这是一门专门的技术,称为GC Performance Tuning. Sun公司甚至有专门这样的tuning服务提供给一些客户.接下来笔者将结合自己的经验,详细谈谈如何进行tuning.见附2.4.1 Waysto measure GC PerformanceThrough转载 2012-06-19 16:39:20 · 974 阅读 · 0 评论 -
Using -Xss to adjust Java default thread stack size
Every thread created in a Java program has its own stack space. The stack space used is not allocated from the heap. Infact if you look at the OS report on the memory used by your JVM, you may notice转载 2012-09-18 16:53:54 · 2582 阅读 · 0 评论 -
Java 工具类
System:static voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length) 如果参数 src 和 dest 引用相同的数组对象,则复制的执行过程就好像首先将 srcPos 到srcPos+length-1 位置的组件复制到一个带有 length 组件的临时转载 2012-09-19 16:02:49 · 586 阅读 · 0 评论 -
JDK 动态代理
1. 首先定义一个接口(JDK的动态代理就是建立在接口编程上,如果一个类没有实现借口,JDK就不会帮你产生对应的动态代理类。但是可以借助CGLIB来直接修改二进制码)public interface UserDao { publicvoid save(Useruser);}2. 接口的实现类(真实业务的实现)public class UserDaoImpl转载 2012-09-19 18:13:28 · 477 阅读 · 0 评论 -
String 最大长度 及 String Pool
我们可以使用串接操作符得到一个长度更长的字符串,那么,String 对象最多能容纳多少字符呢?查看String的源代码我们可以得知类String中是使用域 count 来记录对象字符的数量,而count 的类型为 int,因此,我们可以推测最长的长度为 2^32,也就是4G。不过,我们在编写源代码的时候,如果使用 Sting str = "aaaa";的形式定义一个字符串,那么双引号里面的AS转载 2012-09-18 15:53:20 · 18932 阅读 · 0 评论 -
关于 Arrays
static ListasList(T... a) 返回一个受指定数组支持的固定大小的列表。返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组,类似的还有List接口的subList()。视图及原列表上的结构性修改要小心)此方法同Collection.toArray() 一起,充当了基转载 2012-09-09 20:46:11 · 400 阅读 · 0 评论 -
关于 Collections
static booleanaddAll(Collection<? super T> c, T... elements) 将所有指定元素添加到指定 collection 中。static intbinarySearch(List<? extends T> list, T转载 2012-09-18 19:06:48 · 552 阅读 · 0 评论 -
关于 Map 接口
Map: voidclear() 从此映射中移除所有映射关系(可选操作)。 booleancontainsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。 booleancontainsValue(Object value) 如果此映射转载 2012-09-19 14:07:09 · 442 阅读 · 0 评论 -
JVM GC 简介
转自http://program-think.blogspot.com/2009/04/java-performance-tuning-3-gc.html 上次的帖子讲到引用类型和基本类型由于内存分配上的差异导致的性能问题。那么今天就来聊一下和内存释放(主要是GC)有关的话题。 事先声明一下:虽说SUN公司已经被Oracle吞并了,但是出于习惯,同时也为了偷懒节省打字,以下仍然转载 2012-09-18 17:15:19 · 748 阅读 · 0 评论 -
JVM内存管理:深入Java内存区域与OOM
转自http://www.iteye.com/topic/802573Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述:对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又是执行最基础工作的劳动人民——拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。对于Ja转载 2012-09-18 16:37:48 · 1032 阅读 · 0 评论 -
VisualVM
VisualVM是jvm的可视化监控工具下载地址:http://visualvm.java.net/download.html如果在开发环境,使用什么样的工具是无所谓的,只要能得到结果就好。但是在生产环境里,却不能乱选择,因为这些工具本身就会耗费大量的系统资源,如果在一 个生产服务器压力很大的时候,贸然执行这些工具,可能会造成很意外的情况。最好不要在服务器本机监控,远程监控会比较好一些转载 2012-09-18 15:22:25 · 2449 阅读 · 0 评论 -
synchronized 和 Lock
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在等待了足够长转载 2012-09-27 22:42:21 · 839 阅读 · 0 评论 -
HashMap以及hash冲突知识
HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,HashMap采用链表来解决的。HashMap是线程不安全的,如果被多个线程共享的操作,将会引发不可预知的问题,据sun的说法,在扩容时,会引起链表的闭环,在get元素时,就会无限循环,后果是cpu100%。Open addressing和Chaini转载 2012-09-27 22:39:17 · 3828 阅读 · 0 评论 -
Spring thread safe
Sorry, but you have completely mixed 2 concepts -thread safety of application context (which is just normal Java object with its own methods) and thread-safety of the beans created by the context as转载 2012-09-06 15:15:33 · 594 阅读 · 0 评论 -
ThreadLocal 原理
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来转载 2012-09-19 17:12:01 · 701 阅读 · 0 评论