• Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,特别是先学c、c++后学java的程序员。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。比如函数参数类型是自定义的类时,此时便是引用传递而不是值传递。以下是一个小例子:

    Java代码 public class A {      &nb...
  • String的创建

      String s = "hello";
      JVM先根据内容"hello"查找对象,如果没有找到,则在heap上创建新对象,并将其赋予s1,否则使用已经存在的对象

      String s = new String("hello");
      JVM直接在heap上创建新的对象,所以在heap中会出现内容相同,地址不同的S...
  • 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。
    引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
    下面举例说明:
    传值---传递基本数据类型参数

    Java代码 public    ...
  • 摘要:本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框架,阐述了异常处理的基本原则。并且作者提出了自己处理一个大型应用系统异常的思想,并通过设计一个异常处理的框架来论述此思想。

        一、 异常的概念和Java异常体系结构    异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的异常处理。Java语言的异常处理框...
  • import java.io.FileInputStream;

    public class TestTryCatchException {

     public int amethod()
     {
            try {
              &...
  • 2009-01-05

    java基本类型 - [java基础]

    本章将目光聚焦在Java的数据类型上,通过本章的学习,读者应能熟练定义、使用基本数据类型、字符串类以及数组。

    6.1 基本数据类型

      传授新知
    在Java语言中,数据类型可以分为两大类:
    1)基本类型;
    2)扩展类型。
    在本小节中,我们就一起来学习一下Java语言的基本数据类型。它包括:boolean、char、byte、int、short、long、float、double八种:
    类型 描述 取值范围...
  • 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。有序否允许元素重复否Collection否是List是是SetAbstractSet否否HashSetTreeSet是(用二叉树排序)MapAbstractMap否使用key-value来映射和存储数据,Key必须惟一,value可以重复HashMapTreeMap是(用二叉树排序)http://tb.blog.csdn.net/TrackBack.aspx?...
  • 2008-12-31

    java内部类 - [java基础]

    从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论。其实任何优秀的语言特性用得不好就是滥用,内部类用得不好就会导致代码像迷宫一样,导致出现毫无重用的综合征。

    1、内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。
    几种内部类的共性:
    A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。
    B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以...
  • 2008-12-30

    初始化顺序 - [java基础]

    初始化顺序


    1、调用顺序:
    JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。
    先初始化父类的静态代码--->初始化子类的静态代码-->
    (创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码--->初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数 ...
  • 大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果。这实际上是在考查我们对于继承情况下类的初始化顺序的了解。

    我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是静态变量>静态初始化块>变量>初始化块>构造器。我们也可以通过下面的测试代码...
  • 注意:(1)在子类中的缺省构造器可以调用父类的缺省/非缺省构造器,在调用父类的缺省构造器时,
    不用写super关键字直接可以调(因为super是隐式的);在调用父类的非缺省构造器时,
    必须用super(参数)显示调用。如下面的案例所示:

    class Art {
     Art(){System.out.println("Art constructor1");}//(1)
     
     Art(...
  • 先看下面的程序:

    package c05.net;

    class Bowl {
    Bowl(int marker) {
    System.out.println("Bowl(" + marker + ")");
    }

    void f1() {
    System.out.println("Ok");
    }
    }

    cl...
  • 1,             重载(Overloading) (1)       方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。(2)      ...
  • Java关键字this、super使用总结 一、this
            Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final使用总结”一文中给出了明确解释。并且th...
  • Java关键字final、static使用总结 一、final
            根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。        final类不能被继承,没有子类,f...