ThinkingInJava
文章平均质量分 76
supercssupercs
这个作者很懒,什么都没留下…
展开
-
String Pool,String a=new String("abc");
[size=medium]在jvm中存在着String PoolString pool就是字符串池 例如: String str1="asd";String str2="asd"; 结果是str1==str2 因为String str1="asd";先会检查String pool中是否有asd这个字符串,若存在不必另外划分区间str2直接引用str1,这样能节省存储的空间...原创 2009-07-04 20:53:53 · 73 阅读 · 0 评论 -
Java究竟是传值还是传引用?
1. 简单类型是按值传递的Java 方法的参数是简单类型的时候,是按值传递的 (pass by value)。这一点我们可以通过一个简单的例子来说明:public class Test {public static void test(boolean test) {test = ! test;System.out.println("In test(boolean) : ...原创 2009-07-25 11:03:33 · 127 阅读 · 0 评论 -
Extends & Implements
推崇接口继承(implements关系) 尽量避免使用实现继承(extends 关系)。高内聚 低耦合在一个用extends的继承实现系统中,派生类是非常紧密的和基类耦合,要知道这种紧密的连接是不期望的。接口实现的功能和抽象类的唯一区别就是解决了java中没有多继承的问题。其他功能完全可以由抽象类替代。接口的一个重要做用就是实现了面象对象 最重要的特性多态,另外一个作用就是规范而且...2009-07-07 21:57:57 · 116 阅读 · 0 评论 -
Thinking In Java 4th Edition
[size=medium][color=indigo]“上帝赋予人类说话的能力,而言语又创造了思想,思想是人类对宇宙的量度。” ——摘自《Prometheus Unbound》,Shelley• 人类……极其受那些已经成为社会表达工具的特定语言的支配。想像一下,如果一个人可以不使用语言就能够从本质上适应现实世界,语言仅仅是解决具体的交流和反映问题时...2009-07-07 16:16:56 · 113 阅读 · 0 评论 -
Java Stack & Heap
[color=indigo][size=medium]1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。2.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存...原创 2009-07-07 16:14:55 · 105 阅读 · 0 评论 -
Java多线程设计模式详解之一
[color=indigo][size=medium]线程的创建和启动java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。Thread类是实现了Runnable接口的一个实例,它代...原创 2009-07-07 16:09:18 · 94 阅读 · 0 评论 -
Java Exception
[size=medium][color=darkblue]package myExample.testException; public class TestException { public TestException() { } boolean testEx() throws Exception{ boolean ret = true; try...原创 2009-07-04 21:14:40 · 128 阅读 · 0 评论 -
Java equals & ==
[size=medium][color=blue]1、= =操作符比较的是操作符两端的操作数是否是同一个对象;另外= =操作符两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。2、String的equals()方法比较的是两个String对象的内容是否一样3、= =比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为TRUE,如:int a=10 与 long b...原创 2009-07-04 21:12:19 · 172 阅读 · 0 评论 -
Java GC
[color=indigo][size=medium]一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能。本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行深入探讨,最后提出一些Java程序设计建议,从GC角度提高Ja...原创 2009-07-04 21:10:43 · 79 阅读 · 0 评论 -
OO设计原则总结
[color=violet][size=medium]什么是设计原则?设计原则是基本的工具,应用这些规则可以使你的代码更加灵活、更容易维护,更容易扩展。基本原则 封装变化Encapsulate what varies.面向接口变成而不是实现 Code to an interface rather than to an implementation.优先使用组合而非继承 ...原创 2009-07-04 21:08:10 · 61 阅读 · 0 评论 -
Final方法节省时间开销
[size=medium][color=indigo]1、final类: 可以用“final”声明一个类不可再被作为超类。 2、final方法: 当一个方法用“final”来修饰时,表示该方法不可以被子类重写。 好处: 一、限制了子类中对其改写; 二、提高了执行的效率,因为这种情况属于静态绑定,Java虚拟机(JVM)的即时编译器就不会去检索该方法在其父类、子类或爷爷类...原创 2009-07-04 21:05:58 · 116 阅读 · 0 评论 -
Java MD5加密
[size=medium][color=indigo]---------------MD5-------------------------------------------------------------------/** * */package md5;import java.io.UnsupportedEncodingException;import ...2009-07-04 21:03:58 · 81 阅读 · 0 评论 -
Java Interface & Abstract Class
[color=indigo][size=medium]当使用继承的时候,主要是为了不必重新开发,并且在不必了解实现细节的情况下拥有了父类我所需要的特征。 但是很多时候,一个子类并不需要父类的所有特征,它可能只是需要其中的某些特征,但是由于通过继承,父类所有的特征都有了,需要的和不需要的特征同时具备了。而那些子类实际上不需要用到的,有时候甚至是极力避免使用的特征也可以随便使用,这就是...原创 2009-07-04 20:59:46 · 100 阅读 · 0 评论 -
使用java.util.zip实现文件压缩和解压
[color=indigo][/color][size=medium][/size]使用java.util.zip实现文件压缩和解压import java.io.*; import java.util.zip.*; /** *功能:zip压缩、解压 *说明:本程序通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能. *问题:由于jav...原创 2009-07-04 20:59:11 · 230 阅读 · 0 评论 -
Java Stack Heap Static Method
数据都存放在哪里?1.寄存器。记得以前汇编里面有学习过,叫做register的东西,Java里面接触不到这个。2.栈。Stack。放在RAM里面,随机存储器用来存储基础类型,例如short int long float double char byte boolean等,或者用来存储对象的引用。例如:A a = new A();A b = a;A c = a;这里的...原创 2009-07-27 11:58:40 · 112 阅读 · 0 评论