- 浏览: 289279 次
- 性别:
- 来自: 天津
最新评论
-
狼子六:
已经开始用了
Java 枚举7常见种用法 -
相约的旋律:
方法一下面的"public static fianl ...
Java 枚举7常见种用法 -
kiddy2012:
...
[转载]程序员装B指南 -
fancy105:
写得很好,简单明了双全面!
Java 枚举7常见种用法 -
he_wen:
请问一下 G1算法是否在线上使用了?
Garbage First(G1) 日志分析工具
文章列表
对程序员
们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用。
01. 变得有耐心
02. 保持健康
03. 拥抱变化带来的不适应
04. 学习一门新的
1.总体介绍:
CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上-XX:+UseConcMarkSweepGC
,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。
2.CMS过程:
初始标记(STW initial mark)
并发标记(Concurrent marking)
并发预清理(Concurrent precleaning)
重新标记(STW remark)
并发清理(Concurrent sw ...
fail-fast:快速失败
一般情况下,在对集合进行迭代(用Iterator)的时候,如果发现集合中的元素被修改了,那么迭代器会抛出ConcurrentModificationException。
下面是一个例子:
List<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
list.add("list_" + i);
}
for (String str : list) {
list.remove(str);
}
执行上面代码会抛 ...
CMS GC with -XX:+PrintGCDetails and -XX:+PrintGCTimeStamps prints a
lot of information. Understanding this information can help in fine
tuning various parameters of the application and CMS to achieve best
performance.
Let's have a look at some of the CMS logs generated with 1.4.2_10:
39.910 ...
VisualVM介绍
VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。
在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它来监控JDK1.4以上的JVM
下载地址:http://visualvm.java.net/download.html
配置jetty------匿名
修改启动脚 ...
0x00 nop 什么都不做
0x01 aconst_null 将null推送至栈顶
0x02 iconst_m1 将int型-1推送至栈顶
0x03 iconst_0 将int型0推送至栈顶
0x04 iconst_1 将int型1推送至栈顶
0x05 iconst_2 将int型2推送至栈顶
0x06 iconst_3 将int型3推送至栈顶
1.URL乱码
有的是,不可避免要在URL上传中文,用一些框架(spring MVC,struts)可以解决。但是我们也可以自己手动解决。
String url = "http://www.softbeta.iteye.com?name=小武";
// url编码
url = "http://www.softbeta.iteye.com?name=" + java.net.URLEncoder.encode("小武");
System.out.println("url:" + url);
// url解 ...
/**
*
* 查询
*
* @throws IOException
* @throws ParseException
*/
@Test
public void search() throws IOException, ParseException{
//创建分词器
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_34);
//索引库
Directory dir = FSDirectory.open(new File(indexPath));
//IndexSearcher
I ...
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.docume ...
原创地址:http://blog.lichengwu.cn/java/2011/09/26/the-usage-of-enum-in-java/
JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。
用法一:常量
在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
public enum Color {
RED, GREEN, BLANK, YELLOW
}
用法二:switc ...
Java虚拟机管理的内存包括以下几个运行时数据区域:
1.程序计数器:
程序计数器是一块比较小的内存空间,是当前线程执行的字节码行号指示器。Java
多线程是通过线程轮流切换来实现的,所以每个线程都有一个自己独立的程序计数器,各个线程的程序计数器互补干扰。
2.Java虚拟机栈
Java虚拟机栈描述的是
Java
方法的执行模型:每个方法执行的时候都会创建一个帧栈用于存放局部变量表,操作栈,动态链接,方法出口等信息。一个方法的执行过程,就是这个方法对于帧栈的入栈出栈过程。
3.本地方法栈
本地方法栈与Java
虚拟机栈功能相似。
Ja ...
类从加载到虚拟机到卸载,它的整个生命周期包括:加载(Loading),验证(Validation),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using)和卸载(Unloading)。其中,验证、准备和解析部分被称为连接(Linking)。
加载:
在加载阶段,虚拟机主要完成三件事:
1.通过一个类的全限定名来获取定义此类的二进制字节流。
2.将这个字节流所代表的静态存储结构转化为方法区域的运行时数据结构。
3.在Java
堆中生成一个代表这个类的
java.lan ...
原文地址:http://blog.lichengwu.cn/jvm/2011/09/19/jvm-garbage-collection-algorithms/
在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”。
1.引用计数器算法:
引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1 ,当引用失效的时候,计数器 -1 ,当计数器为 0 的时候, JVM 就认为对象不再被使用,是“垃圾”了。
引用计数器实现简单,效率高;但是不能解决循环引用问问题(A 对象引用 B 对象, B 对象又引用 A 对象,但是 A,B 对象已不被任何其他对象引 ...
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语。指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会;但是这种语法对语言的功能并没有影响。
Java中的泛型,变长参数,自动拆箱/装箱,条件编译等都是,下面做简单的介绍和分析。
泛型
与C#中的泛型相比,Java的泛型可以算是“伪泛型”了。在C#中,不论是在程序源码中、在编译后的中间语言,还是在运行期泛型都是真实存在的。Java则不同,Jav ...