`
文章列表
1.垃圾回收算法种类    引用计数法  很难处理垃圾对象的循环引用,java中没有使用这种算法   标记-清除     标记-清除算法是现代垃圾回收算法的思想基础。标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。一种可行的实现是,在标记阶段,首先通过根节点,标记所有从根节点开始的可达对象。因此,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。   标记压缩法     标记-压缩算法适合用于存活对象较多的场合,如老年代。它在标记-清除算法的基础上做了一些优化。和标记-清除算法一样,标记-压缩算法也首先需要从跟节点开始,对所有可达对象 ...
1.jvm跟踪设置   打印GC信息 -verbose:gc -XX:+PrintGC   -XX:+PrintGCDetails 打印详细GC信息 -XX:+PrintGCTimeStamp打印GC发生的时间戳   Xloggc:log/gc.log 记录gc日志   -XX:+PrintHeapAtGC打印GC前后堆使用情况 -XX:+TraceClassLoading 监控类加载 -XX:+PrintClassHistogram 按下Ctrl+Break后打印所有类的使用情况   2.堆的分配参数设置 -Xmx20m -Xms5m ,意思是最大堆内存和分 ...
 1.jvm的启动,先看一副图  这个是jvm的启动流程,从加载jvm的配置到找到JVM.dll找到我们的程序的主入口main方法的过程。   2.JVM的整体架构  这个是jvm的基本结构,jvm有的功能这里都展现出来的,加载class文件到方法区,生 ...
 1.maven常用命令mvn archetype:create :创建 Maven 项目mvn compile :编译源代码mvn test-compile :编译测试代码mvn test : 运行应用程序中的单元测试mvn site : 生成项目相关信息的网站mvn clean :清除目标目录中的生成结果mvn package : 依据 ...
记性逐渐不好,有的东西忘记,本文复习备忘用,先从最基本的java基础集合开始,集合分为Collection接口和Map接口,这两个接口又衍生出了很多子接口,下面对着2个接口分别作介绍。 一,collection接口 直接实现Collection的类和继承他的接口下图  可以看到有4个接口4个类,下面主要对AbstractCollection类和List,Queue,Set接口进行逐一研究 Collection接口中定义的方法如下图   实现他的类和继承他的接口都这些方法,这些方法的具体功能就不多介绍,其中很多方法的实现都由AbstractCollection来完成,Abstract ...

java 枚举

Java enum的用法详解   用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BLANK, YELLOW }  
往数据库里插入大量的数据,当然是批量插入最高效,我们设定一个题目,每次把数据放入队列,当数据大于1000条或者时间大于5分钟后把数据批量入库 队列处理代码: package bathQueue; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ArrayBlockingQueue; /** * <p>Title: BatchQueue.java</p> * <p>Description: </p> * & ...
    例子用java多线程模拟生产者消费者的例子,上代码,代码有注释说的清楚: 仓库 package day5; /** * <p>Title: Warehouse.java</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2014</p> * @author 雪含心 * @date 2014年2月7日 */ public class Warehouse { private int MAXNUM = 100; pr ...
redis基本命令官网上介绍的很齐全,而且可以模拟redis命令,这里的命令都我试验过的,备忘用的 1.redis事务 命令: > MULTI OK > INCR foo QUEUED > INCR bar QUEUED > EXEC 1) (integer) 1 2) (integer) 1 这几个命令解释下,multi表示事务的开始,像hibernate一样,中间可以执行若干个操作,然后exec表示提交事务, 中间有一步出错所有的执行 都会回滚 java代码如下: @Test public void testTran ...
Redis作者谈Redis应用场景   毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。 下面是一篇新鲜出炉的文章,其作者是Redis作者@antirez,他描述了Redis比较适合的一些应用场景,NoSQLFan简单列举在这里,供大家一览:
我们再做项目的时候,有很多模块是可以重复使用的,maven提供了很好的解决模块之间相互引用的方法,具体流程如下: 1.建立共用模块 2.把共用模块安装到本地maven仓库中(mvn install) 3.再引用项目中确定安装公共模块的坐标 4.完成,可以调用公共模块的方法和功能了 先说一下maven的基本命令   创建一个简单的Java工程:mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example创 建一个java的web工程:mvn archetype:create -Darchetyp ...
最近做一个关于附近的人查询,参考了很多资料:现在市面上主流的做法 1.用数据库 2.用类存 3.用lucene 我选用的是用mongodb自带的查附近的人的方法,代码如下: DBObject db = new BasicDBObject("cityId", JSON.parse("{$orderby:{cityId: -1}}")); DBObject near = new BasicDBObject( "loc",JSON.parse("{$near : [ " + lon + ",&q ...
网络传输的时候采用的是流的形式,所以一个对象要发出去,并且在服务端要收到一个完整的对象,就要相应的编码解码的过程,这个例子向您展示netty的ObjectEncoder和ObjectDecoder编码解码的过程,代码写的比较简单而且注释比较多就直接用代码了 Server 服务器端的启动程序 package com.my.day2; import java.net.InetSocketAddress; import java.util.concurrent.Executors; import org.jboss.netty.bootstrap.ServerBootstrap; ...
lucene是做什么的网上可以搜到很多资料,就不多说了。我想说了有一下几点 1.为什么不直接用数据库而选用lucene 因为lucene是全文搜索引擎,所以它比较擅长从一个词语中反过来找到那个词在哪篇文章中,是反着的,假如用数据,从2000个字中like那个字段效率很低,而lucene通过生成索引反过来的方式,这样可以提高查询的效率。 2.建立索引主要涉及到的方法和类 为了对文档进行索引,Lucene 提供了五个基础的类,他们分别是 Document, Field, IndexWriter, Analyzer, Directory。下面我们分别介绍一下这五个类的用途:   Doc ...
最近一段时间一直研究聊天程序,学习了nio的知识,以后会和大家分享的,今天写了一个可以运行看到结果的netty helloworld程序,这个程序虽然简单,但从这个程序可以知道netty的运行流程,希望对初学者有所帮助。 第一步:建立一个maven项目,或者读者可以自己导入netty依赖包 <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.5.6.Final&l ...
Global site tag (gtag.js) - Google Analytics