`
bruce.ko
  • 浏览: 32605 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论
文章列表
“上帝赋予人类说话的能力,而言语又创造了思想,思想是人类对宇宙的量度。”                   ——摘自《Prometheus Unbound》,Shelley • 人类……极其受那些已经成为社会表达工具的特定语言的支配。 ...
1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活 性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自 动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 3. Java中的数据类型有两种。 一种是基本类型(primitive types),共有8种,即int, short, ...
线程的创建和启动 java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。 Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法: Thread t = new Thread(); t.start(); start()方法是一个native方法,它将启动一个新线程,并执行run()方法。Thread ...
package myExample.testException; public class TestException { public TestException() { } boolean testEx() throws Exception{ boolean ret = true; try{ ret = testEx1(); }catch (Exception e){ System.out.println("testEx, catch exception"); ret = false; throw e; }finally{ ...
1、= =操作符比较的是操作符两端的操作数是否是同一个对象;另外= =操作符两边的操作数必须是同一类型的(可以是父子类之间)才 能编译通过。 2、String的equals()方法比较的是两个String对象的内容是否一样 3、= =比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为TRUE,如: int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆栈;如下题111;  String s= "hello"; String t = "hello"; char c[] = {' ...
一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能。本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行深入探讨,最后提出一些Java程序设计建议,从GC角度提高Java程序的性能。   GC的基本原理   Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。   对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象 ...
什么是设计原则? 设计原则是基本的工具,应用这些规则可以使你的代码更加灵活、更容易维护,更容易扩展。 基本原则 封装变化Encapsulate what varies. 面向接口变成而不是实现 Code to an interface rather than to an implementation. 优先使用组合而非继承 Favor Composition Over Inheritance SRP: The single responsibility principle 单一职责 系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。 Every objec ...
1、final类: 可以用“final”声明一个类不可再被作为超类。 2、final方法: 当一个方法用“final”来修饰时,表示该方法不可以被子类重写。 好处: 一、限制了子类中对其改写; 二、提高了执行的效率,因为这种情况属于静态绑定,Java虚拟机(JVM)的即时编译器就不会去检索该方法在其父类、子类或爷爷类、孙子类等有内联关系的类中是否存在重写,省去了动态判断究竟要执行哪一个类(具体内联关系的类)的这个名称的方法。 3、final属性: 对于成员变量和变量,也可以用“final”来修饰,表示是一个不可被修改的常量。 注意:一个方法如果需要被构造函数所调用,那么方法 ...
---------------MD5------------------------ ------------------------------------------- /** * */ package md5; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import sun.misc.BASE64Encoder; /** * @author Administrato ...
当使用继承的时候,主要是为了不必重新开发,并且在不必了解实现细节的情况下拥有了父类我所需要的特征。 但是很多时候,一个子类并不需要父类的所有特征,它可能只是需要其中的某些特征,但是由于通过继承,父类所有的特征都有了,需 要的和不需要的特征同时具备了。而那些子类实际上不需要用到的,有时候甚至是极力避免使用的特征也可以随便使用,这就是继承的 副作用。特别是允许多重继承的OO语言中,很容易引起不容易发现的错误。所以在OO的语言中,会创造出各种规定来限制子类使用父 类中的某些方法。 如果狗的主人只是希望狗能爬比较低的树,但是不希望它尾巴可以倒挂在树上,像猴子那样可以飞檐走壁,以免主人管不住 ...
[color=indigo][/color][size=medium][/size]使用java.util.zip实现文件压缩和解压 import java.io.*; import java.util.zip.*; /** *功能:zip压缩、解压 *说明:本程序通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能. *问题:由于java.util.zip包并不支持汉字,当zip文件中有名字为中文的文件时 , author by http://www.bt285.cn http://www.5a520.cn *     就会出现异常:" ...
在jvm中存在着String Pool String pool就是字符串池 例如: String str1="asd"; String str2="asd"; 结果是str1==str2 因为String str1="asd";先会检查String pool中是否有asd这个字符串,若存在不必另外划分区间str2直接引用str1,这样能节省存储的空间 String对象是不变对象,在程序运行过程中可能用到多个具有相同值得String对象,jvm中使用String pool来优化这种情况。当有新的String对象要建立的时候,j ...
Global site tag (gtag.js) - Google Analytics