
Java核心技术
sun_abc
这个作者很懒,什么都没留下…
展开
-
Java中使用BigDecimal进行浮点数精确计算、超大整数、浮点数等计算
(注:前面写了一个超大整数相加的类,参见:超大整数相加,超过了long的范围,你要怎么做!,后来有朋友评论说BigDecimal可以完全实现我的这这个功能,刚开始的时候,我还不服气,据我所知那里有这样的类哦,后来报着说服他的心理去找了一下,呵呵,结果居然自己被说服了,确实有这么一回事,利用BigDecimal操作超大整数一样,也是先把要操作的数据转换为字符串型。使用BigDecimal可以进行高精度的工程运算,就不会计算中的精度发愁了,感谢原作者。)转自:http://chongtianpig.转载 2010-07-01 17:14:00 · 569 阅读 · 0 评论 -
关于String的hashCode
<br />String str=new String("abc");<br />String str2="abc";<br />System.out.println(str.hashCode()==str2.hashCode());//true原创 2010-09-07 17:24:00 · 477 阅读 · 0 评论 -
Why does String.valueOf(null) throw a NullPointerException?
http://stackoverflow.com/questions/3131865/why-does-string-valueofnull-throw-a-nullpointerexception原创 2010-09-06 15:17:00 · 525 阅读 · 0 评论 -
深入Java关键字null
一、null是代表不确定的对象 Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。 比如:int a = null;是错误的。Ojbect o = null是正确的。 Java中,变量的适用都遵循一个原则,先定义,并且初始化后,才可以使用。我们不能int a后,不给a指定值,就去打印a的值。这条对对于引用类型变量也是适用的。 有时候,我们定义一个引用类型变量,在刚开始的时候,无法给出一个确定的值,但是不指定值,程序可能会在t转载 2010-09-06 15:01:00 · 443 阅读 · 0 评论 -
java的运算符
Java的运算符可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。<br /><br /><br />1.算术运算符 <br /> Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。<br /><br /> (1)一元运算符: <br /> 一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。<br /> 加1、减1运算符只允许用于数值转载 2010-09-07 15:48:00 · 690 阅读 · 0 评论 -
删除正在循环迭代的集合元素的分析
publicclass IteratorTest { publicstaticvoid main(String[] args) { //List的元素不能使用原集合删除,一定要使用迭代器删除 List list = new ArrayList(); list.add("Hello"); list.add("world"); list.add("helloWorld"); list.add("helloWorld2");//====原创 2010-09-18 14:05:00 · 938 阅读 · 0 评论 -
java命令行简介
<br />1,不带package的情况:<br />Hello.java<br /> <br />public Class Hello<br />{<br /> public static void main()<br /> {<br /> System.out.println("hello......");<br /> }<br />}<br /> <br />生成java文件:<br />c:/java/hello/Hello.java<br />编译:<b原创 2010-09-16 09:15:00 · 464 阅读 · 0 评论 -
关于String Pool的一点认识
1,String.valueOf()的返回值:String a=String.valueOf("abc");//a-->String PoolString b=String.valueOf("abc")+String.valueOf("def");//b-->heapString c="abcdef";//c-->String PoolSystem.out.println(b==c);//falseString d=String.valueOf("abc");System.out.println(a==d)原创 2010-09-07 09:03:00 · 565 阅读 · 0 评论 -
Java对String字符串对象的创建,管理和“+”运算符的实现
<br />Constant Pool常量池的概念:<br /><br />在讲到String的一些特殊情况时,总会提到String Pool或者Constant Pool,但是我想很多人都不太<br />明白Constant Pool到底是个怎么样的东西,运行的时候存储在哪里,所以在这里先说一下Constant Pool的内容.<br />String Pool是对应于在Constant Pool中存储String常量的区域.习惯称为String Pool,也有人称为<br />Str转载 2010-09-06 17:09:00 · 712 阅读 · 0 评论 -
十进制=>二进制
<br />用2辗转相除至结果为1 <br />将余数和最后的1从下向上倒序写 就是结果 <br />例如302 <br />302/2 = 151 余0 <br />151/2 = 75 余1 <br />75/2 = 37 余1 <br />37/2 = 18 余1 <br />18/2 = 9 余0 <br />9/2 = 4 余1 <br />4/2 = 2 余0 <br />2/2 = 1 余0 <br />故二进制为100101110原创 2010-09-24 09:45:00 · 587 阅读 · 0 评论 -
如何使用Java中的Date和Calendar类
开发者在线 Builder.com.cn 更新时间:2007-10-13作者:整理 来源:天极网本文关键词: JAVADateCalendar<br />Java 语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分. 日期是商业逻辑计算一个关键的部分.所有的开发者都应该能够计算未来的日期, 定制日期的显示格式, 并将文本数据解析成日期对象. 我们写了两篇文章, 这是第一篇,我们将大概转载 2010-09-25 16:33:00 · 1102 阅读 · 0 评论 -
java的对象、对象句柄、变量等在内存的分布
摘自TIJ第二章 程序运行时,我们最好对数据存储到什么地方做到心中有数。特别要注意的是内存的分配。有六个地方都可以存储数据: (1) 寄存器(Registers)。这是速度最快的存储场所,因为寄存器其他所有存储媒介都不同:它位于处理器内部。不过,寄存器的数量十分有限,所以寄存器是根据需要由编译器适当地分配。作为一个程序员,我们对此没有直接的控制权,也没办法在程序里头感觉到寄存器的任何存在迹象。 (2) Stack(栈)。位于一转载 2010-11-19 18:43:00 · 2041 阅读 · 0 评论 -
Class.forName() 与new 区别
<br />Class.forName(xxx.xx.xx) 返回一个类<br />首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。<br /><br />至于什么时候用,可以考虑一下这个问题,给出一个字符串变量,它代表一个类的包名和类名,怎么实例化它?只有提到的这个方法了,不过要再加一点。<br />A a = (A)Class.forName("pacage.A").newInstance();<br />这转载 2010-11-19 18:55:00 · 1001 阅读 · 0 评论 -
java中字节流与字符流有什么区别简介?
字节流与字符流主要的区别是他们的的处理方式<br /><br />字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的<br />但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化<br />这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联<br />在实际开发转载 2010-09-27 10:17:00 · 1133 阅读 · 0 评论 -
获得程序当前路径System.getProperty("user.dir");
<br />java2核心技术 I <br /> 因为所有在java.io中的类都是将相对路径名解释为起始于用户的当前工作目录,所以应该清楚当前的目录。<br />可以通过调用System.getProperty("user.dir") 来获得。<br /><!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun;转载 2010-09-26 16:33:00 · 10487 阅读 · 3 评论 -
利用JS提高组合拼接字符串效率的方法
<br />日志原文:http://uniso.blog.sohu.com/104853107.html利用JS提高组合拼接字符串效率的方法希望跟各位高手交流,搞过web开发的朋友都知道,在脚本开发过程中,经常会按照某个规则,组合拼接出一个大字符串进行输出。比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值后动态分析创建HTML标签时,不过这里我就不讨论拼接字符串的具体应用了,我只是想在这里讨论一下拼接的效率。<br /> 字符串的拼接在我们原创 2010-09-24 12:15:00 · 7309 阅读 · 0 评论 -
使用三目运算符时注意的一个问题
<br />System.out.println("pluginId: "+replaceId == null ? id : replaceId);<br />编译后:System.out.println(("pluginId: " + replaceId == null) ? this.id : replaceId);原创 2010-09-24 09:35:00 · 529 阅读 · 0 评论 -
JavaScript中使用Array注意的问题
<br />var arr=new Array(5);<br />arr.push("a");<br />arr.push("b");<br />arr.push("c");<br />arr.push("d");<br />arr.push("e");<br />alert(arr.length);<br />此时弹出的结果是10,push会在5个空的字符串后面,加入元素。<br /> <br /> <br />备注:new Array();<br />new Array(si原创 2010-09-24 09:39:00 · 451 阅读 · 0 评论 -
Java泛型的好处
java泛型是javaSE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。 可以在集合框架(Col原创 2010-09-26 10:29:00 · 56116 阅读 · 7 评论 -
Java 值传递 引用传递
<br />Java代码<br />public class ParamTest { <br /> // 初始值为0 <br /> protected int num = 0; <br /> <br /> // 为方法参数重新赋值 <br /> public void change(int i) { <br /> i = 5; <br /> } <br /> <br /> // 为方法参数重新赋值 //转载 2010-09-03 12:50:00 · 1142 阅读 · 1 评论 -
Java中获得程序当前路径的4中方法:
Java中获得程序当前路径的4中方法:<br /><br />在Application中: <br /><br /><br /><br />import java.util.*;<br /><br />public class TestUserDir {<br /><br /><br /><br />/**<br /><br />* @param args<br /><br />*/<br /><br />public static void main(String[] args转载 2010-09-15 12:16:00 · 618 阅读 · 0 评论 -
java jar包打包命令---可以执行
1,准备:--hello --Hello.class--manifest.mfmanifest.mf:Main-Calss:hello.HelloHello.java:package hello; public class Hello { public static void main(String a[]){ System.out.println("Hello main method"); } } 2,打包:jar -cvfm hello1原创 2010-06-11 17:23:00 · 659 阅读 · 0 评论 -
java 编译运行命令
<br />java 编译运行(Windows的cmd命令行下): <br />在 D:/test/目录中有hello目录,hello目录中有Hello.java类。 <br /> <br />package hello; <br />public class Hello { <br /> public static void main(String a[]){ <br /> System.out.println("Hello main method"); <br /原创 2010-06-11 16:13:00 · 672 阅读 · 0 评论 -
java6的@override注解与java5的不同之处
首先看一下下面的示例代码 :Parent....javapublic class Parent...{ public void parentMethod() ...{ }}IChild.javapublic interface IChild ...{ void interfaceMethod();}Child.javapublic class Child extends Parent implements IChild ...{ @Override转载 2010-07-29 23:26:00 · 1195 阅读 · 0 评论 -
Java编码问题完全解决方案
本文介绍了Java编码是怎么回事,以及一些中文编码的常见问题及解决方案。对于Java语言来说,在其内部使用的是UCS2编码(2个字节的Unicode编码)。这种编码并不属于某个语系的语言编码,它实际上是一种编码格式的世界语。一、Java编码是怎么回事?对于使用中文以及其他非拉丁语系语言的开发人员来说,经常会遇到字符集编码问题。对于Java语言来说,在其内部使用的是U转载 2010-05-22 09:27:00 · 597 阅读 · 0 评论 -
Java与Unicode:
Java与Unicode: Java的class文件采用utf8的编码方式,JVM运行时采用utf16。 Java的字符串是unicode编码的。 总之,Java采用了unicode字符集,使之易于国际化。转载 2010-05-22 09:30:00 · 467 阅读 · 0 评论 -
Java 推荐读物与源代码阅读
<br />文章分类:Java编程1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的《Thinking in Java 》。它是一本写的相当深刻的技术书籍,Java 语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel 在网络上被称为天才的投机者,作者的《Thinking in C++ 》在1995 年曾获SoftwareDevelopment Jolt Award 最佳书籍大奖,《Thinking in Java 》转载 2010-07-06 10:16:00 · 468 阅读 · 0 评论 -
浅谈Java的输入输出流
<br />Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。 <br /> 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,转载 2010-07-08 16:30:00 · 428 阅读 · 0 评论 -
ANT-build.xml文件详解
<br />Ant的概念<br />可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道<br />make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就<br />是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有<br />一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,用样也<br />是基于这些缺陷对Ant做了更好的设计。<br转载 2010-06-12 14:26:00 · 336 阅读 · 0 评论 -
天气预报代码1
天气预报代码1天气预报代码2天气预报代码3原创 2010-06-13 13:56:00 · 741 阅读 · 0 评论 -
Java对象初始化顺序
<br />java对象是如何进行初始化的,新建一PrintClass.java文件如下(包括类PrintClass以及A和其子类B),编译运行其中的main方法,<br /> <br />public class PrintClass{<br /> public static void main(String[] args){<br /> new B();<br /> }<br /> PrintClass(String var) {<br转载 2010-09-03 10:46:00 · 533 阅读 · 0 评论 -
java中关于public class
1,一个java程序中至多只能有一个public类,也可以没有任何public类;2,一个java程序中有几个class就会被编译成几个class文件。3,main方法可以在任意一个类中(main只是一个程序入口)原创 2010-09-03 09:42:00 · 6967 阅读 · 0 评论 -
java中堆和堆栈的区别
<br />1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 <br /><br /> 2.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分转载 2010-06-21 09:31:00 · 404 阅读 · 0 评论 -
关于Java String对象创建问题解惑
<br />先看看下面的代码<br /> public String makinStrings()<br />jA)Dc%v(Ah;I:j ]0 {ITPUB个人空间'pB^m8~8K�N<br /> String s = "Fred";ITPUB个人空间'z_}j(c]<br /> s = s + "47";ITPUB个人空间CR1l_b&E<br /> s = s.substring(2,转载 2010-06-18 23:28:00 · 511 阅读 · 0 评论 -
在Java中实现对象比较
<br /> 一、跟对象比较的几个相关的概念<br /> 为了更加审核的理解对象比较的含义以及多个比较方法之间的差异,笔者认为读者首先需要了解几个相关的概念,或者说几对关系。<br /> 一是类与对象的关系。类是具体的抽象,而对象是类的具体实现。这可能听起来还是有点模糊。做一个形象的比喻,类就好像是用来制作塑料盒子的模具,只要将PVC料注入到这个模具中就可以生产对应形状的盒子。而对象就好像是生产出来的盒子。虽然模具同一个,但是生产出来的盒子彼此之间仍然是不同的。一方面先天性就是不同转载 2010-06-18 23:14:00 · 486 阅读 · 0 评论 -
java中String的比较(转载)
<br />看例子:<br />例子A:<br /> String str1 = "java";<br /> String str2 = "java";<br /> System.out.print(str1==str2);<br />地球上有点Java基础的人都知道会输出false,因为==比较的是引用,equals比较的是内容。不是我忽悠大家,你们可以在自己的机子上运行一 下,结果是true!原因很简单,String对象被放进常量池里了,再次出现“java转载 2010-06-18 23:22:00 · 464 阅读 · 0 评论 -
Java中对HashMap的深度分析
<br />在Java的世界里,无论类还是各种数据,其结构的处理是整个程序的逻辑以及性能的关键。由于本人接触了一个有关性能与逻辑同时并存的问题,于是就开始研究这方面的问题。找遍了大大小小的论坛,也把《Java虚拟机规范》,《apress,.java.collections.(2001),.bm.ocr.6.0.shareconnector》,和《Thinking in Java》翻了也找不到很好的答案,于是一气之下把JDK的 src解压出来研究,扩然开朗,遂写此文,跟大家分享感受和顺便验证我转载 2010-08-10 11:21:00 · 501 阅读 · 0 评论 -
HASHTABLE的内部实现
<br />public class TestHashtable {<br /> public static void main(String[] args){<br /> Hashtable ht = new Hashtable();<br /> ht.put("sichuan","chengdu"); //改变以下四行代码的顺序,可能会改变输出内容的顺序 <br /> ht.put("hunan","changsha"); <br转载 2010-08-10 11:16:00 · 858 阅读 · 0 评论 -
Java InputStream 的mark 和reset操作
Java InputStream 的mark 和reset操作mark用于标记当前位置;在读取一定数量的数据(小于readlimit的数据)后使用reset可以回到mark标记的位置。FileInputStream不支持mark/reset操作;BufferedInputStream支持此操作;mark(readlimit)的含义是在当前位置作一个标记,制定可以重新读取的最大字节数,也就是说你如果标记后读取的字节数大于readlimit,你就再也回不到回来的位置了。通常InputStream转载 2010-11-26 11:48:00 · 8802 阅读 · 0 评论