
java
文章平均质量分 70
行走江湖
方向:分布式计算、实时流计算、数据挖掘、后台开发、NoSQL、Hadoop/HBase、Unix/Linux、Java、C/C++、Python。
联系方式:http://t.qq.com/X-L2008
QQ:394102339
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Eclipse快捷键 10个最有用的快捷键
一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组转载 2014-03-30 15:08:31 · 553 阅读 · 0 评论 -
Java中常见OOM的场景及解决方法
OOM for Heap (java.lang.OutOfMemoryError: Java heap space) 分析 此OOM是由于JVM中heap的最大值不满足需要,将设置heap的最大值调高即可,参数样例为:-Xmx2G JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物转载 2014-08-17 10:45:01 · 894 阅读 · 0 评论 -
从几个sample来学习Java堆,方法区,Java栈和本地方法栈
最近在看《深入理解Java虚拟机》,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构: 感觉有必要通过几个实在的例子来加深对这几个区域的了解 1)Java堆 所有对象的实例分配都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,sample如下所示:转载 2014-08-17 12:18:20 · 490 阅读 · 0 评论 -
内存溢出之PermGen OOM深入分析
现在,网上关于讨论PermGen OOM的资料很多,但是深入分析PermGen区域内存溢出原因的资料很少。本篇文章尝试全面分析一下PermGen OOM的原因,其中涉及到了Java虚拟机运行时数据区、类型装载、类型卸载等,测试代码涉及到了JMX协议。相关前提知识如下: 1、Java类加载的基本原理 2、Java类型卸载相关的知识,http://www.blogjav转载 2014-08-16 22:48:17 · 662 阅读 · 0 评论 -
测试Perm区溢出引起的OOM以及原因分析
Jdk版本:1.6.0_38 运行参数:-XX:PermSize=4M -XX:MaxPermSize=4M -verbose -verbose:gc-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled 程序代码: public static void main(String[] args) { Random r原创 2014-08-17 10:50:14 · 2101 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。 典型设置: java -Xmx3550m -Xms355转载 2014-08-19 19:05:09 · 450 阅读 · 0 评论 -
从JAR文件中读取文件
JAR文件是打包基于JAVA技术的解决方案的标准方法。它允许开发者将所有相关内容(.class、图片、声音、及所有支持的文件)打包到一个文件中。JAR格式支持压缩、认证、版本号及其他很多特性。 从JAR文件中读取文件是很麻烦的事情,但是也不一定全是这样。本文将告诉你如何从JAR文件中读取文件,首先,得到JAR文件中的文件目录,然后在进行具体的某一个文件的操作。 如果转载 2014-09-16 10:41:26 · 622 阅读 · 0 评论 -
Jackson 入门
同事的一些测试结果看来,Jackson在处理Json方面性能相对占优,于是关注了下它,下方大部分从官方文档翻译过来。 原文链接: http://jackson.codehaus.org/Tutorial Jackson有三种处理方式: Streaming API 使用org.codehaus.jackson.JsonParser 进行读操作转载 2014-09-16 15:11:09 · 533 阅读 · 0 评论 -
JAVA 服务提供者框架介绍
服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。例如,JDBC,JMS等就是用了服务提供者框架 他们之间的关系如下图: 1.服务具体实现类和服务提供者实现类是服务提供者自己去实现。以JDBC为例,这2个模块由具体的数据库提供商转载 2014-11-17 22:20:48 · 602 阅读 · 0 评论 -
java中数据与arraylist的转换
参考Java API 原话: public static List asList(T... a) 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。) 此方法同 Collection.toArray() 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess。 例子: pub转载 2014-12-22 23:32:54 · 587 阅读 · 0 评论 -
commons-pool实战之 GenericObjectPool和GenericKeyedObjectPool
前面两篇文章说了怎么样简单的使用commons-pool库,这里需要考虑一个问题就是在很多时候我们在池里的对象都是比较重型的并且大多数比较稀缺的资源,比如说数据库连接,这样如果一直把一些连接放在池里不归还,就会很占资源,并且是这些资源利用率降低,那么怎样才能更好的管理池子中的资源呢,commons-pool里提供了一个GenericObjectPool类,它的出现使上面的问题就迎刃而解了。同样对于转载 2015-02-04 08:48:52 · 1078 阅读 · 0 评论 -
在TOMCAT中部署war
1、将war文件拷贝到tomcat目录/webapps/下。 2、将必要的jar文件拷贝到tomcat目录/lib/xia下。 3、修改tomcat目录/conf/下的server.xml。 将这段代码中的 拷贝一下并修改:path="" 为war路径,docBase=""为你的war的文件名。 4、完毕,启动tomc转载 2015-01-15 20:07:17 · 586 阅读 · 0 评论 -
java进程crash
问题:tomcat在运行过程中会莫名挂掉,表现如被Killed -9,系统中没有任何日志(命令行无Kill指令记录、/var/log/message中无OOM Killer日志、项目本地目录无core dump日志、无java crash日志、应用中记录了eixt操作,日志中没有看到该记录)。不知道大伙儿遇到过这种情况不,有啥建议不? 下面是我排查的情况: 软件环境 $ uname -a转载 2015-02-10 22:21:49 · 2203 阅读 · 0 评论 -
1.JAVA中使用JNI调用C++代码学习笔记 - 星云博客园
Java 之JNI编程 1.什么是JNI? JNI:(Java Natibe Inetrface)缩写。 2.为什么要学习JNI? Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 (这些代码通常是由C/C++编写的). Sun公司提供的JNI是Java平台的一个功能强大的接口。 这个JNI接口提供了Java与操作系统本地代码互相调用的功能。 (即java转载 2015-01-05 19:53:36 · 767 阅读 · 0 评论 -
java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说: 写道 给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。 此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境下的线程安全问题结论,然后用示例验证,请大家擦亮眼睛,有错必究,否则转载 2015-02-12 18:58:00 · 584 阅读 · 0 评论 -
门面(Facade)模式
外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 医院的例子 用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须首转载 2015-02-14 10:27:11 · 651 阅读 · 0 评论 -
java 如何获取线程和线程组
http://nadeausoftware.com/articles/2008/04/java_tip_how_list_and_find_threads_and_thread_groups原创 2015-03-10 16:34:39 · 1115 阅读 · 0 评论 -
Date和TimeZone的关系
java2平台为我们提供了丰富的日期时间API。如java.util.Date;java.util.calendar;java.text.DateFormat等。那么它们之间有什么关系呢? 首先,java.util.Date代表一个时间点,其值为距公元1970年1月1日 00:00:00的毫秒数。所以它是没有时区和Locale概念的。java通过如下形式取得当前时间点: Date no转载 2014-09-09 15:15:35 · 1187 阅读 · 0 评论 -
整理JRE瘦身或精简JRE
前不久给朋友做了一个桌面程序,程序文件没多大,但运行java程序需要jre,但jre足足有80M多,然后在网上搜了如何给给JRE瘦身或精简JRE,整理如下: 打开JRE安装目录.目录包括bin,lib二个文件夹,所以就是将这两个文件进行瘦身了, 1. bin: 可以认为这是Java虚拟机. 2. lib: 执行class文件时,Java虚拟机需要用到的类库及资源文件.转载 2014-08-24 21:56:54 · 963 阅读 · 0 评论 -
hashCode与equals的区别与联系
一、equals方法的作用 1、默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。 2 、要是类中覆盖了equals方法,那么就要根据具体的代码来确定equals方法的作用了,覆盖后一般都是通过对象的内容是否相等来判断对象是否相转载 2014-04-30 14:55:10 · 425 阅读 · 0 评论 -
Java 专业人士必备的书籍和网站列表
这些都是您书架上必备的书和应该经常使用的 Web 链接。时间是一项重要的资源,本文帮您回避那些分心的事情,把时间专注于最有益于您作为Java 语言程序员职业生涯的信息源。尽管有多少程序员就有多少他们最喜欢的参考资料,但本文收集的这些都是优中选优,来源于我书架上的私家珍藏和许多 Java 专家的推荐。 我考虑了两种组织这份参考资料列表的方法。我本可以通过主题领域来组织,这也许很有帮助,但主题列转载 2014-03-31 08:28:04 · 549 阅读 · 0 评论 -
spring3,struts2,hibernate,junit,设计模式视频教程下载
此教程有详细的spring3,sturs2,hibernate,junit,设计模式视频教程下载,能够为刚毕业的学生提供很好的帮助。希望初学者能够通过以下视频教学搞自己的技能,早日找到理想的工作。 以下是相关资料连接: 1.本工程内容较多,可能需要设计编译目录: http://zz563143188.iteye.com/blog/1826517 2.调试翻译 2014-04-01 22:33:45 · 1121 阅读 · 0 评论 -
Intellij IDEA 快捷键整理(TonyCody)
【常规】 Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ct转载 2014-04-01 20:47:06 · 511 阅读 · 0 评论 -
MyEclipse中使用Junit--Test Case
简单记录一下,在MyEclipse中使用Junit 的方法,这一部分先记 Test Case 的创建方法。 Test Case :是指对一个用例进行测试,比如说测试一个接口,对于接口来说,一组输入值就是一个Test Case 。MyEclipse中创建Junit 的步骤如下: 1、选择一个存放测试类的package,右键-->new-->Other-->Java-->JUnit--转载 2014-04-07 16:20:24 · 971 阅读 · 0 评论 -
Hibernate关联关系配置(一对多、一对一和多对多)
第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如消费者与订单的关系。 一对多:从消费者角的度来说一个消费者可以有多个订单,即为一对多。 多对一:从订单的角度来说多个订单可以对应一个消费者,即为多对一。 一对多关系在hbm文件中的配置信息: 消费者(一方): xml version="1.0" encoding="utf-8"转载 2014-04-08 09:03:18 · 516 阅读 · 0 评论 -
tomcat 服务器抛出socket异常“文件打开太多”的问题
最近,运行的tomcat服务器在正常运行将近2个月后,抛出如下错误: 警告: Reinitializing ServerSocket 2006-7-28 15:07:40 org.apache.tomcat.util.net.PoolTcpEndpoint acceptSocket 严重: Endpoint ServerSocket[addr=0.0.0.0/0.0.0.0,port=0转载 2014-04-23 13:24:29 · 2250 阅读 · 0 评论 -
解决Eclipse和MyEclipsejava.lang.OutOfMemoryError Java heap space的错误
Eclipse和MyEclipse出现错误:java.lang.OutOfMemoryError: Java heap space的错误,很熟悉的错误信息,可咋就想不起来在哪里设JVM的参数啊。请看下面: 1,从Intalled JREs里修改;window->Preferences->Java->InstalledJREs,选择当前的JRE,然后edit它;在新窗口里设置Defaul转载 2014-05-15 14:36:13 · 688 阅读 · 0 评论 -
Java日期循环,Java获取当月的第一天和最后一天
1、Java日期循环 SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); String dateStr1="2008-3-16"; String dateStr2="2008-3-24"; java.util.Date dateBegin=forma转载 2014-05-15 20:06:51 · 956 阅读 · 0 评论 -
JAVA中List、Map、Set的区别与选用
类层次关系如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap 下面来分别介绍 Collection接口 Collection是最基本的集合接口,一个Collection代转载 2014-04-10 09:13:48 · 589 阅读 · 0 评论 -
Java的ClassLoader与Package机制(Prohibited package name:XXX)
如遇到这个问题: Prohibited package name: 则可参考以下文章: 为了深入了解Java的ClassLoader机制,我们先来做以下实验: package java.lang; public class Test { public static void main(String[] args) { char[] c = "转载 2014-05-23 21:58:50 · 709 阅读 · 0 评论 -
JAVA NIO 简介
Java综合 1. 基本 概念 IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。 所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 ) 2. Java 标准 io 回顾 Java 标准 IO 类库是 io 面向对象的一种抽象。基转载 2014-07-21 08:50:11 · 460 阅读 · 0 评论 -
不简单的JAVA内部类
菜鸟学Java,现学现卖。 所谓内部类,就是一个类的定义放在了另一个类定义的内部,如: [java] view plaincopy public class OuterClass { private int outerData; // ..... public class InnerClass {转载 2014-08-08 22:45:22 · 400 阅读 · 0 评论 -
JAVA 文件操作
平常经常使用JAVA对文件进行读写等操作,这里汇总一下常用的文件操作。 1、创建文件 [java] view plaincopy public static boolean createFile(String filePath){ boolean result = false; File file = new File(filePath);转载 2014-08-09 16:17:41 · 451 阅读 · 0 评论 -
JUnit 4 使用手册
JUnit 4使用手册 笔者此前使用过JUnit 3,工作关系很长时间没再碰Java了。最近重新接触了一下,发现JUnit 4和3有较大区别,特总结一下JUnit 4的基本用法,供自己查阅也供朋友们参考。 一、JUnit简介 JUnit由Kent Beck和ErichGamma开发,几乎毫无疑问是迄今所开发的最重要的第三方Java库,它也成为了Java语转载 2014-08-09 16:40:23 · 1418 阅读 · 0 评论 -
class文件的动态加载
在我们实际开发中经常会遇到一些问题,比如某些类我们需要动态的加载进java虚拟机的内存区域。 要实现这个功能我们就需要了解java虚拟机的几个类加载器。 Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写的。系统提供的类加载器主要有下面三个: 引导类加载器(bootstrap class loader):它用来转载 2014-08-12 10:00:46 · 676 阅读 · 0 评论 -
Spring-SpringMVC-Hibernate在IntelliJ与Maven的环境下搭建
http://mark-yang.github.io/blog/2015/04/24/spring-springmvc-hibernate/ 本篇主要介绍的是JavaEE中的框架SpringMVC,在以前上JavaEE课程时,课程项目里使用的是比较“古老”的SSH(Struts2+Spring+Hibernate)框架,最近受某小朋友的影响着手了解SpringMVC,一种更轻转载 2015-05-26 18:45:51 · 5062 阅读 · 0 评论