- 博客(32)
- 资源 (28)
- 收藏
- 关注
原创 Effective Java学习(泛型)之——优先考虑泛型化方法
就如类可以从泛型中受益一般,方法也是一样。静态工具方法尤其适合于泛型化。Collections中的所有的“算法”方法,例如(binarySearch和sort)都泛型化了。 编写泛型化的方法与编写泛型化的类相似。例如下面这个方法,他返回两个集合的联合: public static Set union(Set set1,Set set2){ Set resul...
2013-09-29 18:40:16 256
原创 Effective Java学习(泛型)之——优先使用泛型化
一般来说,将集合声明参数化,以及使用JDK所提供的泛型和泛型方法,这些都不太困难。编写自己的泛型会比较困难一些,但是值得花时间去学习如何编写? 这个简单例子堆栈的实现: public class Stack { private Object[] elements; private int size = 0; private static ...
2013-09-29 17:13:15 101
原创 Effective Java学习(泛型)之——List列表优先于数组
数组与泛型相比,有两个重要的不同点,首先,数组是协变的(covariant)。这个词听起来有点吓人,其实只是表示如果Sub为Super的子类型,那么数组类型Sub[]就是Super[]的子类型。相反,泛型则是不可变的(invariant):对于任意两个不同类型Type1和Type2,List<Type1>既不是List<Type2>的子类型,也不是List&l...
2013-09-29 16:07:54 253
原创 Effective Java学习(泛型)之——消除非受检警告
先来介绍一些术语。声明中具有一个或者多个类型参数的类或者接口,就是泛型(generic)类或者接口。例如,List就只有单个参数类型E,表示列表的元素类型。从技术角度来看,这和接口的名称应该是指现在的List<E>(“读作E的列表”),但是人们经常把它简称为List。泛型类和接口统称为泛型。 用泛型编程时,会遇到许多编译器的警告:非受检强制转换化警告、非受检方法调用警告、非受...
2013-09-29 14:32:30 150
原创 Effective Java学习(创建和销毁对象)之——消除过期对象引用
当你从手工管理内存语言(比如C++/C)转换到具有垃圾回收功能的语言的时候,程序员的工作变的更加容易,因此当你用完了对象之后,它们会被自动回收。当你第一次经历对象回收功能的时候,会觉得这简直有点不可思议。这很容易给你留下这样的印象,认为自己不再需要考虑内存管理的事情了。其实不然!!! 考虑下面这个简单的栈实现的例子 import java.util.Arrays;...
2013-09-27 20:56:13 137
原创 Effective Java学习(创建和销毁对象)之——通过私有化构造器强化不可实例化的能力...
有时候,你可能需要编写只包含静态方法和静态域的类。这些类的名声很不好,因为有些人在面向对象的语言中滥用这样的类编写过程化程序。尽管如此,他们也确实有他们的特有的用处。我们可以利用这种类,以java,lang,Math或者java.util.Arrays的方式,把基本类型的值或者数组类型上的相关方法组织起来。我们也可以通过java,util.Collentions的方式,把实现特定接口的...
2013-09-27 19:39:27 99
原创 Effective Java学习(创建和销毁对象)之——避免创建不必要的对象
一般来说,最好的重用对象而不是在每次需要的使用就创建一个相同的对象出来。重用方式既快速、又流行。如果对象是不可变的(immutable),它就始终可以被重用。 作为一个极端的反面例子,考虑下面的语句: String s = new String("hello"); 该语句每次执行时都会创建一个新的String对象实例,但是这些创建的对象的动作全都是不...
2013-09-27 19:16:43 67
原创 通过 HashMap、HashSet 的源代码分析其 Hash 存储机制
通过 HashMap、HashSet 的源代码分析其 Hash 存储机制集合和引用就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量。实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算法决定集...
2013-09-27 10:09:50 71
原创 数组与链表到底有啥区别?
数组与链表的区别: 数组就像身上编了号站成一排的人,要找第10个人很容易,根据人身上的编号很快就能找到。但插入、删除慢,要望某个位置插入或删除一个人时,后面的人身上的编号都要变。 链表就像手牵着手站成一圈的人,要找第10个人不容易,必须从第一个人一个个数过去。但插入、删除快。插入时只要解开两个人的手,并重新牵上新加进来的人的手就可以。删除一样的道理 1.从逻辑结构来看...
2013-09-27 09:56:15 89
原创 Spring 的优秀工具类盘点
文件资源操作:文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等。我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来说,JDK 的这些操作类所提供的方法过于底层,直接使用它们进行文件操作不但程序编写复杂而且容易产生错误。相比于 JDK 的 File,Spring 的 Resource 接口(资源概念的描述接...
2013-09-24 11:29:57 72
原创 Hibernate的乐观锁与悲观锁 及应用
锁( locking ) 业 务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某 个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “锁” ,即给我们选定的目标数据上锁,使...
2013-09-24 11:02:26 81
原创 Hibernate 的HQL,QBC 查询语言
1.HQL:(Hibernate Query Language) 是面向对象的查询语言 1.实体查询 public void testQueryAllDept(){ String hql="from Employee"; //hql="from com.sh.Entity"; Query query=session.createQuery(hql); ...
2013-09-24 11:00:55 97
原创 Hibernate 缓存机制
1数据缓存:(date caching) 是一种将数据暂时存于内存缓存区中的技术,缓存通常是影响系统性能的关键因素 2.ORM的数据缓存策略有3种 1.事务级缓存: 分为 数据库事务和 应用级事务,是基于Session的生命周期的实现,每个session都会在内部维持一个数据缓存, 随session的创建和消亡. 2.应用级缓存:有多个事务共享,在SessionFactory层实现,由...
2013-09-24 10:50:31 91
原创 Tomcat 性能优化(连接数、线程、JVM、dir)
Tomcat的server.xml中Context元素的以下参数应该怎么配合适 <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" acceptCount="100" /> maxThreads="150"
2013-09-24 10:40:11 152
原创 让Apache Shiro保护你的应用
在尝试保护你的应用时,你是否有过挫败感?是否觉得现有的Java安全解决方案难以使用,只会让你更糊涂?本文介绍的Apache Shiro,是一个不同寻常的Java安全框架,为保护应用提供了简单而强大的方法。本文还解释了Apache Shiro的项目目标、架构理念以及如何使用Shiro为应用安全保驾护航。 什么是Apache Shiro?Apache Shiro(发音为“shee-ro...
2013-09-23 17:51:09 89
原创 超实用的Java数组技巧攻略
本文分享了关于Java数组最顶级的方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用! 0. 声明一个数组(Declare an array) String[] array01 = new String[5];String[] array02 = new String[]{"a","b","c", "d", "e"};...
2013-09-23 15:32:09 61
原创 37条常用Linux Shell命令组合
序号任务命令组合1删除0字节文件find . -type f -size 0 -exec rm -rf {} \;find . type f -size 0 -delete2查看进程,按内存从大到小排列ps -e -o “%C : %p : %z : %a”|sort -k5 -nr3按cpu利用率从大到小排列ps -e -o “%C...
2013-09-23 14:43:12 88
原创 如何保证Linux服务器的安全
很少见有人马上为一台新安装的服务器做安全措施,然而我们生活所在的这个社会使得这件事情是必要的。不过为什么仍旧这么多人把它拖在最后?我已经做了相同的事情,它常常可以归结为想要马上进入有趣的东西。希望这篇文章将向大家展示,确保服务器安全没有你想得那样难。在攻击开始后,俯瞰你的“堡垒”会相当享受的。 这篇文章为Ubuntu 12.04.2 LTS而写,你也可以在任何其他Linux分发版...
2013-09-23 14:37:57 137
原创 将会改变未来IT世界的十种编程语言
这里要说的都是革新,说这些的目的就是要保持关注最新技术。如果你是一个程序员,想要探寻未来技术,那这篇文章就是你的必读之选。我们这里列出了10种编程语言,10种将会改变IT世界工作方式的编程语言。这些语言已经在开始改变IT界的景象。看看吧: Dart语言 这种语言由谷歌制造,用来替代Javascript,弥补Javascript在web应用中大量使用时出现的缺点。对于Dart语言,...
2013-09-23 14:03:37 91
原创 Flex利用as3xls-swc导入Execl并读入展示数据
ceshi.xls数据格式如下所示: flex实现如下:<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xm...
2013-09-20 21:01:15 155
原创 Flex利用as3xls-swc导出Execl文件
首先要先下载as3xls-swc文件 导入到项目中 <?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xml...
2013-09-20 19:42:20 216
原创 Flex将XML数据转换ArrayList
ph.xml如下:<?xml version="1.0" encoding="utf-8"?><data value="XX通讯录"> <user> <bn>办公室</bn> <xm>冯XX</xm> <
2013-09-20 18:06:32 114
原创 Flex将XML数据编程tree树形
txl.xml如下: <?xml version="1.0" encoding="utf-8"?><data value="XX通讯录"> <data1 value="办公室"> <xm value="冯XX" bg="4278952XX" tel="13
2013-09-20 18:01:38 120
原创 JAVA自定义注解与通过反射去解析注解参数
一,概念: 注解是 JDK5 引入的新特性,最初衍生自代码注释,但现在早已经超出了注释的范畴,以至于我很惶恐,不敢使用注释这个词汇来描述他,尽管现有的很多资料里仍然称其为注释。如果说反射使得很多技术实现(动态代理、依赖注入等)有了基础,那么注解就是使这些技术实现变得平民化的基础。 从 class 文件规范中可以看出, JDK5 开始, class 文件已经引入了注解描述片...
2013-09-11 11:44:36 412
原创 nginx: unrecognized service
http://askubuntu.com/questions/257108/trying-to-start-nginx-on-vps-i-get-nginx-unrecognized-service/257109#257109
2013-09-09 09:16:48 236
原创 JAVA几种排序原理及代码实现
一,直接插入排序 稳定的排序,时间复杂性为o(n^2),空间复杂度为O(1)。 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 ...
2013-09-04 11:45:19 102
原创 HttpClientUtil封装二
package com.web.util;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.nio.charset.Charset;import java.util.ArrayList;import java.util.HashMap;im...
2013-09-04 09:59:30 83
原创 HttpClientUtil封装一
需要添加相应的jar包package com.http_request.httpclient;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import org.apache.commons.httpclient.HttpClient;import...
2013-09-04 09:58:23 86
原创 Maven学习(一)之 maven命令大全 mvn
Maven库:http://repo2.maven.org/maven2/Maven依赖查询:http://mvnrepository.com/ 一,Maven常用命令:1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName...
2013-09-03 14:40:19 96
原创 JAVA集合学习(三)认识Map之Hashtable
hashtable和hashMap大致相同 hashtable线程安全hashMap非线程安全 下面简单测试下hashtable使用package com.sg.map;import java.util.Hashtable;public class TestHashtable { public static void main(String[] args)...
2013-09-02 14:59:48 76
原创 JAVA集合学习(二)认识Map之HashMap
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素正确分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代集合视图所需的时间与 HashMap 实例的...
2013-09-02 14:47:00 65
原创 JAVA集合学习(一)认识Map之LinkedHashMap
Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。注 意,如果在映射中重新插入 键,则插入顺序不受影响。(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新...
2013-09-02 14:14:36 101
JAVA utils工具类
2014-01-09
javascript封装的通用解析和操作xml文件数据工具类(含测试使用代码)
2013-12-04
封装通用的Spring3+Struts2+MyBatis3的CRUD+条件分页查询,Spring+Quartz调度,FunctionCharts图像化工具
2013-11-21
MyEclipse/Eclipse自定义模板XML
2013-11-20
封装通用的Spring3+Struts2+MyBatis3的CRUD+条件分页查询
2013-11-18
实战Nginx:取代Apache的高性能Web服务器
2013-09-09
java常用设计模式及JDK与CGLIB实现动态代理区别(源码)
2013-08-14
java各种常用的工具类封装 源码
2013-08-13
HttpConnectionTool工具类
2013-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人