java
ado1986
非典型程序员
展开
-
hashCode、equals、==
hashCode和equals是Object类中的两个方法,其中hashCode()是一个本地方法。 (1)hashCode():返回一个整型的哈希值,在HashMap、HashTable等类中有使用。 比如:在HashMap中比较键是否一致。e.hash == hash && ((k = e.key) == key || key.equals(k)) 在使原创 2012-12-28 17:33:21 · 929 阅读 · 1 评论 -
ThreadLocal类详解
众所周知,ThreadLocal对象可以每一个线程保存一份值,可以避免因线程间共享数据带来的问题。原创 2014-05-21 10:57:00 · 897 阅读 · 0 评论 -
java序列化总结
今天对java序列化做个总结,具体原创 2014-05-23 14:37:56 · 731 阅读 · 0 评论 -
理解Java对象序列化
转载自http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective J转载 2013-01-04 16:07:19 · 714 阅读 · 0 评论 -
DataInputStream类readLong()引起的思考
今天无意中看了下jdk中的DataInputStream类,然后看到readLong()方法,如下:private byte readBuffer[] = new byte[8];public final long readLong() throws IOException { readFully(readBuffer, 0, 8); return ((原创 2013-08-29 17:51:07 · 2297 阅读 · 0 评论 -
jconsole监控远程weblogic和tomcat
jconsole可以对远程主机上的java进程的内存使用情况进行监控。本文将主要讲解如何监控安装在sunos上的weblogic和安装在redhat上的tomcat。原创 2014-09-14 12:15:33 · 2237 阅读 · 0 评论 -
web应用不断创建新的session
为什么会不断创建新的session?不再是因为禁用cookie的原因。原创 2014-09-17 18:34:48 · 2458 阅读 · 0 评论 -
web应用导致系统负载过高问题排查
在linux服务器上,用uptime、top查看系统的负载明显过高,经过排查,发现是因为代码中死循环造成的。具体的排查过程请参照本文。 使用top命令,发现load average指标值都在1附近,偏高。当然也可以用uptime。用top的好处是可以看到各个进程使用资源的一个排名。在top结果页面,输入P,以cpu消耗进行排名,发现有个java进程占用了98%的cpu资源。记下该进程的p原创 2014-12-26 11:35:36 · 5111 阅读 · 0 评论 -
eclipse使用maven插件(m2e)配置及运行web项目
maven是一个项目管理工具,它可以方便对项目进行管理。本文将介绍如何在eclipse环境下,使用maven对web项目进行配置,并在tomcat容器下进行运行及调试。原创 2014-09-08 19:10:40 · 8328 阅读 · 0 评论 -
java.lang.UnsupportedClassVersionError
今天在用eclipse调试maven项目时,启动应用报错:java.lang.UnsupportedClassVersionError: **************** : Unsupported major.minor version 51.0****************为某个类路径。该问题是因为jdk版本原因造成的。class文件是以jdk1.7编译的,而我本地的环境是jdk1.原创 2015-06-11 17:01:05 · 681 阅读 · 0 评论 -
类找不到问题追踪及分析
服务器有时无法响应,后台报出类无法找到。根据后台日志,从直观问题分析出深层次的原因。原创 2015-08-13 10:12:36 · 890 阅读 · 0 评论 -
maven项目调试Junit类
maven项目提供了对单元测试类的批量执行功能,但有时我们想针对某个类进行调试,尽管这些类的配置可能依赖filter属性,也是可以进行测试的。方法:执行mvn install,将项目打包,然后再执行debug->junit,就可以正常调试了。原创 2015-07-24 15:42:25 · 1019 阅读 · 0 评论 -
问题分析:java.lang.OutOfMemoryError:unable to create new native thread
我们经常遇到的是堆内存、持久代内存溢出,今天将介绍一种新的OOM类型。同时附上分析问题以及解决问题的一些思路。原创 2015-09-08 09:52:35 · 2449 阅读 · 0 评论 -
Eclilpse导入maven项目,无法自动构建为java项目的问题
从git上下载一个maven项目后,按步骤导入后,发现无法正常展现为java项目。导入后只生成了.project文件,并没有生成.classpath文件。最后发现问题出在没有设置eclipse的maven的配置信息:settings.xml。设置一下就好了。原创 2015-09-07 08:57:34 · 1466 阅读 · 0 评论 -
spring同名bean覆盖问题
默认情况下,spring在处理同一个ApplicationContext中名称相同的bean时,分为两种情况处理:1、如果两个bean是在同一个配置文件中,那么spring会报错。2、如果两个bean是在不同的配置文件中,默认情况下,spring会覆盖先前的bean。在配置文件很多时,如果在启动时,对于同名的bean加载没有异常信息,出现问题后会比较难以定位。在spring中,处理原创 2015-10-22 16:19:04 · 13581 阅读 · 2 评论 -
[OOM]记一次线上OOM的问题
监控到系统OOM问题后,我们应该怎么去定位问题,怎么去解决问题呢?本篇文章以实际的场景为例,详细描述了解决问题的思路,供大家参考。各位读者可以进行评论,咱们一块探讨。原创 2015-10-29 16:59:41 · 1767 阅读 · 0 评论 -
监控线上系统异常日志
在监控线上系统时,需要实时监控异常日志信息。原创 2014-04-29 10:24:35 · 3150 阅读 · 0 评论 -
java基本类型
在java中,有八种基本类型,本文对这些类型做个介绍。1、布尔型boolean2、字符型char 占2个字节3、整型byte 占1个字节short 占2个字节int 占4个字节long 占8个字节4、小数型float 占4个字节double 占8个字节注意:1、因为java的平台无关性,所以这里能够明确指出每个类型占用字节数;2、原创 2014-03-21 11:48:13 · 1242 阅读 · 0 评论 -
log4j日志级别
log4j有5个日志级别,优先级分别为:DEBUG 当程序里调用的级别高于或等于配置文件里设置的级别时才会输出日志。翻译 2012-12-05 11:34:42 · 882 阅读 · 0 评论 -
Java泛型
本文转载自:Java深度历险(五)——Java泛型 http://www.infoq.com/cn/articles/cf-java-genericsJava泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。对于泛型概念的引入,转载 2012-12-26 11:02:29 · 610 阅读 · 0 评论 -
JDK各版本特性
JDK各版本的增强或区别可参加官方文档:http://docs.oracle.com/javase/ JDK5的新特性(http://docs.oracle.com/javase/1.5.0/docs/relnotes/features.html): 1、泛型---提供了编译器参数类型的安全性。该功能在集合框架中得到了普遍使用。 2、枚举enum 3、注解原创 2012-12-26 14:11:42 · 1094 阅读 · 0 评论 -
面向对象的特征
面向对象的四个特征:抽象、封装、继承、多态。原创 2013-01-28 15:58:32 · 645 阅读 · 0 评论 -
String、StringBuilder、StringBuffer
转自:http://www.importnew.com/2217.htmlString是不可变对象。这点非常重要。 参考下面这张图可以了解得很清楚,注意不可达对象、内存回收:转载 2013-01-16 13:29:05 · 541 阅读 · 0 评论 -
Java性能小技巧
转载自:http://www.importnew.com/1531.html局部决定整体。一个应用的整体性能取决于每个组件的性能。下面是一些帮助你提高应用性能的Java编程技巧:编程技巧原因及策略避免重复创建对象为什么:更少的对象会需要更少的垃圾回收使用的空间越少,应用的性能越好怎么做:重复转载 2013-01-16 14:24:33 · 531 阅读 · 0 评论 -
重载(overloading)与重写(overriding)
重载方法在编译时起作用(例如,静态绑定),重写方法在运行时起作用(例如,动态绑定)。静态绑定意味着JVM在编译时决定调用的类或方法。而动态绑定时,JVM是在运行时决定调用的类或方法。动态绑定设计是多态的基础。public class MethodOverrideVsOverload { public boolean equals( MethodOverrideVsOverload o原创 2013-01-16 14:12:27 · 734 阅读 · 0 评论 -
java格式化输出
java中有三种格式化输出的方式:1、System.out.format()2、String.format()3、Formatter类 格式化样式:%[argument_index$][flags][width][.precision]conversion原创 2013-02-13 15:19:52 · 868 阅读 · 0 评论 -
wait、sleep、yield区别
wait:1、属于Object的本地方法。2、暂停当前线程,并释放锁。3、调用notify()或notifyAll()方法唤醒线程。sleep:1、Thread类的静态方法。2、当前线程休眠,但不释放锁。3、其他线程可以继续执行,无论该线程优先级高与否。4、休眠一段时间后,自动执行。yield:1、Thread类的静态方法。2、暗示具有相同优先级的其他线原创 2013-02-13 17:52:29 · 1388 阅读 · 0 评论 -
java线程wait、notify、notifyAll
wait()、notify()和notifyAll()是Object类的三个本地方法,且都是final,不能被重写,也就是所有的对象均含有这三个方法。大体上来说,wait()方法是使调用该方法的线程释放对此对象的锁,并使得当前的线程阻塞。notify()方法则是随机选择一个因调用了wait()方法而阻塞的线程解除阻塞。notifyAll()方法则是唤醒所有因调用了wait()方法而阻塞的线程,但是原创 2012-11-02 17:04:33 · 2898 阅读 · 0 评论 -
克隆、深拷贝和浅拷贝
浅拷贝:复制一个对象,对象内部存在的指向其他对象的引用则不赋值。 深拷贝:除了赋值对象本身外,还复制对象内部引用指向的对象。 为了更加清楚地表达两者之间的区别,用图示说明。 假设有一个对象A,包含两个对象A1、A2的引用。 对A进行浅拷贝后,得到对象B,但是对象A1、A2并没有被拷贝: 对A进行深拷贝,得到对象B的同时,A1和A2连同它们的原创 2012-12-26 16:17:39 · 615 阅读 · 0 评论 -
java缓存相关资料
ehcache介绍:http://www.blogjava.net/xiaohuzi2008/archive/2012/07/26/384046.html转载 2014-01-05 18:55:10 · 773 阅读 · 0 评论 -
线上问题分析:The target server failed to respond(目标服务器返回失败)
The target server failed to respond。问题分析的思路,理解HTTP协议、TCP协议等相当有帮助。原创 2015-09-07 17:57:13 · 57603 阅读 · 2 评论