java
文章平均质量分 86
lgh1117
这个作者很懒,什么都没留下…
展开
-
关于java中JDK5的打包,拆包以及"=="和equals的问题
我们知道,JDK1.5中,增加了一个新的特性之一,就是自动装包和拆包,是的,正是这个新的特性,使得我们很多程序员在进行原型数据和对象数据类型比较的时候,能够很方便的进行.但是,正是应为这样,我们的问题往往出现在我们难以预料的地方. 很多时候,我们对于数字,比如123和343的比较,都使用数学符号进行比较,比如使用"=="这个比较,这这是没有任何错误的,可是,这样的比较是没有意思,因为我原创 2008-10-30 09:33:00 · 1687 阅读 · 3 评论 -
java计算内存大小 java计算对象占用内存大小
使用第三方提供的jar包,介绍如下:IntroductionWith java.SizeOf you can measure the real memory size of your Java objects. Download it here The project is a little java agent what use the原创 2013-09-16 16:04:59 · 1565 阅读 · 0 评论 -
自己动手编译Windows版的OpenJDK 7
声明: 本文来自于《深入理解Java虚拟机:JVM高级特性与最佳实践》第一章,转载请注明出处。作者推荐大家对本文“看过就算”,真正要编译JDK的话,请不要选择在Windows平台编译,难度……嗯,应该说是“麻烦程度”比Linux平台编译高几个数量级。在Linux平台的JDK编译攻略,请参考撒迦这篇文章。相信我,哪怕你没有Linux环境,临时装一个ubuntu,加上安装操作系统的时间都比原创 2013-09-22 17:19:20 · 3476 阅读 · 0 评论 -
java.lang.Instrumentation作用,虚拟机监控
Instrumentation是Java5提供的新特性。使用Instrumentation,开发者可以构建一个代理,用来监测运行在JVM上的程序。监测一般是通过在执行某个类文件之前,对该类文件的字节码进行适当的修改进行的。java.lang.instrument中需要关注的是ClassFileTransformer和Instrumentation接口。每个代理类必须实现 ClassFileTr转载 2013-11-06 10:25:48 · 1460 阅读 · 0 评论 -
java字节码修改
对于Java程序员来说,工作中经常会遇到这样一些问题,比如引用了些第三方提供的非开源jar包,这个时候我们需要用它,甚至需要改它的内容。怎么办?下面看看开发中会遇到哪些问题?某个类的里面的字段默认值不符合需求要改掉. 某个方法里面有很多校验,想直接return ;绕过校验。 某个方法里面的计算方法太复杂,想用自己的计算方式。替换方法体。 首先声明一点,如果是收费的,切勿参加商业性质。往转载 2013-11-06 11:10:31 · 1726 阅读 · 0 评论 -
Java Observable 模式
一、Observer模式的意图: 在对象的内部状态发生变化时,自动通知外部对象进行响应。 二、Observer模式的构成: ·被观察者:内部状态有可能被改变,而且又需要通知外部的对象 ·观察者:需要对内部状态的改变做出响应的对象 三、Observ转载 2014-03-06 20:41:38 · 550 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁转载 2015-09-09 21:31:38 · 820 阅读 · 0 评论 -
jdk1.5 jdk1.6 jdk1.7 jdk1.8 特性
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。JDK1.5新特性: 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就转载 2015-10-07 10:52:01 · 8100 阅读 · 0 评论 -
jdk历史版本查找
http://www.oracle.com/technetwork/java/archive-139210.htmljdk的所有历史版本在这里都能找到原创 2015-11-27 13:54:29 · 661 阅读 · 0 评论 -
java获取真实的客户端IP地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.bt285.cn / 的URL时,用request.getRem原创 2013-08-23 15:27:58 · 936 阅读 · 1 评论 -
JVM性能调优
最近因项目存在内存泄漏,故进行大规模的JVM性能调优,现把经验做一记录。一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:Perm转载 2013-03-07 22:33:11 · 664 阅读 · 0 评论 -
java动态代理(转载)
动态代理是很多框架和技术的基础, spring 的AOP实现就是基于动态代理实现的。了解动态代理的机制对于理解AOP的底层实现是很有帮助的。 查看doc文档就可以知道,在java.lang.reflect包中有一个叫Proxy的类。下面是doc文档对Proxy类的说明: "A dynamic proxy class (simply referred to原创 2010-03-22 21:41:00 · 796 阅读 · 1 评论 -
关于SAXParser加载dtd报错问题解析
如果使用SAXParser进行对XML的解析,不管对SAXParserFactory工厂的setInvidating设置为false,SAXParser在加载XML的时候,总会对XML中的DTD进行验证,如果DTD文件的路径是绝对的,那么一般没有什么问题,如果使用的路径是相对的,那么,就很容易发生DTD路径找不到的错误,到时整个XML不能进行正常加载解析,遇到这个情况,需要告诉解析器SAXPars原创 2011-12-26 22:13:29 · 2025 阅读 · 0 评论 -
java 数字转换货币实现程序
public class CurrencyTest { private static final String[] NUMBERS = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; private static final String[] BIG_POS = {"","万","亿"}; private static final String原创 2012-01-02 21:28:31 · 4875 阅读 · 0 评论 -
关于java的路径问题
1.如何获得当前文件路径 常用: 字符串类型:System.getProperty("user.dir"); 综合: package com.zcjl.test.base; import java.io.File; public class Test { public static void main(String[] args) throws Excep原创 2012-06-17 21:34:20 · 1508 阅读 · 0 评论 -
JAXB:使用annotation绑定XML(xmlns)
在java开发中使用XML几乎是每个程序员都会碰到的,目前可供我们选择的库也有很多,包括,dom4j, jaxen, SAX等等,本文将介绍如何使用JAXB进行Object-XML mapping.JAXB目前已经集成到了JDK6中,但是还是推荐下载使用最新版的jaxb库, https://jaxb.dev.java.net/从JAXB2.0开始,可以通过使用annota原创 2012-06-26 15:21:20 · 8653 阅读 · 0 评论 -
spring事务 spring事务代理
根据代理机制不同,有以下几种配置方式:先定义一个DAO接口及实现类:public interface IUserDao { public void insertUser(UserTable user); } public interface IUserDao { public void insertUser(UserTable user);转载 2012-10-16 13:56:43 · 966 阅读 · 0 评论 -
JVM中可生成的最大Thread数量
最近想测试下Openfire下的最大并发数,需要开大量线程来模拟客户端。对于一个JVM实例到底能开多少个线程一直心存疑惑,所以打算实际测试下,简单google了把,找到影响线程数量的因素有下面几个:-Xmsintial java heap size-Xmxmaximum java heap size-Xss转载 2013-03-07 22:31:08 · 843 阅读 · 1 评论 -
Java编程中线程池的最大性能开发与风险规避
虽然线程池能大大提高服务器的并发性能,但使用它也会存在一定风险。与所有多线程应用程序一样,用线程池构建的应用程序容易产生各种并发问题,如对共享资源的竞争和死锁。此外,如果线程池本身的实现不健壮,或者没有合理地使用线程池,还容易导致与线程池有关的死锁、系统资源不足和线程泄漏等问题。 1.死锁 任何多线程应用程序都有死锁风险。造成死锁的最简单的情形是,线程A持有对象X的锁,并且在等待对象Y转载 2013-03-07 22:32:35 · 804 阅读 · 1 评论 -
MySql PreparedStatement executeBatch过慢问题
在近期工作中,数据库使用到了MySql引擎,在一次数据导入几万条数据,如果一条一条插入,必然性能不佳,顾使用到了JDBC中PreparedStatement的executeBatch方法来批量提交数据,以此提高性能,但结果让我们大吃一惊,性能不升反降,由于服务器在异地,2万条左右的数据,整整提交了20分钟,简直破我的三观,于是就开启了排查之路。 过程中一直怀疑代码有问题,线程死锁(用到了...原创 2018-05-06 12:40:29 · 12643 阅读 · 5 评论