![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
youshu2011
这个作者很懒,什么都没留下…
展开
-
JavaEE程序员必读图书大推荐
下面是我根据多年的阅读和实践经验,给您推荐的一些图书:第一部分: Java语言篇1 《Java编程规范》 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下。对转载 2011-09-20 14:55:52 · 527 阅读 · 0 评论 -
Fastjson技术内幕
原文地址:http://code.alibabatech.com/blog/dev_related_1358/fastjson-inside.htmlJSON协议使用方便,越来越流行。JSON的处理器有很多,为什么需要再写一个呢?因为我们需要一个性能很好的JSON Parser,希望JSON Parser的性能有二进制协议一样好,比如和protobuf一样,这可不容易,但确实做转载 2015-01-31 21:30:53 · 409 阅读 · 0 评论 -
fastjson 序列化部分源码解析①
转自:http://www.iteye.com/topic/1098058fastjson官方地址: http://code.alibabatech.com/wiki/display/FastJSON/Home 从javaeye上看到了阿里一位人士写的fastjson,特别是其中如何将java对象序列化成json字符串这段。笔者比较关注,因为在笔者的项目中就用了一个json序转载 2015-02-04 10:04:49 · 500 阅读 · 0 评论 -
fastjson 序列化部分源码解析②
在论述完基本概念和总体思路之后,我们来到整个程序最重要的部分-性能优化。之所以会有fastjson这个项目,主要问题是为了解决性能这一块的问题,将序列化工作提高到一个新的高度。我们提到,性能优化主要有两个方面,一个如何将处理后的数据追加到数据储存器,即outWriter中;二是如何保证处理过程中的速度。 本篇从第一个性能优化方面来进行解析,主要的工作集中在类SerializeWriter转载 2015-02-04 10:07:07 · 1258 阅读 · 1 评论 -
趣说Visitor模式
假设有男人和女人两种元素,要分别打印出他们在不同状态时的不同表现。 用OO的思想把表现(行为)提取出来作为一个抽象方法,代码如下: 用if-else对状态进行判断 Person接口Java代码 public interface Person { public void action(String state);转载 2015-02-04 10:01:38 · 417 阅读 · 0 评论 -
Java中关于原子操作和volatile关键字
原帖:http://rwl6813021.javaeye.com/blog/349169 研究ThreadPoolExecutor的时候,发现其中大量使用了volatile变量。不知为何,因此做了一番查找,研究: 其中借鉴了很多网上资料。 在了解volatile变量作用前,先需要明白一些概念: 什么是原子操作? 所谓原子操作,就是"不可中断的一个或一系列操作"转载 2015-03-20 09:36:34 · 391 阅读 · 0 评论 -
Java多线程之Lock的使用
[java] view plaincopyprint?import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.转载 2015-03-20 08:59:26 · 417 阅读 · 0 评论 -
Java中的String为什么是不可变的? -- String源码分析
原文:http://www.2cto.com/kf/201401/272974.html什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他转载 2015-03-20 09:58:06 · 424 阅读 · 0 评论 -
Java 理论与实践: 正确使用 Volatile 变量
原帖:http://www.ibm.com/developerworks/cn/java/j-jtp06197.htmlJava 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。转载 2015-04-15 19:28:24 · 292 阅读 · 0 评论 -
通过分析 JDK 源代码研究 Hash 存储机制
原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-hash/通过 HashMap、HashSet 的源代码分析其 Hash 存储机制集合和引用就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量。转载 2015-04-20 17:31:46 · 328 阅读 · 0 评论 -
线程的同步和异步
原文地址:http://bibo531651225.iteye.com/blog/1819018多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线 程的处理的数据,而B线程又修改了A线程处理的数理。显然这是由于全局资源造成的,有时为了解 决此问题,优先考虑使用局部变量,退而求其次使用同步代码块,出于这样的安全考虑就必须牺牲 系统处理性转载 2015-05-05 17:23:57 · 528 阅读 · 0 评论 -
Jetty 的工作原理以及与 Tomcat 的比较
原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-jetty/#ibm-pconJetty 的基本架构Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添转载 2015-05-05 21:33:38 · 1032 阅读 · 0 评论 -
Java NIO 入门
原文地址:http://www.ibm.com/developerworks/cn/education/java/j-nio/在开始之前关于本教程新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的。NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的、面向块的 I/O。通过定义包含数据的类,以及通过以块的形式处理这些数据,NIO 不转载 2015-05-13 21:10:36 · 536 阅读 · 0 评论 -
【CSDN编程挑战】完全平方数的个数
挑战地址:http://hero.csdn.net/Question/Details?ID=608&&ExamID=603原创 2014-08-04 11:50:53 · 1259 阅读 · 0 评论 -
使用 Eclipse 调试 Java 程序的 10 个技巧
你应该看过一些如《关于调试的N件事》这类很流行的帖子 。假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间。由于这个原因,用这些时间来重视并了解所有使我们调试更方便的功能。那能为你省下一些时间,也将会使你的生活更安逸、轻松。同时也表明其它关于此主题的帖子也是很有价值的。第1条:不要调试太多 一个关于调试的疯狂声明作为开头。但它必须是要说的!尝试切分一下你那复杂转载 2013-04-10 17:06:55 · 495 阅读 · 0 评论 -
Java Map遍历方式的选择
1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value、遍历key、遍历v转载 2013-04-10 17:14:37 · 846 阅读 · 0 评论 -
JAVA类,JSP,Servlet获取工程路径
在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。另:在Jsp,S转载 2011-09-26 08:52:48 · 308 阅读 · 0 评论 -
利用ServletContextListener 获取spring上下文
你的需求是当服务器启动后加载一些数据,我们就可以使用ServletContextListener来满足需求传统方式view plainapp = new ClassPathXmlApplicationContext("xxx.xml")转载 2011-10-14 09:17:56 · 7420 阅读 · 1 评论 -
Java开源建站工具
美国程序员Jon Scott Stevens,公布了他的创业公司所使用的开发工具清单。他的语言平台是Java,开发项目是一个网站(还未上线)。所用到的工具都是开源的,可以免费得到。在目前的创业者之中,用Java作为网站开发语言的人似乎很少。这当然不是没有原因的,J转载 2011-10-05 16:21:55 · 338 阅读 · 0 评论 -
Java容器学习笔记(二) Set接口及其实现类的相关知识总结
在Java容器学习笔记(一)中概述了Collection的基本概念及接口实现,并且总结了它的一个重要子接口List及其子类的实现和用法。本篇主要总结Set接口及其实现类的用法,包括HashSet(无序不重复),LinkedHashSet(按放入顺序有序不重复),TreeSet(按红黑树方式有序不重复),EnumSet,ConcurrentSkipListSet(来自于java.util.c转载 2011-10-27 09:30:35 · 681 阅读 · 0 评论 -
好程序需要至少写两遍
导读:本文是从《Great code is written twice (or more)》这篇文章翻译而来。文章内容如下:最近这些年,越来越多的人开始转向敏捷开发。各种敏捷开发技术并不新鲜,大多是在80和90年代发展形成。但只是在最近这些年,程序员和(更重要的是)一些商业顾问,架构师,客户开始变得喜欢和拥抱敏捷开发。进化中的需求现在的一种普遍的认识是,在开始编码前,你不可能把所有转载 2011-11-01 14:16:20 · 251 阅读 · 0 评论 -
MyEclipse8.5安装SVN插件subclipse
1、从官网下载site-1.6.9.zip文件,网址是:subclipse.tigris.org, 2、从中解压出features与plugins文件夹,复制到E:\MyEclipse\myPlugin\svn里面(没有请新建此文件夹),其它的*.xml文件不要。 3、在E:\MyEclipse\MyEclipse8.5\dropins下新建文件svn.link,内容是:path=E:\\转载 2011-12-03 16:04:50 · 355 阅读 · 0 评论 -
eclipse简单配置使开发更快更流畅
设置工作空间的项目编码, 防止出现乱码 Window - Preferences - General - Workspace 将"Text file encoding"选为"Other" - "UTF-8" 改变现有项目的编码的步骤: 右击项目属性, 选择"Text file encoding"的编码 设置其它文件的编码 Window ->转载 2011-12-07 18:03:29 · 464 阅读 · 0 评论 -
webwork中的action如何取HttpServletRequest和HttpServletResponse对象
方法一: ActionContext ctx=ActionContext.getContext(); HttpServletRequest request=(HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST); HttpServletResponse response=(HttpServletResponse转载 2011-12-07 18:04:03 · 936 阅读 · 0 评论 -
java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
以下是从网上找到的关于堆空间溢出的错误解决办法:java.lang.OutOfMemoryError: Java heap space ===================================================使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space转载 2011-12-28 11:18:28 · 418 阅读 · 0 评论 -
如何优化Java程序设计和编码提高性能
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。AD:通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码转载 2012-02-14 11:12:02 · 394 阅读 · 0 评论 -
Java堆内存的10个要点
导读:对于程序员来说,知道堆空间,设置堆空间,处理堆空间的outOfMemoryError错误,分析heap dump是非常重要的。文中介绍了Java堆的学习教程以及Java堆内存(heap memory)的十个要点。文章内容如下:我刚开始学习Java编程时,可不知道什么是堆内存或堆空间(heap space),甚至根本不管对象创建时都放在哪里去了。正式了写一些程序后,经常会遇到j转载 2012-02-20 17:13:11 · 256 阅读 · 0 评论 -
Java编程中“为了性能”尽量要做到的一些地方
1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2. 尽量避免随意使用静转载 2012-04-22 20:41:37 · 389 阅读 · 0 评论 -
《Effective Java》中关于异常处理的几条建议
原文:http://www.cnblogs.com/skywang12345/p/3544168.html概要本章对Java中的异常进行介绍。内容包括:Java异常简介Java异常框架转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544168.html Java异常简介 Java异常是转载 2015-05-25 18:30:52 · 868 阅读 · 0 评论