代码琐记
文章平均质量分 80
teasp
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 5194 阅读 · 1 评论 -
Java利用Instrumentation获取对象大小升级版
之前发过一个Java利用Instrumentation获取对象大小的博客,这次修复了一些Bug,应该是非常准确了,除了一种情况,那就是下面代码里面main方法里的情况:/** * 因为要用到java.lang.instrument.Instrumentation, * 本代码需要打成jar包以javaagent运行,manifest.mf文件内容如下 Manifes...2013-06-21 16:04:17 · 652 阅读 · 0 评论 -
重温Java NIO Socket
好多年都没用Java里面的NIO写Socket应用了,Mina等框架封装了太多东西,现在重新写个NIO Socket的小例子回顾下。其实NIO写正确还是挺不容易的,太多的东西要注意,这个例子太过简单,要想在生产中使用还有更多的东西要注意,比如读和写由于是非阻塞的,每次操作了多少数据是没保证的,读的数据要进行累积拼接,业务逻辑应在线程池中处理等等。。。public class Test...2013-06-08 14:34:58 · 172 阅读 · 0 评论 -
Java里面加载资源会用到的一些路径
记录下,备忘。 很多时候我们想知道正在执行的class文件或者jar所在的路径,以方便加载一些资源。下面的一些方法可以帮助到我们: 1 System.out.println(System.getProperty("user.dir")); 2 System.out.println(XXX.class.getProtectionDomain...2013-06-07 16:43:32 · 163 阅读 · 0 评论 -
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 · 1368 阅读 · 0 评论 -
Java AIO小例子
Java7 NIO里面的新特性AIO出来也很久了,一直都没用过,今天没事写个小例子体验一下。感觉AIO要比同步NIO要简单点,写出正确的AIO比写同步NIO要容易一些,但是更不好理解,异步编程就是这样,不符合人类的直观感受。 服务端代码: public class TestAioServer{ private static AtomicInteger...2013-06-19 13:04:18 · 175 阅读 · 0 评论 -
根据主机名在局域网跨网段找IP升级版
之前写了个同样功能的例子,里面用的是TCP socket通信逐个IP进行查找,效率比较低。现在改成UDP进行广播,在限定时间内没找到会放弃。本版本效率应该高很多。当然,条件是被查找的机器也运行以下代码:public class IpHostInLan1{ private static final int PORT = 4322; private static...2013-05-25 11:46:39 · 423 阅读 · 0 评论 -
局域网跨网段根据主机名找IP
本例需要被找的机器同时也在运行以下代码。目前是遍历所有IP进行查找,效率很低,在没找到更好的办法之前只好用它了。/** * 在局域网(LAN)里面根据主机名找到对应的IP。 * 设计作者: teasp * 信息描述: */public class IpHostInLan{ private static final int PORT = 4321;...2013-05-23 18:48:34 · 1533 阅读 · 0 评论 -
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 · 341 阅读 · 0 评论 -
实现一个sizeof获取Java对象大小
由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。 本方法使用了Unsafe类来访问对象的私有属...2013-05-17 13:12:55 · 948 阅读 · 0 评论 -
二分法查找第一个满足条件的项
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 · 437 阅读 · 0 评论 -
错误的序列号生成器
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 · 269 阅读 · 0 评论 -
序列号生成器
/** * 生成序列号,最大值为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 · 945 阅读 · 0 评论 -
按字节长度截取字符串
需求:按字节数截取字符串,但是不允许劈开汉字。 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 · 302 阅读 · 0 评论
分享