![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
J2SE
glgl2424
希望能从这里学到有用的东西
展开
-
反射性能优化
http://www.cnblogs.com/fish-li/archive/2013/02/18/2916253.html转载 2014-07-10 23:27:21 · 646 阅读 · 0 评论 -
关于线程池
很多时候需要用多线程做处理,但是又不想自己管理线程的启动等管理,最好的办法是委托给现成的线程池来处理。spring提供了线程池,bean配置如下:bean id="mailTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> property name="原创 2013-12-16 19:31:22 · 513 阅读 · 0 评论 -
BlockingQueue介绍
阻塞队列介绍:http://wsmajunfeng.iteye.com/blog/1629354转载 2014-03-06 07:30:25 · 435 阅读 · 0 评论 -
阻塞队列(BlockingQueue)源码分析
无意中看到concurrent包中有这个类,且原创 2014-05-06 08:43:39 · 667 阅读 · 0 评论 -
关于Spring AOP无法嵌套拦截
public List getAll(){getPrintLog(); ////此方法的作用是想证明:Spring AOP 无法做到嵌套拦截return issueDao.getAll();}原因很简单,被拦截的类的方法执行其实是通过由spring为该类生成的代理类调用指定方法实现的,如下://IssueServiceProxy serviceProxy;//ser原创 2014-03-29 08:57:22 · 918 阅读 · 0 评论 -
关于并发
今天遇到多线程并发访问数据库的问题,思来想去,只好对临界区加锁,通过synchronized关键字。问题来了,我改对什么加锁?根据实际情况,是想对某个临界区(也就是一段代码)加锁,但是加锁的对象是资源,而不是代码啊。所以考虑将这段代码弄成一个方法,对方法加同步锁。可是方法也不是资源啊,对方法加锁的实质是什么呢?其实对方法加锁是对方法所属资源的加锁,如果是静态方法,那么其实是锁了他的类型原创 2013-12-16 19:31:06 · 484 阅读 · 0 评论 -
如何创建和使用线程
学习多线程,肯定先要学习如何在java中创建一个线程并且使用它,下面有几种常见的创建方式:原创 2013-12-16 20:07:24 · 588 阅读 · 0 评论 -
关于java.lang.OutOfMemory的分类
参见:http://www.360doc.com/content/10/0110/20/633992_13197797.shtml转载 2014-02-18 08:32:59 · 547 阅读 · 0 评论 -
编写高性能java代码的注意点
从一片文章里看到的一些提高java代码性能的要点,筛选了一些对自己比较有用的或者容易犯错的:1. StringUtils是apache提供的,在使用split时效率较高,因为有缓存。JAVA自带的String.split效率较低,建议在频繁调用的地方不要使用正则表达式2. 尽量不要随意使用静态变量,因为static变量不会被gc及时释放,只有当所在的类被卸载时,才会被释放3. 在循环的原创 2013-12-16 19:31:04 · 534 阅读 · 0 评论 -
NIO工作原理
http://developer.51cto.com/art/201112/307463.htm转载 2014-04-10 20:02:55 · 463 阅读 · 0 评论 -
ThreadLocal使用场景及其优势
曾经很疑惑ThreadLocal是干什么用?什么场景下要用?查了几篇文章,都说它的优势是线程安全,想必他的作用就是为了线程安全吧。仔细理解后发现,原来我们常用的局部变量和静态变量,在某种情况下无法满足要求,比如,我要求缓存一个变量,这个时候你肯定会说搞一个静态map存一下就OK了,但是有几个问题:第一:其他线程擅自修改我的这个静态map怎么办?第二:静态map之间并发访问怎么办?原创 2014-04-24 17:19:26 · 3669 阅读 · 0 评论 -
JVM调优总结专题
http://developer.51cto.com/art/201201/312639.htm转载 2014-04-10 20:03:46 · 537 阅读 · 0 评论 -
Condition-线程通信更高效的方式
http://blog.csdn.net/ghsau/article/details/7481142转载 2014-07-09 21:20:50 · 638 阅读 · 0 评论 -
在堆溢出时保存快照:-XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError该配置会把快照保存在user原创 2014-05-26 10:50:01 · 8354 阅读 · 0 评论 -
JVM实用参数:新生代垃圾回收
http://ifeve.com/useful-jvm-flags-part-5-young-generation-garbage-collection/转载 2014-07-03 20:20:21 · 533 阅读 · 0 评论 -
Java 8学习资料汇总
http://www.infoq.com/cn/news/2014/06/java8-learning-resources转载 2014-06-26 22:33:20 · 571 阅读 · 0 评论 -
Java多线程并发编程学习
Java多线程并发编程学习笔记关键字:java.util.concurrent;Executors;Executor;ExecutorService;ScheduledExecutorService;ThreadFactory;Callable;AtomicLong;CountDownLatch;Lock;1 线程与任务1.1 理解 线程是比进程更小的实体,可以独立运行,能共原创 2014-05-05 11:11:52 · 717 阅读 · 0 评论 -
用实例揭示notify()和notifyAll()的本质区别
http://www.cnblogs.com/armyao/archive/2010/12/27/1917989.html转载 2014-04-29 07:58:16 · 476 阅读 · 0 评论 -
虚拟机类加载机制
虚拟机类加载机制《深入理解Java虚拟机 第2版》1 机制1.1 类的加载1.1.1 概述 Java语言中,类的加载、连接和初始化都是在程序运行期间完成的,这种策略使得java语言具备在运行时动态扩展功能的特性,动态扩展的来源可以是从网络端下载字节码,也可以是用户手动拷贝进jvm等。JSP、OSGi等技术,都是利用了在运行期动态加载的特性。 类从被加载到原创 2014-04-25 23:11:06 · 594 阅读 · 0 评论 -
JAVA导出xls文件
使用HSSF,对应的jar包是:poi-3.8-20120326.jar //生成excel文档 HSSFWorkbook wk = new HSSFWorkbook(); // 生成工作区 HSSFSheet sheet = wk.createSheet("mysheet");//创建单元格样式对象 wk.createCell原创 2013-12-16 19:31:20 · 584 阅读 · 0 评论 -
关于对XML的处理
目前看到的对XML的处理有2套,一套是使用jdom,另一套是使用dom4jjdom示例: SAXBuilder builder = new SAXBuilder(false);InputStream xmlInput = new FileInputStream("xxx.xml");Document doc = builder.build(xmlInput);Eleme原创 2013-12-16 19:31:27 · 448 阅读 · 0 评论 -
关于JSON的使用
在页面端,参数可以组装成JSON的格式,然后通过Ext.encode(str),变成字符串,作为参数发送请求。如:param = ["a":"123","b":"[4,5,6]"]url:XXX?param=Ext.encode(param); 在后台,JSON对象的处理有多个jar可选,我们选择org.json.simple包,包括几个常用的对象:JSONValue :提供将原创 2013-12-16 19:31:18 · 515 阅读 · 0 评论 -
Java并发教程(Oracle官方资料)
http://www.iteye.com/magazines/131转载 2014-04-19 09:03:08 · 481 阅读 · 0 评论 -
Java NIO原理 图文分析及代码实现
http://weixiaolu.iteye.com/blog/1479656转载 2014-04-19 08:55:19 · 451 阅读 · 0 评论 -
JVM运行时数据分析(内存中堆、栈的分布情况)
JVM运行时数据1. 结构图2. Heap Java堆是整个JVM共享的,堆的大小取决于配置项(-Xmx-Xms)来指定,堆的最大内存取决于操作系统和硬件环境,比如2G/32位系统,一般也就用800M左右,配多了操作系统会禁止JVM启动的。同时,堆空间并不需要物理上连续的空间,只要逻辑上连续即可。 堆空间主要分为2个区域,一个原创 2014-04-20 14:00:52 · 958 阅读 · 0 评论 -
JVM调优总结系列---转子ITEYE
http://hllvm.group.iteye.com/group/wiki/?show_full=true转载 2014-04-19 08:58:46 · 561 阅读 · 0 评论 -
Callable接口实现线程执行结果的返回
很多时候线程执行完需要返回一个结果,此时可以实现Callable接口,该接口支持泛型,需要实现call函数。需要通过ExecutorService.submit()进行调用,在线程返回时,会自动执行call方法。submit方法会携带返回值,放到List>中。源码定义如下:public interface Callable { V call() throws Except原创 2014-04-19 08:28:29 · 864 阅读 · 0 评论 -
HashMap实现原理分析
http://blog.csdn.net/vking_wang/article/details/14166593转载 2014-05-04 22:16:00 · 446 阅读 · 0 评论