Core Java
c929833623lvcha
这个作者很懒,什么都没留下…
展开
-
序列化的几种方式
在java中socket传输数据时,数据类型往往比较难选择。可能要考虑带宽、跨语言、版本的兼容等问题。比较常见的做法有两种:一是把对象包装成JSON字符串传输,二是采用java对象的序列化和反序列化。随着Google工具protoBuf的开源,protobuf也是个不错的选择。对JSON,Object Serialize,ProtoBuf 做个对比。定义一个待传输的对象UserVo:转载 2013-01-31 17:18:49 · 682 阅读 · 0 评论 -
Eclipse运行java的完整命令行
当我们用Eclipse运行一个java类时,Eclipse实质也是通过java或javaw命令来运行的。Debug之后点击线程堆栈右键查看Properties具体参数看下图:原创 2013-01-28 10:31:43 · 1110 阅读 · 0 评论 -
JDK 动态代理对异常的处理及InvocationTargetException异常解析
// 接口IApublic interface IA{ public void run()throws IOException;}// 实现类public class IAImpl implements IA{@Override public void run() throws IOException{ System.out.println("IAIm原创 2013-04-16 11:37:34 · 4257 阅读 · 0 评论 -
JAVA启动参数大全之一:标准参数
java启动参数共分为三类;其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;本文主要描述标准参数部分,剩下的两个部分将会陆续推出;标准转载 2013-01-15 20:27:31 · 683 阅读 · 0 评论 -
并发场景下HashMap死循环导致CPU100%的问题
问题的症状从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU,查看堆栈,你会发现程序都Hang在了HashMap.get()这个方法上了,重启程序后问题消失。但是过段时间又会来。而且,这个问题在测试环境里可能很难重现。转载 2013-05-14 10:53:27 · 6213 阅读 · 2 评论 -
Java的System.getProperty()方法可以获取系统变量和System.getenv()获取系统环境变量
java.versionJava 运行时环境版本java.vendorJava 运行时环境供应商java.vendor.urlJava 供应商的 URLjava.homeJava 安装目录java.vm.specification.vers转载 2013-01-15 21:07:15 · 8208 阅读 · 0 评论 -
Java内部类是一种编译器现象与虚拟机无关
内部类是一种编译器现象与虚拟机无关。编译器将内部类翻译为用$分隔外部类名和内部类名的常规类文件,虚拟机对此并无所知。使用javap -private OuterClass$InnerClass。javap这个工具确实挺不错的,对分析字节码和源码都有很大的帮助。可以看出详细的内部类源码清单,其中包括了编译器自动添加的部分:public class Outer{ publi原创 2013-04-11 11:14:32 · 1004 阅读 · 0 评论 -
你应当知道的Java牛人
Java领域有很多著名的人物,他们为Java社区编写框架、产品、工具或撰写书籍改变了Java编程的方式。本文是《最受欢迎的8位Java牛人》的2.0版本。PS:排名不分先后。本文的信息整理自网络博客,信息的真实性未经过严格筛选和确认。1、James Duncan Davidson —— Tomcat 、 Ant他曾是一名软件工程师,现在是一名摄影师。转载 2015-03-22 20:17:17 · 760 阅读 · 1 评论