- 浏览: 203019 次
- 来自: ...
最新评论
-
jianglinjun:
public void sayName(); Code: ...
ASM系列之三:ASM中的访问者模式 -
cangchen8180:
这个问题怎么解决的啊,能不能分享一下???[b][/b]
阻塞方法引起的任务无法结束 -
wzx_it:
你就是牛人,联系方式留一个啊
ASM系列之一:初探ASM -
xwqiang:
不应该把timer当作static成员变量,如果有多个方法的执 ...
ASM系列之五:操作类方法 -
xwqiang:
生成的字节码是错误的:public class Person{ ...
ASM系列之五:操作类方法
文章列表
8月20日,终于判了,但有失公正,社会可以不公平但不能不公正--写在正文前的废话。
PriorityQueue这个东西叫啥,随便反正我不会翻译她,我只想把我N年前看过的目前还记得的东西拿出来凉凉,以免发霉了,再则也可以给 ...
java对象内存占用情况分析
- 博客分类:
- JAVA基础
一个对象实例占用了多少字节,消耗了多少内存?这样的问题在c或c++里使用sizeof()方法就可以得到明确答案,在java里好像没有这样的方法(java一样可以实现),不过通过jmap工具倒是可以查看出一个对象的占用内存的大小,这里介绍一种通过分析java代码计算内存使用情况的方法。
注意,一下讨论的情况都是基于32位机,不适用用64位机,JVM是sun的HotSpot,不同的虚拟机实现可能会不同
规则一:每个对象被按照8bytes粒度对齐(数组除外)
在jvm中每个对象(数组除外)都有一个头,这个头有两个字,第一个字存储的时对象的一些标志位信息,例如:锁标志位、经历了几次gc ...
1、new Integer():方法会在内存中新开辟一个内存空间;
2、valueOf():方法只有在传入的参数<-128或>127时,才会去调用一个new Integer()方法去创建一个新的对象,否则会使用静态类IntegerCache中的cache里的对象。
程序表象:
如果我们要调用50万次的new Integer(4),在不去设置jvm内存参数的情况下会outOfMemery,而Integer.valueOf(4)则不会。
我们可以分别用new Integer(4)和valueOf(4)构件5万个对象,用jmap -histo:live查看一下内存中Integer对 ...
对于线程池主要关心的内容有:线程池的大小控制、池中的队列控制、池饱和时的策略,下面我们从这三个角度来分析一下Executors生成的不同池。
1、ThreadPoolExecutor构造函数介绍:
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
...
做一个小练习记录一个阻塞方法引起的任务无法结束。
场景如下:一个生成质素的类,多个线程调用这个类生成一系列质素。
质素生成类:
public class PrimeGeneratorForeverRun implements
Callable<BlockingQueue<BigInteger>> {
private final BlockingQueue<BigInteger> primes = new ArrayBlockingQueue<BigInteger>(
5);//使用阻塞队列来存储已经生成的质素
priva ...
上一篇中我们看到了Timer的不足之处,本篇我们将围绕这些不足之处看看ScheduledThreadPoolExecutor是如何优化的。
为了研究方便我们需要两个类:
public class Task1 implements Callable<String> {
@Override
public String call() throws Exception {
String base = "abcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
...
很多时候我们希望任务可以定时的周期性的执行,在最初的JAVA工具类库中,通过Timer可以实现定时的周期性的需求,但是有一定的缺陷,例如:Timer是基于绝对时间的而非支持相对时间,因此Timer对系统时钟比较敏感。虽然有一定 ...
ExecutorService接口继承了Executor接口,定义了一些生命周期的方法
public interface ExecutorService extends Executor {
void shutdown();
List<Runnable> shutdownNow();
boolean isShutdown();
boolean isTerminated();
boolean awaitTermination(long timeout, TimeUnit unit)
throws InterruptedException;
}
本文 ...
第一步,启动hadoop,命令:./start-all.sh
第二步,启动hive,命令:
./hive --auxpath /home/dream-victor/hive-0.6.0/lib/hive_hbase-handler.jar,/home/dream-victor/hive-0.6.0/lib/hbase-0.20.3.jar,/home/dream-victor/hive-0.6.0/lib/zookeeper-3.2.2.jar -hiveconf hbase.master=127.0.0.1:60000
这里,-hiveconf hbase.master=指向自己在hba ...
第一步,修改bin目录下的hive-config.sh文件
export HIVE_HOME=/home/dream-victor/hive-0.6.0--指向自己的hive安装目录
export HADOOP_HOME=/home/dream-victor/hadoop-0.20.2--指向自己的hadoop安装目录
export JAVA_HOME=/home/dream-victor/jdk1.6.0_21--指向JDK安装目录
第二步,修改bin/ext/util目录下的execHiveCmd.sh文件:
HADOOP_HEAPSIZE=256
启动即可
第一步,配置hbase-env.sh:
export JAVA_HOME=/home/dream-victor/jdk1.6.0_21--指向自己的JDK
export HBASE_MANAGES_ZK=true
export HBASE_LOG_DIR=/home/dream-victor/hbase-0.20.6/logs--指向自己定义的logs文件夹
第二步,配置hbase-site.xml:
先进入hadoop下的bin目录,运行:./hadoop fs -mkdir /hbase,在你的hbase-{$user}文件夹下建立/hbase文件夹
然后,配置 ...
最近工作中要做一个小工具,使用到了hadoop,以前又没有搞过,所以简单的研究了一下,先从安装说起:
本文使用的环境是:ubuntu10+hadoop-0.21
第一步,先确认本机是否开启了sshd,方法很简单,用如下命令:
ssh localhost
若没有运行sshd,则会提示你无法登录,这时需要手动安装一下,命令如下:
sudo apt-get install openssh-server
注意:ssh
必须安装并且保证 sshd
一直运行,以便用Hadoop
脚本管理远端Hadoop守护进程
第二步,设置ssh密码,实现免密码登录,命令如下:
...
今天学习了一下左式堆,总结一下。
一、左式堆定义:
具有,如下性质
1、父节点属性值小于子节点属性值;
2、堆中的任何节点,其左儿子的零路径长>=右儿子的零路径长;
的二叉树。
注:零路径长(npl)是指:从一个节点X开始到一个不具有两个儿子的Y节点的最短路径的长,可以看出有0个或者一个儿子的节点的npl=0,并且定义npl(null)=-1;
二、左式对的节点定义:
class Node<T> {
// 元素
T element;
// 左节点
Node<T> left;
// 右节点
Node<T&g ...
写在前面的话:Btrace系列是我将平时里学习和使用Btrace的一些经验的总结,拿出来和大家一起交流一下,希望在这个过程中能找寻出自己理解或使用上的错误之处。
一、Btrace的简介:
Btrace是由Kenai
开发的一个开源项目,是一种动态跟踪分析JAVA源代码的工具。它可以用来帮我们做运行时的JAVA程序分析,监控等等操作,当然,它也不是万能的,BTrace也有一些使用上的限制,如:不能在脚本中新建类等等,这些在官方网站上有很详细的介绍,大家有兴趣可以查看:http://kenai.com/projects/btrace/pages/UserGuide。
...
最近,想使用apache的mod_status来查看一下apache的服务器状态,就自己安装了一下mod_status,以前觉得好像很难的东西其实很简单。
第一步, 去http://httpd.apache.org/下载最新的apache服务器
第二步,将下载的httpd-2.2.17.tar.gz解压,如:~/tmp$ tar xvf httpd-2.2.17.tar.gz
第三步,进入解压后的httpd-2.2.17目录,通过configure脚本配置安装文件,这里可以指名你的apache安装在什么地方、你需要加载那些模块等信息,具体参数可以查看帮助文档:http://www.phpc ...