
Java
文章平均质量分 71
iloveyin
这个作者很懒,什么都没留下…
展开
-
Java对中文字符串排序处理
ArrayList nameList = new ArrayList();nameList.add("心立方 2011-10-24 41岁家庭主妇挑战世界最高峰");nameList.add("不见不散 2011-10-24 当爱情遭遇选择恐惧症");nameList.add("万有引力");nameList.add("康熙来了 2011-10-24 婚礼上最大咖的伴郎王力宏");原创 2011-10-26 10:55:00 · 3989 阅读 · 0 评论 -
slf4j和log4j配置
在选用 slf4j-api-1.7.7.jar + slf4j-log4j12-1.7.7.jar + log4j-1.2.17.jar 时输出(前提是有相应的配置文件log4j.properties,放在根目录,一般是src文件夹下)到文件logs.log和errors.log1 基本格式如下:#配置根Loggerlog4j.rootLogger =原创 2014-08-14 16:06:44 · 3053 阅读 · 1 评论 -
maven命令总结
创建Maven的普通java项目:mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=pjoName创建Maven的Web项目:mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=mav原创 2015-09-30 11:53:57 · 614 阅读 · 0 评论 -
JVM理论与实践【JVM参数调优】
在生产环境下对Java虚拟机JVM进行参数调优是必不可少的。作为普通的开发人员,如果对JVM的参数优化有一定的了解,即使是从知识体系的完整性来考虑也是大有裨益的。另外,了解JVM的运行原理也有助于编写性能良好的程序,而不是让代码成为服务器CPU和内存的杀手。 【Windows平台的参数调优】 通常我们都在Windows系统下面进行软件开发工作,因此在Window转载 2015-12-17 18:44:34 · 2465 阅读 · 1 评论 -
JVM理论与实践【类加载器基础】
【 类加载器简介】 类加载器(classloader)用于将类的class文件加载到JVM虚拟机。 JVM有三种加载器,引导类加载器器(bootstrap classloader)、扩展类加载器(extensions classloader)和应用类加载器(application classloader),另外还可以继承java.lang.ClassLoader类创建自定义加载转载 2015-12-17 18:51:31 · 2470 阅读 · 0 评论 -
JVM参数优化
当堆需要扩展的时内存不够会报 OutOfMemeryError: Heap(堆内存溢出) ,这时可能设置堆大小参数: -Xms=10M 设置堆的最小大小 -Xmx=20M 设置堆的最大大小 -Xmn=3M 设置年轻代的大小,如果设置太大会导致老年代太小,所以官方推荐为整个堆的3/8大小原创 2015-12-17 17:47:18 · 2248 阅读 · 0 评论 -
JVM内存区域
一.JVM内存区域 JVM内存区域主要分为: Java堆,虚拟机栈,本地方法栈,程序计数器,方法区.下面来点一下各个区域的作用.java堆:存放对象实例的区域.在JVM启动的时候创建,是垃圾回收器主要的管理区域.可进行扩展的,通过-Xmx设置堆最大内存.和-Xms堆最小内存来设置,当扩展时,内存不够,则会抛出OutOfMemeryError.虚拟机栈:原创 2015-12-17 17:57:34 · 2184 阅读 · 0 评论 -
JVM理论与实践【堆内存结构与垃圾回收】
在生产环境下,通常都需要对JVM进行参数优化,其中对垃圾回收器的参数优化是一个非常重要的一方面。下面重点介绍Java的堆内存,垃圾回收算法,常用的垃圾回收器以及Java堆内存的分配策略,这些内容将作为对JVM进行垃圾回收参数优化的重要基础。然后通过简单示例验证Java的垃圾回收机制。 【Java堆内存结构】 Java的堆(Heap)是存放对象的内存区域。在逻辑上转载 2015-12-17 18:20:59 · 2711 阅读 · 0 评论 -
JVM监控工具:jps、jstat、jinfo、jmap、jhat、jstack使用介绍
一、jps(JVM Process Status Tools)jps是参照Unix系统的取名规则命名的,而他的功能和ps的功能类似,可以列举正在运行的饿虚拟机进程并显示虚拟机执行的主类以及这些进程的唯一ID(LVMID,对应本机来说和PID相同),他的用法如下:jps [option] [hostid]其中hostid默认为本机,而option选项包含以下选项原创 2015-12-17 16:02:01 · 3046 阅读 · 0 评论 -
JVM理论与实践【内存结构】
学Java三年有余,对自己来说JVM一直以来都是黑匣子,看不懂,摸不透。作为一个有技术情节、略带些许完美主义情节的攻城狮,不了解JVM似乎有时候夜不能寐,总觉得有一个未知的世界自己需要探索。理论为实践服务,学习JVM不是因为它好玩,其实一点都不好玩,只是因为它有用罢了。实用主义者总比快餐主义让人踏实。 好吧,好奇心害死猫(Curiosity kills the cat),中秋佳节还面对电脑,真转载 2015-12-17 17:29:07 · 2193 阅读 · 0 评论 -
jvm垃圾收集
垃圾回收历史,早在Lisp 就有了垃圾收集的功能.垃圾收集的问题主要在三个地方:哪些对象需要回收,在什么时候回收对象,如何回收对象.一.哪些对象需要回收 判断哪些对象需要回收的算法主要有两种,引用计数算法,可达性分析算法. 1.引用计数算法: 一个变量引用一个对象的时候,该对象的引用计数器就加1,有多少个变量引用原创 2015-12-17 18:03:34 · 2315 阅读 · 0 评论 -
spring mvc 中web.xml配置信息解释
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰。 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -原创 2016-02-19 23:19:32 · 2847 阅读 · 0 评论 -
Spring 3.x中三种Bean配置方式比较
以前Java框架基本都采用了XML作为配置文件,但是现在Java框架又不约而同地支持基于Annotation的“零配置”来代替XML配置文件,Struts2、Hibernate、Spring都开始使用Annotation来代替XML配置文件了;而在Spring 3.x提供了三种选择,分别是:基于XML的配置、基于注解的配置和基于Java类的配置。下面分别介绍下这三种配置方式;首先定义一个用原创 2016-03-30 20:54:25 · 3127 阅读 · 0 评论 -
spring3注解详解
标签将自动开启“注解实现Bean依赖注入”支持。标签来表示需要要自动注册Bean定义,而通过base-package属性指定扫描的类路径位置。 用于开启Spring对@AspectJ风格切面的支持。 Xml代码 beans xmlns="http://www.springframework.org/schema/beans" xmlns:xs原创 2016-03-30 20:46:04 · 5594 阅读 · 0 评论 -
webx3快速创建sample应用
一、创建应用 请打开命令行工具(Windows cmd或Unix/Linuxbash),我以windows为例: 如果打算将应用生成到d:\temp目录下,先cd d:\temp。 输入如下命令: mvn archetype:generate -DgroupId=com.alibaba.webx -DartifactId原创 2016-02-22 10:07:24 · 2264 阅读 · 0 评论 -
java程序员基本技能
1. Java基础: Collection: Set(HashSet,LinkedHashSet,SortedSet,TreeSet),Map(HashMap,LinkedHashMap,SortedMap,TreeMap,ConcurrentHashMap),List(ArrayList,LinkedList),Queue(LinkedList) 正则表达式:原创 2016-03-10 15:14:29 · 2890 阅读 · 0 评论 -
apache commons工具集简介
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我这几年做开发过程中自己用过的工具类做简单介绍。 组件功能介绍BeanUtils提供了对于JavaBean进行各种操作,克隆对象,属性等等.BetwixtXML与Java对象之间相互转换.Codec处理常用的编码方法的工具类原创 2016-03-10 15:33:32 · 2661 阅读 · 0 评论 -
ibatis配置详解
ibatis实例配置 一个典型的配置文件如下(具体配置项目的含义见后): xml version="1.0" encoding="UTF-8" ?> PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0/ "[url]http://www.ibatis.com/dtd/[/url]sql-map-c原创 2016-03-11 12:57:17 · 3716 阅读 · 0 评论 -
jdk环境一键安装配置
mkdir -p /usr/local/java; wget http://100.100.144.187/jdk-7u51-linux-x64.gz; \ tar xzvf jdk-7u51-linux-x64.gz -C /usr/local/java/; \ echo "export JAVA_HOME=/usr/local/java/jd原创 2014-02-25 16:13:14 · 2939 阅读 · 0 评论 -
Java中new和newInstance的区别
1、类的加载方式不同 在执行Class.forName("a.class.Name")时,JVM会在classapth中去找对应的类并加载,这时JVM会执行该类的静态代码段。在使用newInstance()方法的时候,必须保证这个类已经加载并且已经连接了,而这可以通过Class的静态方法forName()来完成的。 使用关键字new创建一个类的时候,这个类可以没有被加载,一般也转载 2012-09-10 23:47:51 · 4207 阅读 · 0 评论 -
jdk环境变量设置
windows xp下配置JDK环境变量: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08; 2.安装完成后,右击“我的电脑”,点击“属性”; 3.选择“高级”选项卡,点击“环境变量”; 4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓转载 2011-11-16 22:26:17 · 706 阅读 · 0 评论 -
Java IO学习笔记:概念原理
一、概念 Java中对文件的操作是以流的方式进行的。流是Java内存中的一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分。 二、分类 流的分类,Java的流分类比较丰富,刚接触的人看了后会感觉很晕。流分类的方式转载 2011-11-06 11:08:05 · 661 阅读 · 0 评论 -
Java IO学习笔记:字符流
字符流的处理和字节流差不多,API基本上完全一样,就是计量单位不同。另外字符流还提供一些其他的处理流,比如按行读取流、字符串流等等。特别注意,当文件有汉字时,注意编码格式://设置流的编码格式,防止乱码 InputStreamReader isr = new InputStreamReader( new FileInputStream("f:/poem.txt"转载 2011-11-06 11:45:31 · 855 阅读 · 0 评论 -
Java IO学习笔记:字节流
字节流是最基本的流,文件的操作、网络数据的传输等等都依赖于字节流。而字符流常常用于读取文本类型的数据或字符串流的操作等等。 关于字节流的API,没什么好说的,看看就知道了。这里挑几个关键点: 一、InputStream的API 1、public int read()从输入流读取下一个数据字节。返回 0 到 255 范围内的 int 字节值。如转载 2011-11-06 11:11:09 · 699 阅读 · 0 评论 -
JAVA NIO 简介
1. 基本 概念 IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。 所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 ) 2. Java 标准 io 回顾 Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方原创 2011-11-29 11:25:24 · 1659 阅读 · 1 评论 -
Statement和PreparedStatement批量更新
1) addBatch()将一组参数添加到PreparedStatement对象内部。2) executeBatch()将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。Statement:1) addBatch(String sql)方法会在批处理缓存中加入一条sql语句。2) executeBatch()执行批处理缓存中的所有sql语句。注意:P原创 2011-11-10 08:57:05 · 4322 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知转载 2012-03-24 10:12:35 · 659 阅读 · 0 评论 -
JAVA高性能编程
1.这里比较一下ArrayList和LinkedList:ArrayList是基于数组,LinkedList基于链表实现。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。查找操作indexOf,lastIndexOf,c原创 2012-03-27 20:10:25 · 4816 阅读 · 2 评论 -
Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要原创 2012-03-27 20:54:07 · 886 阅读 · 0 评论 -
ArrayList,LinkedList,Vector的关系和区别
一、同步性ArrayList,LinkedList是不同步的,而Vector是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。二、数据增长从内部实现机制来讲Array原创 2012-03-27 19:49:52 · 1188 阅读 · 0 评论 -
HashMap和Hashtable的区别
导读: 1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashMap是Has原创 2012-03-27 20:49:25 · 1160 阅读 · 1 评论 -
Gson简要使用笔记
经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。下面是一个简单的例子:Person实体public class Person { private String name; private转载 2012-05-03 14:38:51 · 777 阅读 · 0 评论 -
Java中的五种单例模式实现方法
package singleton;/** * @author lei * 单例模式的五种写法: * 1、懒汉 * 2、恶汉 * 3、静态内部类 * 4、枚举 * 5、双重校验锁 * 2011-9-6 *//** *五、 双重校验锁,在当前的内存模型中无效 */class LockSingleton{ private volatile static LockSing转载 2012-05-18 18:24:06 · 782 阅读 · 0 评论 -
Eclipse插件的安装方法三则
做为当下最流行的开源IDE之一,Eclipse的一大优势就在于其无数优秀的插件。一个好的插件可以大大的提高我们的工作效率,学习如何安装Eclipse插件自然也是必修课了。下面介绍Eclipse插件的安装方法。Eclipse插件的安装方法大体有以下三种:第一种:直接复制法假设你的Eclipse的在(C:\eclipse), 解压你下载的 eclipse 插件或者安装eclip转载 2012-07-08 18:30:27 · 945 阅读 · 0 评论 -
slf4j配置实例
1、 简介SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF转载 2012-07-03 16:54:52 · 1331 阅读 · 0 评论 -
REST架构
REST的架构设计 REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。 REST架构遵循了CRUD原则,CRUD原则对于资源只需要四种行为:Crea转载 2012-08-22 11:33:40 · 1011 阅读 · 0 评论 -
深入研究Java类加载机制
类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行。研究类加载机制的第二个目的是让程序能动态的控制类加载,比如热部署等,提高程序的灵活性和适应性。 一、简单过程 Java程序运行的场所是内存,当在命令行下执行:java HelloWorld命令的时候,JVM会将HelloWorld.class加载到内存中,并转载 2012-09-10 23:41:17 · 977 阅读 · 0 评论 -
WebX框架解析及使用教程
WebX框架是阿里巴巴集团开发的,它建立在SpringEx的基础上,具有超强的扩展能力。一、Webx的层次结构(从里到外)(1)SpringExt:基于Spring,提供扩展组件的能力(2)Webx Framework:基于Servlet API,提供基础服务(3)Webx Turbine:基于Webx Framework,实现具体的网页功能二、Webx的初转载 2016-02-29 18:45:43 · 5409 阅读 · 0 评论