你所不知道的java
近日,为了准备九月份的全国计算机二级考试,购置了一本清华大学的java教材作为复习备考的蓝本,根据在蓝杰的进度,我已经进入通信阶段的学习,但是仔细拜读完这部厚达457页的教材后,我发现,其实对于java基础的掌握和理解,依旧还是那千穿百孔的模样~有太多太多的基础知识,是之前的学习中从未系统掌握或是听闻过的~遂有感将之陈列一番,与诸位共勉,一起回顾下,那些年,我们所不知道的java……
Chapter one:java基础知识
1、面向对象的技术给予软件发展带来的益处:可重用性、可靠性;
2、面向对象的语言所具有的基本特征:抽象和包装、继承性、多态性;
3、JDK中部分常用的工具:
Javac.exe(java编译器)、java.exe(java解释器)、jdb.exe(java调试器)
Javadoc.exe(java文档制作工具)、jar.exe(java压缩工具)
4、位运算符:1)按位反运算符(~);
2)按位与运算符(&);
3)按位或运算符(|);
4)按位异或运算符(^);
5)左移运算符(<<);
6)右移运算符(>>);
7)无符号右移运算符(>>>);
5、java中,包括null在内的任何类型都能转换成字符串类型;
6、“byte-->short/char-->int-->long-->float-->double”转换顺序将损失数据的精度;
7、“byte<--short/char<--int<--long<--float<--double”转换顺序将丢失部分数据信息;
Chapter two:java类与对象的基本概念与使用
1、transient关键字指明变量是临时变量;
2、Volatile关键字指明变量是共享变量,由多个并发线程共享的变量可以用它来修饰, 从而使各个线程的对于改变量的访问能保持一致;
3、else总和离它最近的if匹配,也可以通过{}来改变匹配关系;
4、Switch选择结构:
Switch语句是多分枝的选择结构,一般格式与C语言相同:
switch (switch-expression(必须是整型或字符型)){
case value1(必须是整型或字符型): statments for case1;break;
case value2(必须是整型或字符型): statments for case2;break;
case value3(必须是整型或字符型): statments for case3;break;
………………
case valueN(必须是整型或字符型): statments for caseN;break;
default: statments for default case;break;
}
(同一个switch语句中,case之后的值必须互不相同,但是次序没有要求)
5、for循环语句中可以表达式可以为空,但是其“;”(分号)不可省略,表示一个无限的循环,需要在循环体中增加跳转语句终止循环……
6、java5实现了增强for循环的功能,该增强的for循环可以用来对数组和集合对象进行遍历,格式如下:
for(Type name:Array/Set){}
7、类似于C语言中的goto语句,break语句还可以与标号一起使用。
package test;
public class Breaklable {
public static void main(String[] args) {
outer:
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <=9; j++) {
if(j>i){
break;
}
if (i==6) {
break outer;
}
System.out.print(" "+i+"*"+j+"="+i*j);
}
System.out.println();
}
}
}
结果如下:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
第一个break语句跳出内层循环,而第二个break跳出标号outer所标识的循环,即外层循环;
8、java预定义了一些常见的异常:
ArithmeticException:整数除法中,除数为0时发生该异常;
NegativeArraySizeException:数组元素的个数应该是一个大于等于0的整数,当创建数组时,元素的个数被设定为负数,则会发生该类异常;
9、java只支持类的单继承,但可以通过实现接口来实现多重继承;
10、终结类:一个类被final修饰符所修饰和限定,说明这个类不能有子类,final类不能有派生类,首次开发一个类的时候,没有理由使用final修饰符,然而,要是想使这样的类执行效率更高,执行速度更快,可以尝试将一些方法用final修饰,但子类将无法覆盖它们,故终结类及其终结方法虽然具有一定程度的高效性,但它们的使用需要三思而行;
11、在java中,“?”代表任何一种类型,它被称为通配符;
12、数学类里面所有的变量和方法都是静态的(static),并且数学类是终结类(final),所以数学类不存在派生类;
13、JAR文件是java的一种文档格式,它非常类似于zip文件,jar格式的文件和zip文件的唯一区别就是在JAR文件的内容中,包含了一个META-INF/MANIFEST.MF文件(这个文件是在生成JAR文件的时候自动创建的)和部署描述符,用来指示工具如何处理特定的JAR文件。
(未完待续)