《Java从入门到实践》1-5

和对ubuntu的熟悉程度差不多,Java领域对于我而言,完全是陌生的

今天打算配置好ubuntu11.10上面的java环境,不过配置之前,还是来了解一下它吧

第1章 Java语言概述

诞生于1991年,和Linux一样 啊

还有,Java衍生出来的J2SE(标准版),J2EE(企业版),J2ME(微缩版)

Java虚拟机(JVM)使得Java语言在不同平台上运行时不需要重新编译。

垃圾回收机制JVM负责垃圾回收,而应用完全不必关心空间回收问题。

突然发现我已经很久没有用C语言或者C++编程过了,就前一段时间一直用的都是vs里面的ASP.NET,真的隔了太久啊……

Eclipse我还真是头一次用,恩,确实非常智能,貌似运行起来也没有VS那么慢,也许是我写的代码极其简单了。

第二章 简单数据类型及运算

标识符与关键字/基本数据类型,我想不用太仔细吧

感觉跟C++差不多啊,哪位能指出来这一部分和C++有什么区别没?

说实话我看到最大的差别是输入输出方式

还有在示例那一块,看见定义常量的时候前面加一个final

第三章 流程控制

这个还确实没有太多写的,暂时没有掌握用Java语言从键盘输入一个数据该怎么弄

目前还没有讲到这些,看了目录后面一个讲输入输出流的,貌似还蛮复杂啊

第四章 类与对象

再一次看到final,类可以被声明成为三种类型——public/abstract/final(类修饰符

abstract类不能被实例化,类中不能有方法体,其子类必须实现其方法,除非子类也是一个抽象类

final类不可派生,该类中所有方法都是final的

类成员的访问控制符有public/private/protected/default

之前真是不知道还有default,可以被同一包中任何类访问,不同包不能访问

另外,这个类修饰符和访问控制符感觉有点分不清,额,其实是搞不太清楚类修饰符

说真的我感觉自己还一直留在面向过程的语言里面,刚才才知道,在面向对象语言中,类中包含的是属性(即各个变量)和方法(一种服务或者操作,完成某个功能,不就是函数么)

方法的可变参数从J2SE 5.0以后引入了可变参数的概念,声明可变参数的语法格式为

methodName({paramList},paramType...paramName)

其中,paramList表示固定参数列表,后面的才是可变参数,可变参数必须定义在参数列表的最后,但是,如果有两个或两个以上不同类型的可变参数呢?

this关键字有的时候是可以省略的,但是如果在方法中再次定义的重名属性,那么this关键字是不能省略的,要不然就会当成是当前方法内的那个属性

对象——类的实例化(如果一个类要引用另外一个类,那么必须实例化,除非抽象类,如果一个方法调用另一个方法,就是直接调用了,无需首先创建对象并分配内存)

一般可以使用JVM中的GC来自动清理,用户也可以使用finalize()方法来清理内存。

第五章 深入面向对象编程

封装是指隐藏对象的属性及实现细节,对外仅提供接口可见。封装实现了信息隐藏,有利于软件复用,也大大改善了软件开发的可维护性,降低了构建复杂软件系统的风险。

继承是指子类可以具有父类的一切非private类成员。当然子类是可以拥有自己的类成员的,这叫类扩展。

多态是指可以用不同的方式实现同一个服务功能。使程序具有良好扩展性和易于理解(个人觉得)

抽象类是指包含了抽象方法的类。其中抽象方法只声明方法名称,不指明方法体(就是没有花括号及其里面的内容)。抽象类不能被实例化,只能被继承扩展。亲,这个像个语句啊,后面还要加语句结束的分号“;”

抽象类至少包含一个抽象方法,不能被实例化,其子类必须实现其所有抽象方法才能实例化。

在Java语言中,一个子类只能继承自一个父类,但是一个类可以同时实现多个接口

接口的定义格式如下:

[public] interface interfaceName[extends listOfSuperInterface] { }

实现接口的格式如下:

class ClassName implements listOfSuperInterface { }

接口的特点:1.接口体只能包含常量及抽象方法。2.接口可以继承多个接口,而类不能多继承。3.接口不能包含构造方法。

内部类是指嵌套定义在类内部的类,可以不写名称成为匿名内部类。一般情况下可以任意访问外部类中的成员。但是如果内部类被修饰为static属性(这在普通类是不行的),它就不能访问外部类中的非static成员了。

static内部类可以包含static成员,而非static内部类却不可以包含static成员。

匿名内部类没有类名,直接用new关键字创建对象,真的是非常困惑,完全看不懂……

是面向对象语言中Java独有的概念,用来管理一组类,并有效解决了命名冲突问题。

创建包的语法格式如下:

package PackageName;

包可以多层次嵌套,编写程序过程中,包语句必须写在类文件的最上面。

需要使用不同包中的类的话,使用形式主要有:1.包名加类名;2.import导入

包名加类名   语法格式如下:

PackageName1.PackageName2.PackageName3...ClassName;

这种方法需要完整的路径,而且是在每次使用类的时候都要加一次完整的包名+类名,写起来有点赘述,但是不会引用多余的类

import导入 语法格式如下:

import PackageName1.PackageName2.PackageName3...ClassName;

这种方法其实也要完整路径,但是只需要写一次,使得程序更为简洁。如果需要引用所有类,可以将类名写成“*”,不过会有可能导入多余的类

静态导入是在导入对象之前加static修饰符,J2SE 5.0后才出现。

采用静态导入以后可以直接使用导入类中的变量,不需在前面加“类名.”,使用方法的时候也是如此

你可能感兴趣的:(java,jvm,J2SE,ubuntu,语言,import)