关于SCJP的学习
文章平均质量分 57
happyzhm5
这个作者很懒,什么都没留下…
展开
-
Collection List Set Map 区别记忆
这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否转载 2007-03-17 14:16:00 · 4521 阅读 · 0 评论 -
C05(面向对象)
类的封装(Java中使用private及public访问修饰符)没人喜欢被其他人随便就拿自己的钱包(或者其他私有的东西)看或者使用(修改),那么类也一样,既然有了类的概念,要把所有的属性或者方法都要集中到类当中写,那么,这些属性或者方法能由谁来用就成为了一个问题,面向对象的语言都有private,protected和public修饰字,在Java当中又加入了包(package)的概念。也就是说,如原创 2007-01-23 01:36:00 · 906 阅读 · 0 评论 -
Java同步机制浅谈――synchronized对代码作何影响?
Java对多线程的支持与同步机制深受大家的喜爱,似乎看起来使用了synchronized关键字就可以轻松地解决多线程共享数据同步问题。到底如何?――还得对synchronized关键字的作用进行深入了解才可定论。总的说来,synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果再细的分类,synchronized可作用于instan转载 2007-03-14 14:16:00 · 781 阅读 · 0 评论 -
Java线程总结
版權申明,獲得授權轉載必須保留以下申明和鏈接:作者的blog:(http://blog.matrix.org.cn/page/Kaizen)在论坛上面常常看到初学者对线程的无可奈何,所以总结出了下面一篇文章,希望对一些正在学习使用java线程的初学者有所帮助。首 先要理解线程首先需要了解一些基本的东西,我们现在所使用的大多数操作系统都属于多任务,分时操作系统。正是由于这种操作系统的出现才有了多线程转载 2007-03-14 10:33:00 · 715 阅读 · 0 评论 -
if the reference of the thread is set to null.
Q. After a thread started, if the reference of the thread is set to null,what will happen to the thread? Does it stop? Is it eligible for GC?A: No.Live thread will continue running even its reference转载 2007-03-08 21:40:00 · 536 阅读 · 0 评论 -
JVM的知识(1)
JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码转载 2007-03-12 12:24:00 · 589 阅读 · 0 评论 -
abstract method Graphics.drawString()?
Q. Why abstract method Graphics.drawString() can work withoutimplementation?A:Excellent question! The following is a statement copied from API doc "The Graphics class is the abstract base class for al转载 2007-03-07 20:18:00 · 721 阅读 · 0 评论 -
When I do floating point operation, why some unwanted result comes
Q. When I do floating point operation, why some unwanted result comesout?// Example, why the red extra comes out?//*******************************double x = 27.475;double y = 7.22;System.out.println(x转载 2007-03-12 20:55:00 · 754 阅读 · 0 评论 -
输出顺序
class Output { public static void main(String arg[]) { System.out.println("A"+new Output()); } public String toString() { System.out.print("B"); return "C"; }} 按照我们的原创 2007-03-12 19:16:00 · 1520 阅读 · 1 评论 -
left-to-right evaluation rule and side effect
class ArrTest{ public static void main(String args[]) { int i = 0; int[] a = {3,6}; a[i] = i = 9; System.out.println(i + " " + a[0] + " " + a[1]); }} 这里是会throw Ind原创 2007-03-12 18:35:00 · 739 阅读 · 0 评论 -
C07(异常)
关于异常的一点总结在Java编程语言中,异常类定义程序中可能遇到的轻微的错误条件。可以写代码来处理异常并继续程序执行,而不是让程序中断。在Java语言中还有一种可以让程序中断的"异常",这就是错误类,错误类被认为是不能恢复的严重错误条件。当遇到这样的错误时,建议让程序中断。这样让程序非常有弹性,比如如果在进行数学计算的时候,除数是0,这样在Java中就成为一种可以捕获的异常,当遇到这种问题的时候,原创 2007-01-26 00:53:00 · 688 阅读 · 0 评论 -
同步synchronized方法和代码块
打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个 房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。在此我们先来明确一下我们的前提条件。该对象转载 2007-03-15 19:38:00 · 1104 阅读 · 0 评论 -
丢失的违例(小心你的finally)
一般情况下,Java的违例实施方案都显得十分出色。不幸的是,它依然存在一个缺点。尽管违例指出程序里存在一个危机,而且绝不应忽略,但一个违例仍有可能简单地“丢失”。在采用finally从句的一种特殊配置下,便有可能发生这种情况://: LostMessage.java// How an exception can be lostclass VeryImportantException转载 2007-03-17 16:33:00 · 814 阅读 · 0 评论 -
关于线程同步的一点心得
一 关于synchronized(this)同步代码块当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,同一时间只能有一个进程执行该代码块。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。并且其他线程对于object中所有其他的synchronized(this)同步代码块的访问被阻塞。也就是说其他所有需要得到该实例对象(注意,是该实原创 2007-03-15 17:38:00 · 874 阅读 · 0 评论 -
C12(线程)
什么是线程 一个关于计算机的简化试图是:它有一个执行计算的处理机,包含处理机所执行的程序的ROM,包含程序所要操作的数据的RAM。在这个简化试图中,只能执行一个作业。关于一个现代计算机最完整的试图允许计算机在同时执行一个以上的作业。进程是正在执行的程序,一个或更多的线程构成了一个进程。一个线程由三个部分构成:处理机,代码,数据。从这里就可以看出,一个线程就好像一个最精简的计算机。其中代码和数据是可原创 2007-02-05 18:59:00 · 530 阅读 · 0 评论 -
C14(java的网络编程)
socket socket是指在一个特定编程模型下,进程间通信链路的端点。因为这个特定编程模型的流行,socket这个名字在其他领域得到了复用,包括Java技术。 当进程通过网络进行通信时,Java技术使用它的流模型。一个socket包括两个流:一个输入流和一个输出流。如果一个进程要通过网络向另一个进程发送数据,只需要简单地写入与socket相关联的输入流。一个进程通过从与socket原创 2007-02-05 18:54:00 · 911 阅读 · 0 评论 -
c10(Swing)
JFC究竟是什么,什么是Swing?Swing V.S. AWT?JFC(Java Foundation Classes)oreilly书中的对JFC的定义:JFC是一组客户端图形、GUI(图形用户界面)和相关的编程任务的标准java api的松散集合。(有点MFC的感觉...)Swing的提出是在AWT的基础上的所谓Swing是轻组件,AWT是重组件,我理解也许这个轻是翻译者按照字面的意思翻译过原创 2007-02-02 00:42:00 · 795 阅读 · 0 评论 -
C13(IO)
流的概念一个流是字节的源或者目的。次序是有意义的。要从输入流读取字节,或者要往输出流写字节,必须有一个与这个流相关联的字符源。java的io包中,有一些流是结点流,即它们可以从一个特定的地方读写,例如磁盘或者一块内存。其他流称作过滤器。一个过滤器输入流是用一个到已存在的输入流的连接创建的,在此以后,当你试图从过滤输入流对象读时,当它向你提供来自另一个输入流对象的字符(比如BufferedInput原创 2007-02-03 19:58:00 · 643 阅读 · 0 评论 -
C11(Applet)
Applet有那些优点Applet是嵌入到一个HTML页面中,可通过Web浏览器下载和执行的一种Java类,它是Java技术容器的一种特定类型,其执行方式不同于应用程序。描述Applet和AWT的类层次从java.awt.component继承而来的java.awt.Container又分为两个子类java.awt.Window和java.awt.Panel,而java.awt.Fra原创 2007-02-02 13:07:00 · 641 阅读 · 0 评论 -
C09(AWT的事件处理)
描述Adapter类的概念说到Adapter类的概念,首先不得不说的首先是Java的事件处理机制,写出的图形界面是没有事件响应,空有一些组件填充到Frame里面,没有实际意义,为每一个组件编写事件响应,然后通过Jdk1.2以后的响应机制,也就是委托机制,使其响应相应的组件完成动作,委托机制是在编写组件后,为该组件添加事件监听器,当发生该组件上的事件后,注册的事件监听器会找到响应的处理方法去处理,有原创 2007-01-31 19:39:00 · 598 阅读 · 0 评论 -
Java编程语言和Java指南中关于Java的参数传递的解释
From The Java Programming Language, by James Gosling et al. 3rd edition (pg.56):quote:Some people will say incorrectly that objects are passed "by reference."In programming language design, the term p转载 2007-03-12 17:05:00 · 649 阅读 · 0 评论 -
pass-by-value与pass-by-reference的区别一个很好的例子
public class PassByValueEx { public static void main(String [] args) { String str[]=new String[2]; str[0]="first"; arr[1]="second"; swap(str[0], str[1]); System.o原创 2007-03-12 16:35:00 · 4568 阅读 · 0 评论 -
补疑(关于final)
final关键字,可以定义在变量前,可以定义在方法前,也可以定义在类前。final定义在变量前 首先,final定义的变量,是不允许修改的变量,所以,final变量的赋值,只能出现在两个地方,一个是定义时赋值,一个是构造函数赋值。成员变量可以分为primitive和reference,当primitive变量被定义成为final的时候,只允许在两个地方赋值,定义和构造函数,之后该变量就不原创 2007-02-22 00:01:00 · 552 阅读 · 0 评论 -
补疑(关于static)
关于static,总是觉得还有很多地方要值得注意,专门查了一下关于它的资料,就看到了下面的文章,感觉总结的和例子都不错,就转过来(http://zhidao.baidu.com/question/5404216.html),加上些自己对于它的观点。有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使原创 2007-02-21 23:11:00 · 583 阅读 · 0 评论 -
补疑(编译错误VS运行错误)
关于这个问题,很多人都觉得很简单,认为语法有问题的是编译时错误,逻辑上出现混乱了,造成得到的结果不是自己想要的就是运行错误,那么看看下面一段代码:public class ErrorTest{ public void myMethod(String s){ System.out.println("My String"); } public void myMeth原创 2007-02-21 23:08:00 · 814 阅读 · 0 评论 -
关于继承的方法和变量
有些东西真是一天不想就忘了,前段时间看了关于继承的方法和变量的调用,是调用的子类方法,还是调用父类的方法,感觉搞明白了,今天突然想起来,竟然发现给忘记了,呵呵,所以把它记下来,以便再忘了的时候,可以找出来看看。 class FatClass{ int var = 1; public void methodA(){ System.out.println("A"); } public sta原创 2007-01-06 19:44:00 · 643 阅读 · 0 评论 -
C02(类与对象)
你是如何理解类的类是一个抽象了的概念,它是一组有具有相同属性的集合,但又不只是只有一组有相同属性的集合,它是一组具有共同特性的抽象的集合,不是说随便的把几个基本类型放到一起了就叫做类,需要去考虑,这组数据或者行为,放到一起了,要有一定的意义,比如,你可以抽象出一个汽车的所有的属性,把它写成一个类,而不是说,定义几个int,几个long,然后在定义一个汽车的对象,一组无意义的属性,定义成了一个组合原创 2007-01-04 13:59:00 · 576 阅读 · 0 评论 -
C01(Java基础,JVM,java.lang)
Java平台是如何在其它语言平台上提高性能的?在JVM的三层任务下,保证了程序的安全性能,第一层保证加载级别的安全,第二次校验保证了它的代码级别的安全,第三层保证了执行级别的安全。通过对JVM的规范,使得Java本身脱离了对与机器硬件的要求,不同的硬件平台,Java只是通过规定了统一的JVM的规范,使得它可以在不同的平台上运行。这就好像是一个软件和硬件之间的接口,起到了一个虚拟的操作系统的功能。原创 2007-01-03 13:02:00 · 603 阅读 · 0 评论 -
补疑(初始化和静态成员变量)
今天在java咖啡屋看到一道有趣的题目,说有趣,因为它不但包含了关于初始化的知识点,还包括了静态变量,实力变量的概念。下面是代码:class Bowl{ Bowl(int marker){ System.out.println("Bowl("+marker+")");//3 } void f(int marker){ System.out.println("f("+marker+")");原创 2007-02-12 15:02:00 · 896 阅读 · 0 评论 -
补疑(instanceof)
关于关键字instanceof,在java的学习日志里面也提到,这里再提,是偶然看到一段代码,public class Phone implements Cloneable{ public static void main(String[] args){ Phone p = new Phone(); if(p instanceof Object) System.out.println原创 2007-02-10 20:57:00 · 638 阅读 · 0 评论 -
补疑(Java的参数传递)
我们现在知道当在方法中传递一个primitive,那么在方法中改变该变量,和原成员变量无关看下面的例子public class C{ public static void main(String[] args){ int var = 3; System.out.println("before method(),var is " + var); method(var); System.o原创 2007-02-07 12:15:00 · 585 阅读 · 0 评论 -
补疑(Java的反射机制)
内省的概念反射与内省应该放到一起来说,这样也便于两者之间的比较。内省是对象自己分析自己的能力,其中方法可以返回一个对象中的变量,方法等。这样似乎是在说反射,与反射不同的是强调动动态改变,加载的反射可以称为内省,比如动态创建一个类。反射的概念反射的概念是1982年Smith首次提出的,指的是程序可以访问,检测和修改它本身状态或行为的一种能力。它的提出很快就引发了计算机科学领域关于应用反射性的研究原创 2007-02-23 19:07:00 · 872 阅读 · 0 评论 -
补疑(关于内部类)
内部类就是一种链关系,就好像C++当中的指针一样,或者这是一个指向具体内容的指针,或者这是一个指向指针的指针,看看下面的代码:class Outer1{ class Inner11{ class Inner111{ int var111 = 100; } } class Inner12{ class原创 2007-02-22 14:28:00 · 534 阅读 · 0 评论 -
C03(变量与运算符)
区分实例变量和局部变量,描述实例变量是如何被初始化的实例变量也称作成员变量,它是类的成员,简单的说,独立在类中存在,不在任何方法中的变量,这种变量有一个特点,就是在编写的时候,程序员可以不用初始化在后面就可以使用,因为在你创建一个新对象的时候,也就是new的时候,编译器自动为成员变量初始化一个值,如果实例变量是一个reference type,那么它初始化的结果为null,如果实例变量是一个pri原创 2007-01-21 23:18:00 · 1255 阅读 · 0 评论 -
In what situation, an IllegalThreadStateException will be thrown?
Q. In what situation, an IllegalThreadStateException will be thrown?A:1) If the thread was already started, you call start() again.2) If this thread is active, you call setDaemon().3) A deprecated met转载 2007-03-08 20:42:00 · 628 阅读 · 0 评论 -
Can inner class extends outer class, or opposite?
Q. Can inner class extends outer class, or opposite? Why we should generally avoid using this technique?A: Yes, it is legal (inner class extends outer class, or opposite).However, you would be better转载 2007-03-07 21:11:00 · 659 阅读 · 0 评论 -
static 和 interface的关系
static 和 interface的关系:1)内部接口是隐式的静态的,不管你是不是用static来修饰注意:内部接口很少用到2)外部接口不能是静态的,就像外部类3)接口的所有的成员(属性与方法)是隐式的public的。4)接口中所有的属性是隐式的static和final的5)接口中所有的方法不能定义为static6)接口中所有的被定义的类都是隐式的static的原创 2007-03-07 20:26:00 · 1827 阅读 · 0 评论 -
Constructor or not constructor?
Q. Constructor or not constructor? Please explain why the output of the following code is null?public class My { String s; public void My(){ s = "Constructor";} public void go() {转载 2007-03-07 18:46:00 · 1461 阅读 · 0 评论 -
初始化顺序(Thinking in Java中的一段有意思的例子)
abstract class Glyph { abstract void draw(); Glyph() { System.out.println("Glyph() before draw()"); draw(); System.out.println("Glyph() after draw()"); }}class RoundGlyph extends Glyph {原创 2007-03-07 18:37:00 · 706 阅读 · 0 评论 -
C04(数组)
为什么数组的元素需初始化在Java编程语言中,即使数组是由原始类型构成,甚或带有其它类类型,数组也是一个对象。声明不能创建对象本身,而创建的是一个引用,该引用可被用来引用数组。数组元素使用的实际存储器可由new语句或数组初始化软件动态分配。所有变量的初始化(包括数组元素)是保证系统安全的基础,变量绝不能在未初始化状态使用。从一个数组类型到另一个数组类型数组值System.arraycopy()原创 2007-01-21 23:53:00 · 612 阅读 · 0 评论