Java
jiewuyou
爱编程不爱bug
展开
-
eclipse远程调试war程序
step1. Eclipse端添加远程调试右击工程——>Debug As——>Debug Configuration 选择左窗口的Remote Java Application,右击,选择“New”,右边窗口选择工程、填写主机、端口号 step2. 启动tomcat${tomcat}/bin/catalina.sh jpda startstep3. 开始debugtomcat服务器启动之后,用刚原创 2015-04-16 09:27:45 · 2595 阅读 · 0 评论 -
Java I/O
I/O指的是输入输出,涉及到数据传输的地方都要用到I/O,如文件、网络、内存、标准输入/输出。下面是使用Java I/O类需要注意的地方 InputStream和OutputStream是所有字节流的超类,read()和write()是基本方法,读写处理的都是字节。如果想提高处理的速度,可以使用BufferedInputStream和BufferedOutputStream,这两个类通过缓冲区和数据原创 2015-04-15 17:25:48 · 579 阅读 · 0 评论 -
ThreadLocal
java.lang.ThreadLocal<T>ThreadLocal会封装T类型的对象,每一个线程使用该对象时,各自拥有不同的T实例。原理最开始以为其中封装了一个Map<Thread,T>。每次操作时,根据线程取出T。但是后来发现,这是因为ThreadLocal利用了线程的底层实现机制,在每一个线程里面封装了一个T的实例实例 private ThreadLocal<Integer> thread原创 2015-04-16 09:05:50 · 683 阅读 · 0 评论 -
classload实战
java的类加载机制分为:Bootstrap class loader、Extensions class loader和System class loader,这些class loader可以加载class文件、jar包、xml配置文件等。前两者和jvm配置有关,而System class loader则可以由程序员自己指定,下面本文将介绍两种System class loader的方式。通过参数加原创 2015-04-15 11:37:42 · 981 阅读 · 0 评论 -
maven依赖某工程确定的版本
背景maven项目中,可能存在依赖的多个工程中同时依赖某个工程,而该工程被依赖的版本却不一样。比如工程demo依赖工程A,工程B。工程A和工程B依赖的thrift的版本如下A <-- org.apache.thrift:thrift:[0.6.0]B <-- org.apache.thrift:thrift:[0.7.0]demo工程运行的时候,加载的thrift版本是不确定的,这可能导致程序运行原创 2016-04-08 19:45:00 · 1337 阅读 · 0 评论 -
线程安全且按需构建的单例模式
单例模式,即保证某个类只有一个实例,网上有很多构造单例的方法,或多或少有其缺陷。如DCL(double check lock)模式,不能保证对象能被正确发布。原创 2015-01-30 09:52:23 · 1001 阅读 · 3 评论 -
byte[]做缓存key导致JVM异常
现象产品的query模块运行一段时间后,就不能正常提供服务,严重影响了服务的可用性追查查看日志,发现读取Hbase时发生了OutOfMemory现象。 首先获取JVM的进程号,为16796 $jstat -gcutil 16796 发现频繁的发生full gc,而full gc又没有将内存清理掉 $jmap -histo 16796 查看进程中的对象,发现包com.fasterxml.原创 2016-08-20 11:59:04 · 776 阅读 · 0 评论 -
程序开发过程中常见的Maven包
maven可以自动解决java类之间的依赖关系,并且可以从网上自动下载这些jar包,同时可以将自己的工程发布给其他人使用,极大的方便了开发者的使用,被开发界广泛的使用着。本文将介绍开发过程中,一些常用的maven包PB常用的序列化反序列化包,速度比xml快,在google等公司广泛地使用着。<dependency> <groupId>com.google.protobuf</groupId>原创 2015-04-16 08:43:18 · 1048 阅读 · 0 评论 -
Eclipse插件
本文将介绍Eclipse常用插件原创 2013-12-13 22:03:41 · 923 阅读 · 0 评论 -
抽象类vs接口
本文将介绍抽象类和接口的主要区别,以及各自的应用场景原创 2014-07-31 21:10:25 · 981 阅读 · 0 评论 -
Java GC参数调优
对于正常环境的服务来说-server -Xms24G -Xmx24G -XX:PermSize=512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=20 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70对于备份服务器-server -Xms4G -Xmx4G翻译 2016-11-17 18:00:42 · 2802 阅读 · 0 评论