
java se
kjfcpua
这个作者很懒,什么都没留下…
展开
-
Java堆.栈和常量池 笔记
<br />今天复习了一下这些知识,顺便做了下笔记.<br />1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.<br />2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)<br />3. 堆:存放所有new出来的对象。<br />4. 静态域:存放静态成员(static定义的)<br />5. 常量池:存放字符串常量和基本类型常量(public static转载 2010-12-14 14:10:00 · 574 阅读 · 0 评论 -
多线程分析工具Mtrat使用
<br /> <br /> <br />http://xiao-jiang51.javaeye.com/blog/841332<br /> <br /> 一个非常不错的多线程分析工具,提供方是IBM,官方上的说明貌似是中国人开发的,NB,反编译看了下 用到了AOP的东东,对死锁的诊断非常有价值,官方地址http://www.alphaworks.ibm.com/tech/mtrat<br /> 因在一个为两W人在线服务的保险销售系统中使用到了一个并非控制器,因生产环境是1.4的版本,无法使用最新转载 2010-12-14 21:31:00 · 4052 阅读 · 2 评论 -
池的应用场景——池可以是一种阀
<br />作为一个J2EE应用程序开发者,谈到池(pool)我最先想到(也是最早接触)的是数据库连接池,很长一段时间我对池的应用也仅仅局限在数据库链接池,而且也没有去仔细思考过是什么原因促成我们去使用这项技术——如果你在那时问我为什么要使用池,我会说类似于数据库连接这类对象在创建时需要花费较长的时间,这时使用池化技术可以有效地进行重复利用池内对象,嗯,一个中规中矩的回答<br /><br />然而越来越多的人和我说创建对象的开销,已经越来越不足以成为对其进行池化的理由,很遗憾对于这种说法我没法转载 2010-12-14 21:28:00 · 774 阅读 · 0 评论 -
URLClassLoader
<br /><br />文章分类:Java编程转载自梦想Java http://www.mxjava.com <br />我们知道,Java利用ClassLoader将类载入内存,并且在同一应用中,可以有很多个ClassLoader,通过委派机制,把装载的任务传递给上级的装载器的,依次类推,直到启动类装载器(没有上级类装载器)。如果启动类装载器能够装载这个类,那么它会首先装载。如果不能,则往下传递。当父类为null时,JVM内置的类(称为:bootstrap class loader)就会充转载 2011-02-16 20:44:00 · 1317 阅读 · 0 评论 -
JAVA Integer类
<br />public class Integerxuexi {<br /> public static void main(String[] argc)<br /> {<br /> //MAX_VALUE,MIN_VALUE 表示intl类型能表示的最大/最小值<br /> //SIZE 表示二进制补码表示的int值的比特位数<br /> System.out.println(Integer.MAX_VALUE);<br /> System.out.println(Integ转载 2011-05-18 09:17:00 · 3480 阅读 · 1 评论 -
java中判断字符串是否为数字的三种方法
1用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; }2用正则表达式public static boolean isNumeric(String str){转载 2011-03-29 10:39:00 · 854 阅读 · 0 评论 -
Java语言基础:RTTI
1. 每个类都有一个Class对象,当我们在运行期第一次生成类的实例时,JVM就加载这个类的Class对象,然后用这个Class对象来创建类实例;Class类似于Delphi中的引用类TClass,用于保存类的运行时信息。 2. Class的static方法forName()用于查找某个类的Class对象,如果forName找不到你要的类的Class对象,会抛出ClassNotFoundException异常:view plaincopy to clipboardprint? 1转载 2011-04-01 15:47:00 · 502 阅读 · 0 评论 -
JAVA Calendar详解
(在文章的最后,将会介绍Date类,如果有兴趣,可以直接翻到最后去阅读)究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?比如有:月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同;阴(农)历,每个月固定28天每周的第一天 - 阳(公)历星期日是第一天;阴(农)历,星期一是第一天实际上转载 2011-06-07 11:09:00 · 646 阅读 · 0 评论 -
java中时期相关类——Date、DateFormat、Calendar
核心提示:java中时期相关类Date、DateFormat、Calendar Java 语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分。所有的开发者都应该能够计算未来的日期,定制日期的显示格式,java中时期相关类——Date、DateFormat、Calendar转载 2011-06-07 16:55:00 · 830 阅读 · 0 评论 -
什么是Base64以及sun.misc.BASE64Decoder的用法
<br /><br />Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。<br /><br />Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。<br /><br />这样说会不会太抽象了?不怕,我们来看一个例子:<br /><br />转换前 aaaaaabb cc转载 2011-04-18 16:10:00 · 2455 阅读 · 0 评论 -
理解java枚举类型
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:Java代码 public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类(java.lang.Enum)。它们继承了这个Enum中的许多有用的方法。我们对代码编译之后发现,编译器将enum类型单独编译成了一个字节码文件:Col转载 2011-04-22 09:40:00 · 727 阅读 · 0 评论 -
Java.util.date 与 java.sql.date区别和转换
<br /><br />1、将java.util.Date 转换为 java.sql.Date<br />java.sql.Date sd;<br />java.util.Date ud;<br />//initialize the ud such as ud = new java.util.Date();<br /> <br />sd = new java.sql.Date(ud.getTime());<br /> <br />2、若要插入到数据库并且相应的字段为Date类型<br />可使用Prepar转载 2011-04-20 11:01:00 · 524 阅读 · 0 评论 -
教学下载
棍子上的汗学院( 或你的口袋里汗学院) 什么是汗学院? 汗学院( http://www.khanacademy.org/ )是一个世界级的和屡获殊荣的网上图书馆用户创建萨尔曼汗,其中包含数百个高品质的互联网视频讲座免费提供到任何。 什么是汗学院就一棒? 这是一个版本的汗学院紧凑和精简,不需要互联网连接 。它包含了数学和科学讲座原创 2011-06-14 20:24:00 · 1228 阅读 · 0 评论 -
java.math.BigDecimal的用法
<br />Java中的简单浮点数类型float和double不能够进行运算。不光是Java,在其它很多编程语言中也有这样的问题。 <br />如果我们编译运行下面这个程序会看到什么?<br />public class Test {<br /> public static void main(String args[]) {<br /> <br /> System.out.println(0.05 + 0.01);<br /> Syst转载 2011-05-04 09:53:00 · 644 阅读 · 0 评论 -
BigDecimal成员变量
<br /><br />ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2<br />ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1<br /><br />BigDecimal a = new BigDecimal(1.5);<br /> System.out.println("down="+a.setScale(0,BigDecimal.ROUND_HALF_DOWN)+"/tup="+a.setScale(0转载 2011-05-09 09:51:00 · 1638 阅读 · 0 评论 -
利用串行化做深克隆
克隆或者复制有两种方式。这两种方式分别是浅克隆(浅复制)和深克隆(深复制)。 浅克隆(浅复制) 被克隆对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然值向原来的对象。换言之,浅克隆仅仅克隆所考虑的对象,而不克隆它所引用的对象。转载 2011-08-03 10:38:14 · 876 阅读 · 0 评论 -
java中String.intern() 方法到底是干啥的?
最直观的意义还是在于 intern()后字符串可以直接 == 进行比较,速度提高了3倍。难怪Lucene中的Term里面也对field字段串进行了 intern() 处理明显是为了速度啊不妨看下面这段代码、 String str1 = "Hello";转载 2011-08-11 17:05:06 · 3426 阅读 · 1 评论 -
instanceof 与isAssignableFrom
instanceof 针对实例 isAssignableFrom针对class对象 isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。 通常调用格式是 Java代码 Class1.isAssignableFrom(Class2) 调用转载 2011-12-06 11:02:51 · 28089 阅读 · 4 评论 -
ThreadPoolExecutor几点使用建议
背景前段时间一个项目中因为涉及大量的线程开发,把jdk cocurrent的代码重新再过了一遍。这篇文章中主要是记录一下学习ThreadPoolExecutor过程中容易被人忽略的点,Doug Lea的整个类设计还是非常nice的 正文先看一副图,描述了ThreadPoolExecutor的工作机制: 整个ThreadPoolExecuto转载 2011-12-07 09:33:07 · 1248 阅读 · 0 评论 -
解决Eclipse运行Jboss出现java.lang.OutOfMemoryError:PermGen space
在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法在Eclipse中运行Jboss时,时间太长可能有时候会出现java.lang.OutOfMemoryError:PermGen space的错误,这里给介绍大家一种解决方法:1. 点击debug图标旁边的小箭头;2.转载 2011-12-13 17:31:37 · 9065 阅读 · 0 评论 -
java中的transient
引用最近一段时间想把集合部分复习下,上午没事情做,读读jdk自带的src,看ArrayList类时,第二条语句难倒了我!Java代码 private transient Object[] elementData; transient关键字是什么意思啊!学java零零散散也有1年了,真是孤陋寡闻啊…… 看看下面的例子,一个登陆时,密码与ID转载 2012-01-09 17:27:19 · 690 阅读 · 0 评论 -
使用 Apache Commons CLI 开发命令行工具
基于 Apache Commons CLI 的命令行设计通常情况下命令行处理有三个步骤:定义,解析和询问阶段。本章节将依次解释这三个步骤,并将结合实例来讨论如何通过 Apache Commons CLI 来实现它们。由于本文作者一直从事和存储相关的工作,所以我们将设计一个如何向 Server 中添加 / 删除存储数据源的 CLI。以下是具体应用场景,用户可以通过以下方式来添加/删除通过 C转载 2012-01-27 16:01:01 · 1162 阅读 · 1 评论 -
java中字符串与16进制,byte之间的转换
package org.lib.code;005 006/**007* java String 与各种进制字符之间的转换008*009*转载 2012-01-27 16:17:27 · 1070 阅读 · 0 评论 -
使用Java构造高可扩展应用(1)
在本文中,我们将介绍使提高Java 多线程应用性能的一般步骤。 通过运用本文提供的一些简单规则,我们就能获得具有高性能的可扩展的应用程序。文中介绍的一些通用工具和技巧可以给程序员提供一些帮助,但更多的情况要依赖于具体的应用。AD:当CPU 进入多核时代之后,软件的性能调优就不再是一件简单的事情。没有并行化的程序在新的硬件上可能会运行得比从前更慢。当 CPU转载 2012-02-23 21:12:26 · 717 阅读 · 0 评论 -
Java 理论与实践: 应用 fork-join 框架
简介: Java™ 7 的 java.util.concurrent 包的新增功能之一是一个 fork-join 风格的并行分解框架。fork-join 概念提供了一种分解多个算法的自然机制,可以有效地应用硬件并行性。硬件趋势驱动编程语言语言、库和框架形成了我们编写程序的方式。Alonzo Church 早在 1934 年就曾表明,所有已知的计算性框架对于它们所转载 2012-02-23 21:15:48 · 530 阅读 · 0 评论 -
多核系统上的 Java 并发缺陷模式(bug patterns)
6 个鲜为人知的 Java 并发缺陷模式简介: 通过研究并发(bug patterns)缺陷模式,您既能够提高对并发编程的理解,还能够了解如何发现无效或可能无效编程方法。在本文中,作者 Zhi Da Luo、Yarden Nir-Buchbinder 和 Raja Das 阐述了 6 个鲜为人知的、可能威胁运行在多核系统上的 Java™ 应用程序的线程安全和性能的并发缺陷。转载 2012-02-23 21:23:44 · 1274 阅读 · 0 评论 -
java内存模型详解
内存模型 (memory model) 内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构将直接影响内存模型的结构.在C或C++中, 可以利用不同操作平台下的内存模型来编写并发程序. 但是, 这带给开发人员的是, 更高的学习成本.相比之下, java利用了自身虚拟机转载 2012-02-23 22:45:37 · 638 阅读 · 0 评论 -
剖析java.util.concurrent锁
1. 导言程序的性能分析是应用程序开发过程中的一个重要方面。这个工作一般是由一些专业人员来完成的,他们的目标是在一个特定的平台上,提高代码的性能。当程序是运行在多核平台的多线程或者并行程序的时候,提高性能这个问题就变得更加困难了。因为在这样的情况下,不仅需要考虑代码的性能,还需要考虑代码的可伸缩性。随着Java 5中引入了java.util.concurrent (JUC)包,在J转载 2012-02-23 21:14:05 · 3439 阅读 · 0 评论 -
关于class.getResourceAsStream(String name)与 class.getClassLoader().getResourceAsStream(String name)的路径
关于class.getResourceAsStream(Stringname)与class.getClassLoader().getResourceAsStream(Stringname)的路径name问题 首先用类加载资源文件的方式可以有以下三种:(包结构图)1) InputStream inStream = DaoFactory.class.getResourc转载 2012-02-26 20:34:41 · 1779 阅读 · 0 评论 -
常用数据结构
1. 数组(Array)数组最大的特点是预先要知道数组长度, 长度不可变,通过索引访问效率很高,因为是直接算出内存地址去读的。2. 列表(List)列表可以看作是数组的延伸, 最大的不一样是长度可变,列表按照结构来分一般分为两种:i) ArrayList这是基于数组实现的列表, 内部存储用的就是数组, 当当前数组长度不够的时候重新分配一个大一转载 2012-02-27 22:59:33 · 7753 阅读 · 1 评论 -
Java util之常用数据类型特性盘点
Java util之常用数据类型特性盘点 java.util就相当于c++的STL,是Java的一个非常重要的包,有很多常用的数据类型,不同数据类型有不同的用途,而有些数据类似乎很相似,怎样选择应用,就需要对它们进行辨析。 下面列出了这些数据类型的特点,根据这些特点,就可以有针对性的选用 * 蓝色为接口,绿色为具体实现类 * 缩进的层次结构,就是implement或ex转载 2012-03-07 17:36:27 · 454 阅读 · 0 评论 -
Java中常用的加密方法(JDK)
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算转载 2012-03-27 22:16:01 · 2680 阅读 · 0 评论 -
java中Date与String的相互转化
1:大体思路 [html] view plaincopy这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=new Date("2008-04-14"); 方法2: SimpleDateFo转载 2012-03-27 22:10:39 · 789 阅读 · 0 评论 -
Java虚拟机
JVM JVM即Java虚拟机,它是一个想象中的机器,通过它Java可以实现编译后的跨平台运行。 主要的JVM有Oracle的HostSpot。(原来叫Sun HostSpot)Oracle的JRockit。(原来叫Bea JRockit,本称为世界上最快的JVM)Google的Dalvik。(Google android的虚拟机,特点转载 2012-03-11 18:32:18 · 583 阅读 · 0 评论 -
Java Ping
Java代码 ** * 能否ping通IP地址 * @param server IP地址 * @param timeout 超时时长 * @return true能ping通 */ public static boolean pingServer(String server, int t转载 2012-03-11 18:32:56 · 475 阅读 · 0 评论 -
List删除问题
错误:java 代码List list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5");转载 2012-03-11 18:33:26 · 553 阅读 · 0 评论 -
计算机常识
笔记本一般是100M bytes每秒。 网络上传一般是 512bytes每秒 512/8KB 瓶颈:CPU,内存和硬盘。 内存和硬盘效率差一百倍。 硬盘30M字节。硬盘的性能依赖于硬盘的转速和单碟(大容量单碟会快)。 顺序读(速度在一个连续的地方)速度快。随机读慢。寻道时间是8毫秒。越靠外圈速度越快。 内存不要超过物理内存。内存占用过大,导致硬盘狂闪。 虚拟内存转载 2012-03-11 18:34:30 · 568 阅读 · 0 评论 -
java基础
1。指令集分为精简指令集和复杂指令集,一个精简指令能完成多个复杂指令集完成的任务,但是编译器复杂 2。java没有寄存器,数据是放在栈里面 3。java是解释执行的,比编译执行差10倍。java首先会编译成字节码,然后解释执行。 4。JVM不能调用平台相关的程序,如注册表,如需要调用需要使用C. 5。JDK=java开发工具包 包括javac,jar转载 2012-03-11 18:34:54 · 463 阅读 · 0 评论 -
自定义类加载器
import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.lang.reflect.Method;import java.ne转载 2012-03-11 18:58:03 · 425 阅读 · 0 评论 -
JVM调优
理论参考:JAVA性能优化—Sun Hotspot JDK JVM参数设置http://www.hashei.me/2009/05/tuning-the-sun-hotspot-jdk.html 我的做法:去掉-Xmx512 -client -Dsun.rmi.dgc.server.gcInterval=3600000-Dsun.rmi.dgc.client.gcI转载 2012-03-11 18:58:40 · 506 阅读 · 0 评论