您的位置:首页 > 编程语言 > Java开发

Java的一些基本知识

2010-05-24 15:29 323 查看
一. 数组


. 正确的定义: int num[]; num= new int[5] //只有用new关键字真正创建数组时才可以给定它的大小

错误的定义: int num[5];

. 常见的数组错误为 : ArrayIndexOutOfBoundsException (数组越界错误)

. 数组的维度用 .length; 字符串长度用 .length();

. 正确的初始化: int[] num={1,2,3}; 又或者: int num[]= new int[]{1,2,3}

错误的初始化: int[] num=new int[3]{1,2,3};

. 不能改变Java数组的大小.

二. 类

. Java只允许单继承,所以增加了接口特性.

. 所有Java类都是Object类的后代,如果一个类没有extend关键字,这个类将是基类Ojbect派生的.

. 一个文件只能有一个外部类可以声明为public, 如果你在一个文件中定义多于一个public外部类,将会发生编译错误

. Java严格区分大小写.

. 一个外部类只允许声明为public, abstact , final.

. System.out.print 是static方法, 不需要new创建.

. Static方法只能访问Static变量

. 一个方法变量将"屏蔽"类级别的变量

. Private : 创建它的类内部可见

Public : 所有类都可见

Protected : 在类自身, 子类, 同一个包内部可见

. Static : 可以应用于内部类,方法, 变量.

标志一个变量为static, 表示其只能有一个副本存在.

一个static方法,不能在一个子类中重写为非static方法. (此规则对方法的重载不起作用)

一个非static方法,不能在一个子类中重写为static方法. (此规则对方法的重载不起作用)

. native : 仅修饰方法, 指明代码体不是用java而是用c或以c++所写

以一个分号结尾,与不是一个代码块, 如: pubic native fastCal();

. abstract: 可以修饰方法和类

当修饰方法,表明方法只能在子类执行时运行,没有方法体.

如果一个类有 atstract 方法,则它需要声明为 abstract类.

任何从absract类继承来的类,都要实现基类的abstract方法, 或者声明自身为abstract类.

. final : 可修饰类,方法, 变量.

final类不能被继承.

任何final类中的方法自动成为final方法.

. Synchronize : 同步的

. transient : 瞬时的

. volatile : 不稳定的

三. 构造方法


. 构造方法是一种在类实例化时自动运行的特殊类型的方法, 通常被用来初始化类中的值.

. 构造器有和类同样的名字并且没有返回值(包括void).

. 一旦你为一个类创建了任何的构方法,你需要创建一个无参数的构造方法.

. 构造方法不能是 native, abstract, static, synchronize, final

. 构造方法不能被继承.

. 构造方法中,不能同时用 super() 和 this()

四. 重载与重写

. 重载: 如果一个类中的两个或者多个方法有同样的名字.

(通过参数的顺序和类型来区分两个重载的方法,返回类型对区重载没有帮助.)

. 重写: 在子类中的方法跟基类中被取代的原始方法有完全相同的方法名,包括返回值, 完全取代其功能.

(static方法不能被重写)

五. 流程控制和差错处理

. if 语句必须带一个 boolean 类型的值, 不能用非零的数值来表示 true;

. switch 语句的参数必须是 byte, char, short, int

六. 循环


. 死循环: for(;;) system.out.print("forever"); 或者 while(true){system.out.print("true")};

. break/continue 不能跳到另一个方法去.

七. Try/Catch/Finally


. 在子类中一个重写的方法可能只抛出父类中声明过的异常,或者异常的子类. (不适用于重载)

. 通常来说, 所有的I/O操作都需要外在的使用 try/catch来异常处理.

. 考试可能给你一个包括 return 语句来误导你认为代码不执行 finally语句就返回, 实际上 finally子句总是会执行的.

. 如果执行了 System.out.exit(0), 则不会执行 finally地代码.

八. 断言



.

九. 垃圾回收


. 只能建议垃圾回收器运行,但无法决定它在代码的哪一部分执行.

. 只有对象的实例才能成为垃圾回收对象, 原始数据类型不会.

十. 内部类


. 仅仅在相应的外部类上的上下文中可见.

十一. Collection类/接口


. Set : 一个不可包含重复元素的集合类接口.

. List : 有序的, 可以有重复元素的集合类接口.

. Map : 接口, 实现它的类不能重复的key.

. Vector : 可以将不同类的对象添加到一个Vector 里面.

. HashTables : 优越的地方在于快速的查找.

. BitSet : 存储的是一个序列比特.

十二. 接口

. 接口只允许使用 public final static 修饰

. 接口没有构造函数.

.实现接口就要实现接口里的所有方法.

-------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------

. 类级别的变量总是会被赋予一个缺省值, 而一个成员变量,将不会被赋予一个缺省值.

. 对象引用的缺省值是 null.

. instanceOf , 测试一个类的类型然后返回一个布尔值.

. 将一个对象引用赋值给另一个对象的一般规则是: 你可以对继承树向上赋值,但不能向下复制.

. 面向对象编程的三个特点: 封装, 继承, 多态.

. == 比较的是两个对象的地址,而不是值.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: