• Java 枚举7常见种用法

    DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color {     RED, GREEN, BLANK, YELLOW   }   用法二:switch JDK1.6之前...
    作者:孤风一剑/2014年10月11日/分类:Java开发/阅读:906次/标签:, , /评论关闭
  • Java 出现内存溢出的定位以及解决方式

    1.Java虚拟机栈与本地方法栈 栈的大小控制参数时 -Xss。 Java虚拟机在栈中定义了两种异常,StrackOverFlowError和OutOfMemeryError。当请求栈的深度大于java虚拟机所允许的最大深度则抛出StrackOverFlowError;如果Java虚拟机在栈扩展时,没有申请到足够的空间时,则抛出OutOfMemeryError。 StrackOverFlowError:Java虚拟机在运行中,调用方法时,都要创建栈帧,当栈的空间...
    作者:孤风一剑/2014年9月29日/分类:Java开发/阅读:1,010次/标签:, /评论关闭
  • java浅入浅出之堆栈详解

    Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。 堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java...
    作者:孤风一剑/2014年9月23日/分类:Java开发/阅读:961次/标签:/评论关闭
  • jmap命令(Java Memory Map)的使用

    本文主要是介绍一下jmap常用的几个参数,作为自己的备忘录。注意如果是使用64位的JVM,使用jmap的时候,需要加-J-d64   1、打印每个class的实例数量,内存占用,类全名信息.live子参数,只统计活的对象数量. [plain] > jmap -histo:live 6824   [plain] num     #instances         #bytes  class name   --------------------------------------------- ...
    作者:孤风一剑/2014年9月17日/分类:Java开发/阅读:1,103次/标签:, , , /评论关闭
  • java socket客户端连接池

    最近因项目需要,需要使用socket长连接服务器,但是在网上查资料发现都是服务器的连接池,于是自己动手写了个客户端socket连接池,记之,仅供参考,里面的意义变量请自行替换,废话少说,上代码。 1.   socet信息类 [java] package cn.richinfo.cloudp.dm.common.util;      import java.net.Socket;      /**   * @DateTime 2014-8-25 下午3:21:19   * @Desc 名字服...
    作者:孤风一剑/2014年8月29日/分类:Java开发/阅读:3,704次/标签:, , , /2条评论
  • Java 实现单链表反序

    //单链表反序   public class SingleLinkedListReverse {              public static void main(String[] args) {           Node head = new Node(0);           Node temp = null;           Node cur = null;                      for (int i = 1; i <= 10; i++) {               temp = new Node(i);               if (i == 1) {                   head.setNext...
    作者:孤风一剑/2014年8月07日/分类:Java开发/阅读:1,137次/标签:, , /评论关闭
  • Java 内存结构

    a)        运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。JVM内部有两种线程:守护线程和非守护线程,main()属于非守护线程,守护线程通常由JVM自己使用,java程序也可以标明自己创建的线程是守护线程 b)        消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者System.exit()来退出 2.      JVM...
    作者:孤风一剑/2014年8月07日/分类:Java开发/阅读:928次/标签:, , /评论关闭
  • Java8 Lambda表达式应用案例 — 单线程游戏服务器+异步数据库操作

    前段时间我们游戏服务器的开发环境升级到了Java8,这两天我又把服务器的线程模型重新设计了一下,用上了Lambda表达式。Lambda表达式确实能够大幅简化Java代码,特别是丑陋不堪的匿名内部类,这篇文章主要就是想和大家分享这一点。 线程模型 首先简单介绍一下我们游戏服务器的线程模型,大致如下图所示: Netty线程池只处理消息的收发,当Netty收到消息之后,会交给游戏逻辑...
    作者:孤风一剑/2014年7月30日/分类:Java开发/阅读:1,108次/标签:, , , , /评论关闭
  • java 爬虫在 netbeans 里运行和单独运行结果不一样

    在做内容测试的时候,发现我的爬虫(前些文章略有提及)在 netbeans 里面能够成功爬取网页内容,而单独运行时,给定一个 url,爬到的网页却与在浏览器里面打开 url 的网页完全不一样,这是一个很诡异的问题。我在相应位置增加代码,把网页写入某一个文件。结果发现,在 netbeans 里运行和单独运行两次写的文件的编码不一样,一个是 GBK 的编码,一个是 UTF-8  的编码,(我...
    作者:孤风一剑/2014年7月30日/分类:Java开发/阅读:1,024次/标签:, , /评论关闭
  • JAVA异常处理机制

    JAVA的异常机制主要依赖于try、catch、finally、throw和throws五个关键字,其中try关键字后紧跟一个花括号括起来的代码块(花括号)不可省略,简称try块,它里面放置可能引发异常的代码。catch后对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块。多个catch块后还可以跟一个finally块,finally块用于回收在try块里打开的物理资源,异常机制会保证final...
    作者:孤风一剑/2014年7月30日/分类:Java开发/阅读:895次/标签:, /评论关闭