自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

按字节长度截取字符串

需求:按字节数截取字符串,但是不允许劈开汉字。 public static final String subStrViaByteLen(String src, Charset charset, int len) {  if (src==null || src.length()<1) {   return src;  }  if (len < 1) {   return "";...

2014-08-11 17:22:34 227

原创 Linux下跟进程相关的命令

ps -ef|grep javapstree -p 21239 查看进程21239所有的子进程和线程。pwdx 21239 查看进程21239程序命令的目录。lsof -np 21239 是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。lsof -n|awk '{print $2}'|u...

2014-07-01 11:53:14 289

原创 Linux如何判断一个tcp连接是否活着

  这两天服务器网络不稳定,结果发现了一个现象:一个TCP连接的服务端(windows)早已停止,而客户端(linux)的连接状态却一直保持为ESTABLISHED,直到第二天中午连接才断开。在网上搜一下,才知道TCP的相关设置:#cat /proc/sys/net/ipv4/tcp_keepalive_time7200#cat /proc/sys/net/ipv4/tcp_keepaliv...

2014-03-19 13:52:51 1169

原创 The Principles of Java Application Performance Tuning

To fully tune a Java application you need at least a basic level of understanding of: Hardware; OS processes; The JVM; Garbage collection; JIT compilation; Locks; Concurrency; Class loading; Object...

2014-03-07 15:40:19 136

程序员的几个缺点

    这些年混迹于各IT技术网站,观察多发言少,对于程序员这个群体,有了个整体的感觉。如标题所示,这里只列举缺点。     第一条,长得丑。很多程序员喜欢把自己未经PS的照片作为自己的头像,包括我,总体而言,都比较难看。这个缺点原因也很明显:IT行业应该是底层人们受过教育后最容易进入的比较高待遇的行业,因此程序员的主流就是社会底层的受过教育的年轻人,俗称屌丝。有着底层父母的人长相...

2014-01-14 16:32:39 3108

MySQL突然出现某些记录无法更新

    一直运行良好的系统这两天出现奇怪的问题:某些记录无法更新成功。具体错误如下: Caused by: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1        at org.h...

2013-12-27 15:25:48 406

原创 hbase启动时zookeeper不能启动的问题

前几天虚拟机挂了,重新弄好后发现hadoop集群能正常启动,hbase却不能,原因是zookeeper没法启动,查看zookeeper的日志,错误如下:java.lang.RuntimeException: Unable to run quorum server         at org.apache.zookeeper.server.quorum.QuorumPeer.loadData...

2013-12-26 14:34:14 2212

原创 linux性能分析工具

   Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。  在Linux下有很多系统性能分析工具,比较常见的有top、free、ps、time、timex、uptime、vmstat、iostat和sar等。   在安装系统时要选择...

2013-09-11 15:45:39 221

原创 Java Performance笔记

IPC: instructions per clockCPI: cycles per instruction 1. 较高的内核/系统CPU使用率意味着程序可能有较激烈的资源竞争或者大量的IO交互。要尽可能地降低内核CPU占用率。 2. CPU utilization monitoring tools bundled with modern operatingsystem...

2013-09-11 14:07:43 132

原创 Hadoop中老MapReduce进度组成部分有哪些

hadoop权威指南 里面的内容:老MapReduce,是指相对于新的Yarn MapReduce框架而言的。它的进度由下面几个部分组成:1. 读取输入记录2. 写入输出记录3. 用Reporter的setStatus方法设置进度4. 用Reporter的incrCounter方法设置5. 调用Reporter的progress方法...

2013-09-11 14:02:27 328

解决Adobe Reader使用书签出现“出现内部错误”的问题

    把下面的javascript代码保存到Adobe_home\Reader X\Reader\Javascripts\bookmark_page.js, 相信很多人都这么做了,不过设置书签时仍有可能遇到:出现内部错误// bookmark_page.js, ver. 1.0// visit: www.pdfhacks.com/bookmark_page/ // ...

2013-09-04 18:07:48 2192

原创 收集eclipse快捷键

1. 编写子类时重写父类方法:Alt+Shift+S->Ctrl+V2. 选中闭合元素:Alt+Shift+方向键3. 选中单词:Ctrl+Shift+方向键4. 获取错误(小红叉)提示:Ctrl+1  定位下一个错误或警告:Ctrl+.5. 编辑窗口还原和最大化:Ctrl+M6. 关掉当前编辑窗口:Ctrl+W7. 切换编辑窗口:Ctrl(+Shift)+F6 ...

2013-09-03 15:58:14 115

原创 linux下查看磁盘信息的相关命令

fdisk : 磁盘分区。fdisk -ldf : 检查文件系统的磁盘空间占用情况。df -hdu : 查看磁盘使用情况。 du -s * | sort -nr du和df查看的结果为什么会有很大的差异:This article explains how reporting disk usage du and reporting free disk spaceon file...

2013-08-26 18:14:50 214

原创 HDFS不适合哪些应用

《Hadoop权威指南》 HDFS不适合哪些应用:一、低时间延迟的数据访问。相应地,HBase是更好的选择。二、大量的小文件。三、多用户写入,任意修改文件。...

2013-08-21 18:23:34 1151

Java利用Instrumentation获取对象大小升级版

    之前发过一个Java利用Instrumentation获取对象大小的博客,这次修复了一些Bug,应该是非常准确了,除了一种情况,那就是下面代码里面main方法里的情况:/** * 因为要用到java.lang.instrument.Instrumentation, * 本代码需要打成jar包以javaagent运行,manifest.mf文件内容如下 Manifes...

2013-06-21 16:04:17 528

原创 使用visualvm通过JMX远程监控JVM

1. 如何配置visualvm监控visualvm支持在linux和windows上启用图形界面监控jvm的资源,基于目前我们的server资源比较紧张,而且从监控方便的角度来分析(我们现有server的linux系统是关闭图形界面的,如果要支持visualvm的图形显示需要安装插件),我推荐在自己的windows环境中安装监控的客户端Visualvm目前支持两种remote conn...

2013-06-21 15:45:24 733

Java利用Instrumentation获取对象大小

    我之前在http://teasp.iteye.com/blog/1870871这里贴出了两种计算Java对象的方式,一种是根据虚拟机实现直接计算,另一种是通过new对象测出来实际大小。前者效率高,但是不通用,而且还是有问题的,后者正确性应该不错,但是效率低。现在又从http://www.jroller.com/maxim/entry/again_about_determining_si...

2013-06-20 13:40:28 1248

Java AIO小例子

    Java7 NIO里面的新特性AIO出来也很久了,一直都没用过,今天没事写个小例子体验一下。感觉AIO要比同步NIO要简单点,写出正确的AIO比写同步NIO要容易一些,但是更不好理解,异步编程就是这样,不符合人类的直观感受。     服务端代码: public class TestAioServer{ private static AtomicInteger...

2013-06-19 13:04:18 110

重温Java NIO Socket

    好多年都没用Java里面的NIO写Socket应用了,Mina等框架封装了太多东西,现在重新写个NIO Socket的小例子回顾下。其实NIO写正确还是挺不容易的,太多的东西要注意,这个例子太过简单,要想在生产中使用还有更多的东西要注意,比如读和写由于是非阻塞的,每次操作了多少数据是没保证的,读的数据要进行累积拼接,业务逻辑应在线程池中处理等等。。。public class Test...

2013-06-08 14:34:58 119

Java里面加载资源会用到的一些路径

    记录下,备忘。        很多时候我们想知道正在执行的class文件或者jar所在的路径,以方便加载一些资源。下面的一些方法可以帮助到我们: 1       System.out.println(System.getProperty("user.dir")); 2       System.out.println(XXX.class.getProtectionDomain...

2013-06-07 16:43:32 104

根据主机名在局域网跨网段找IP升级版

    之前写了个同样功能的例子,里面用的是TCP socket通信逐个IP进行查找,效率比较低。现在改成UDP进行广播,在限定时间内没找到会放弃。本版本效率应该高很多。当然,条件是被查找的机器也运行以下代码:public class IpHostInLan1{ private static final int PORT = 4322; private static...

2013-05-25 11:46:39 323

局域网跨网段根据主机名找IP

    本例需要被找的机器同时也在运行以下代码。目前是遍历所有IP进行查找,效率很低,在没找到更好的办法之前只好用它了。/** * 在局域网(LAN)里面根据主机名找到对应的IP。 * 设计作者: teasp * 信息描述: */public class IpHostInLan{ private static final int PORT = 4321;...

2013-05-23 18:48:34 1320

原创 Restlet设置最大线程数

如下代码可以设置Restlet的最大线程数: public static void main(String[] args) throws Exception { Component component = new Component(); Context context = new Context(); context....

2013-05-22 12:40:15 291

点评网络上流传的提高性能的Java编码方式

下面是网络上流传的关于提高性能的做法,本人对其中一部分做法做了些点评: 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相...

2013-05-20 13:34:24 75

实现一个sizeof获取Java对象大小

   由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。     本方法使用了Unsafe类来访问对象的私有属...

2013-05-17 13:12:55 863

IllegalAccessError

    今天在工作中遇到了这样一个Error,IllegalAccessError。java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor3 cannot access its superclass sun.reflect.ConstructorAccessorImpl。本系统使用了OSGI,初步分析...

2013-05-17 12:50:04 833 1

二分法查找第一个满足条件的项

public class BinSearch1st { Random random = new Random(); /** * 二分查找,找到s的下标,如果没有返回-1 * @param arr * @param s * @return */ public int bsearch(int[] a...

2013-05-16 12:44:01 358

错误的序列号生成器

public class IncorrectSerialGenerator { public static final int MAX_VAL = 999; public static final int R_NUM = getRNum(MAX_VAL); private static AtomicInteger val = new Atom...

2013-05-14 13:35:08 165

序列号生成器

/** * 生成序列号,最大值为MAX_VAL。如果达到MAX_VAL,从0开始。 */public class SerialGenerator { public static final int MAX_VAL = 999; public static final int R_NUM = getRNum(MAX_VAL); privat...

2013-05-13 08:19:41 771

原创 Java的失败设计--String缓存hashcode

Java的设计者设计String的时候,用一个私有变量缓存了hash值。这显然是用空间换取时间的做法。那么这种做法是否合理呢?我认为:相当的不合理。 假如调用hashCode的时候都用的是同一个String对象,那么缓存hash值的做法是非常可取的。问题是,假如只是假如,在真实的应用程序环境下,这个假定是不成立的,多数情况下我们存在HashMap的key上的String是一个实例,而查...

2013-05-11 10:15:29 704 3

原创 关于Java性能的9个谬论

Java的性能有某种黑魔法之称。部分原因在于Java平台非常复杂,很多情况下问题难以定位。然而在历史上还有一种趋势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理。在这篇文章中,我希望拆穿一些最荒谬的技术神话。1.Java很慢 关于Java的性能有很多谬论,这一条是最过时的,可能也是最为明显的。确实,在上世纪90年代和本世纪初处,Java有时是很慢。然而从那以后,...

2013-05-10 19:02:05 82

原创 Java如何将给定的字符串转成Class对象

给定一个定义类的字符串,比如“package com.teasp.compile; public class Test{ public static void main(String[] args){System.out.println(\"compile test.\");} }”,怎么将其转换成Class对象呢?下面的代码可以实现该功能:/** * Java6及以上才可用。 *...

2013-05-10 18:30:44 5073 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除