java
文章平均质量分 96
我是你的小草莓
这个作者很懒,什么都没留下…
展开
-
java class详解及反射机制
Java中Class类工作原理详解2007-08-02 16:211.Class对象 Class对象包含了与类相关的信息。事实上,Class对象就是用来创建类的所有的“普通”对象的。 类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并且编译了一个新类,就会产生一个Class对象(恰当地说,是被保存在一个同名的.class文件中)。在运行时,当我们想生转载 2014-04-29 15:00:29 · 532 阅读 · 0 评论 -
JAVA中String与StringBuffer的区别
String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结。 在java中有3个类来负责字符的操作。1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。转载 2014-10-22 22:10:06 · 303 阅读 · 0 评论 -
使用Memory Analyzer tool(MAT)分析内存泄漏(一)
为什么用MAT 之前的观点,我认为使用实时profiling/monitoring之类的工具,用一种非常实时的方式来分析哪里存在内存泄漏是很正确的。年初使用了某profiler工具测试消息中间件中存在的内存泄漏,发现在吞吐量很高的时候profiler工具自己也无法响应,这让人很头痛。后来了解到这样的工具本身就要消耗性能,且在某些条件下还发现不了泄漏。所以,分析离线数据就非常重要了,MAT正转载 2014-11-08 22:53:57 · 445 阅读 · 0 评论 -
使用Memory Analyzer tool(MAT)分析内存泄漏(二)
前言在使用Memory Analyzer tool(MAT)分析内存泄漏(一)中,我介绍了内存泄漏的前因后果。在本文中,将介绍MAT如何根据heap dump分析泄漏根源。由于测试范例可能过于简单,很容易找出问题,但我期待借此举一反三。一开始不得不说说ClassLoader,本质上,它的工作就是把磁盘上的类文件读入内存,然后调用java.lang.ClassLoader.defineC转载 2014-11-08 22:57:36 · 404 阅读 · 0 评论 -
[Hadoop]设置Task的jvm heap size
可以在这里设置:有人说应该改hadoop-env.sh里的HADOOP_HEAPSIZE. 这是错的,HADOOP_HEAPSIZE是给一些HADOOP后台进程用的,不是给task用的转载 2014-10-24 11:03:01 · 1308 阅读 · 0 评论 -
JVM -verbose参数详解
java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。 1.java -verbose:class 在程序运行的时候有多少类被加载!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。verbose和verbose:c转载 2014-12-17 16:48:59 · 813 阅读 · 0 评论 -
java UncaughtExceptionHandler 处理线程意外中止
本文转自:http://peirenlei.iteye.com/blog/305079 Thread的run方法是不抛出任何检查型异常(checked exception)的,但是它自身却可能因为一个异常而被终止,导致这个线程的终结。最麻烦的是,在线程中抛出的异常即使使用try...catch也无法截获,因此可能导致一些问题出现,比如异常的时候无法回收一些系统资源,或者没有关闭当前转载 2014-12-05 09:30:57 · 347 阅读 · 0 评论 -
try-catch-finally
前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit() 方法怎么处理?当 catch 和 finally 体里同时遇上 return 怎么办?相信你在处理异常的时候不是每次都把它 throws 掉就完事了,很多时候异常是需要我们自己来转载 2014-11-27 11:40:01 · 362 阅读 · 0 评论 -
Java多线程-工具篇-BlockingQueue
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个转载 2014-12-07 18:00:50 · 473 阅读 · 0 评论 -
Thread Dump线程死锁检测工具(JStack)的使用详解
Thread Dump用来诊断Java应用的问题,可以用来发现死锁线程等等。通过它可以得到线程,线程运行状态、标识、调用的堆栈,堆栈包含完整的类名,所执行的方法,以及源代码所在的行数等等信息。接下来,需要考虑如何获得Thread Dump的问题。首先,可以通过jps查看java的进程信息,从而获得java进程的进程号。也可以用top动态观察CPU使用情况分析进程情况。然后通过jdk自带的工转载 2014-12-10 18:36:50 · 9653 阅读 · 0 评论 -
JUnit 执行顺序
说明: Junit4.11版本及以后才支持,建议升级到最新版本.按照设计原则,JUnit是不指定测试方法调用执行顺序的。目前为止,这些方法只是简单地按照反射(reflection) API返回的顺序执行。但是,使用JVM默认提供的排序是很不明智的,因为Java平台没有指定任何有规律的顺序,而事实上JDK 7可能会返回一个随机的顺序。当然,精心编写的测试代码之间并不需要假定任转载 2015-08-21 18:02:00 · 428 阅读 · 0 评论 -
Ubuntu 下编译 openJDK
个人记录。uanme -aLinux caoxudong-youku 3.2.0-34-generic-pae #53-Ubuntu SMP Thu Nov 15 11:11:12 UTC 2012 i686 i686 i386 GNU/Linux主要参考文档:README-builds.html在源代码目录就有。 过程: 1. 安装mercurial2. 下载转载 2016-01-07 12:14:38 · 727 阅读 · 0 评论 -
java线程池常用方法收集
execute(Runnable command):履行Ruannable类型的任务submit(task):可用来提交Callable或Runnable任务,并返回代表此任务的Future对象invokeAll(collection of tasks):执行给定的任务,当所有任务完成时,返回保持任务状态和结果的 Future 列表.shutdown():在完成已提交的任务转载 2014-09-01 10:12:58 · 355 阅读 · 0 评论 -
从决策树学习谈到贝叶斯分类算法、EM、HMM
(Machine Learning & Data Mining交流群:8986884)引言 最近在面试中,除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全不代表你将来的面试中会遇到此类问题,只是因为我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西转载 2014-08-17 16:36:24 · 834 阅读 · 0 评论 -
org.apache.log4j.Logger 详解
1.概述1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装转载 2014-04-11 10:24:13 · 1062 阅读 · 0 评论 -
使用 Eclipse 远程调试 Java 应用程序
使用 Eclipse 远程调试 Java 应用程序利用 Eclipse IDE 的强大功能远程调试 Java 应用程序在本地计算机上调试 Java™ 应用程序并不是惟一的选择。学习如何使用构成远程调试的不同连接类型进行远程调试。本文概述了设置远程应用程序调试的特性和示例。0评论:Charles Lu, 软件工程师, IBM2009 年 1 月 12 日转载 2014-04-28 21:28:05 · 496 阅读 · 0 评论 -
分布式数据库启动日志服务配置方法
概述:基于Socket的远程log由server端和client端组成,server端需要启动一个JAVA类org.apache.log4j.net.SocketServer,client端使用SocketAppender。 Client端: Client端其实就是写logger的应用,配置分为两部分,Appender和Logger,当然是写在l转载 2014-04-30 20:54:14 · 727 阅读 · 0 评论 -
JConsole详解
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JDK 在转载 2014-05-06 20:38:52 · 922 阅读 · 0 评论 -
jmx详解
问题:什么是JMX?问题:JMX的架构是什么样子的?问题:JMX以及Mbean中的 概念都有那些?问题:如何编写一个简单的Standard MBean?问题:如何编写一个DynamicMBean?问题:Open MBean 和Mode MBean是作用是啥?问题:按照MBean的规范写,是不是有点繁琐,有没有简单点的办法?转载 2014-05-06 21:46:32 · 1959 阅读 · 0 评论 -
Runtime.getRuntime().addShutDowmHook()方法
Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。转载 2014-05-10 22:23:50 · 737 阅读 · 0 评论 -
zookeeper学习记录
学习首先就是收集一些前人的一些学习资料和总结内容,方便自己快速入门。 这里罗列了几篇不错的文章: http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ (介绍了zookeeper能用来干嘛)http://zookeeper.apache.org/doc/r3.3.2/zookeeperOver.h转载 2014-05-12 12:44:31 · 542 阅读 · 0 评论 -
Runnable与Callable
Callable接口和Runnable接口相似,区别就是Callable需要实现call方法,而Runnable需要实现run方法;并且,call方法还可以返回任何对象,无论是什么对象,JVM都会当作Object来处理。但是如果使用了泛型,我们就不用每次都对Object进行转换了。 Runnable和Callable都是接口不同之处:1.Callable可以返回一个类型转载 2014-05-20 10:48:03 · 587 阅读 · 0 评论 -
java线程池管理
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。 有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。目转载 2014-05-12 22:39:05 · 563 阅读 · 0 评论 -
java atomic项目
J2SE 5.0提供了一组atomic class来帮助我们简化同步处理。基本工作原理是使用了同步synchronized的方法实现了对一个long, integer, 对象的增、减、赋值(更新)操作. 比如对于++运算符AtomicInteger可以将它持有的integer 能够atomic 地递增。在需要访问两个或两个以上 atomic变量的程序代码(或者是对单一的atomic变量执行两个或两转载 2014-06-02 09:01:26 · 552 阅读 · 0 评论 -
eclipse debug 详解
调试的方法虽然千千万万,但归根结底,就是找到引发错误的代码。Eclipse调试器的目标是让程序员能对本地或远程程序进行错误侦测与诊断。该调试器提供所有标准调试功能,包括进行单步执行、设置断点和值、检查变量和值以及暂挂和恢复线程的能力。这篇文章主要讲述Eclipse调试器,包括Debug视图,断点的设置,Java代码的调试等等。与一些理论性较强的文章相比,本文更注重实践,为读者提供更加使用的调试技巧转载 2014-06-03 10:32:23 · 2576 阅读 · 0 评论 -
学习日志170302
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内转载 2017-03-02 15:53:09 · 331 阅读 · 0 评论