2006-10-24

scjp学习笔记之基本概念

关键字: scjp 学习笔记
做了一年有余的java开发,只是局限于j2ee那些框架的学习了,根本却忘记了,这是件很可怕的事情,感觉到自己java基础实在是薄弱,对于一些基本概念重要类库的使用以及java本身的IO流控制多线程编程不够深入,所以决定趁sun对大学生实行scjp优惠之时,好好复习java,也为不久后的招聘增加一份筹码。
步入正题,今天学习的是java的一些最基本概念。平时若是叫我回答这些问题,肯定是说不好的。因为太那个了=.=
1、什么是java?
- 一种编程语言
- 一种开发环境
- 一种应用环境
- 一种部署环境
- 句法与C++相似,语义与Small Talk相似
- 用来开发applets,又用来开发applications

2、设计Java编程语言的主要目标是:提供一种易于编程的语言
- 消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。
- 利用面向对象的概念使程序真正地成为可视化程序
- 为使代码尽可能清晰合理、简明流畅提供了一种方法

3、Java虚拟机
- 提供硬件平台规范
- 解读独立于平台的已编译的字节码
- 可当作软件或硬件来实现
- 可在Java技术开发工具或Web浏览器上实现

4、Java虚拟机规范为Java虚拟机(JVM)作了如下定义:
在真实机器中用软件模拟实现的一种想象机器。Java虚拟机代码被存储在 .class文件中;每个文件都包含最多一个public类。
编译器在获取Java 应用程序的源代码后,将其生成字节码,它是为JVM生成的一种机器码指令。每个Java解释器,不管它是Java技术开发工具,还是可运行applets的Web浏览器,都可执行JVM。
JVM的代码格式由紧缩有效的字节码构成。由JVM字节码编写的程序必须保持适当的类型约束。大部分类型检查是在编译时完成。
任何从属的Java技术解释器必须能够运行任何含有类文件的程序,这些类文件应符合Java虚拟机规范中所指定的类文件格式。

5、JVM为下列各项做出了定义
- 指令集(中央处理器[CPU] )
- 注册集
- 类文件格式
- 栈
- 垃圾收集堆
- 存储区

6、垃圾收集
- 不再需要的分配存储器应取消分配
- 在其它语言中,取消分配是程序员的责任
- Java编程语言提供了一种系统级线程以跟踪存储区分配
- 垃圾收集
- 可检查和释放不再需要的存储器
- 可自动完成上述工作
- 可在JVM实现周期中,产生意想不到的变化

7、Java运行环境(就是jre)
执行三大任务
- 加载代码-由类加载器执行
- 校验代码-由字节码校验器执行
- 执行代码-由运行时的解释器执行

8、Java技术源程序采用有效的16-bit 双字节字符编码标准(Unicode) ,而不是8-bit ASCII文本。因而,一个字母有着更广泛的定义,而不仅仅是a到z和A到Z。所以char类型是可以用来表示汉字的,而在C/C++中是不够表示汉字的。

9、java的八个类型
- 逻辑类 boolean
- 文本类 char
- 整数类 byte, short, int, long
- 浮点类 double, float

10、Java编程语言的一些编码约定是:
classes──类名应该是名词,大小写可混用,但首字母应大写。例如:
class AccountBook
class ComplexVariable
interface──界面名大小写规则与类名相同。
interface Account
method──方法名应该是动词,大小写可混用,但首字母应小写。在每个方法名内,大写字母将词分隔并限制使用下划线。例如:
balanceAccount()
addComplex ()
据说scjp会考这样的细节,汗。平时eclipse用惯了- -b

11、局部变量必须使用之前初始化, 否则编译时将出错
使用对象前必须先判断其是否为空,防止nullpoint。

12、label: 语句;// where statement must be any
// legal statement.
这个少用,感觉有点像C里面的goto,和break、continue结合起来用。

13、数组是一个对象,而不是为原始类型储备的存储器
在Java编程语言中,即使数组是由原始类型构成,甚或带有其它类类型,数组也是一个对象。声明不能创建对象本身,而创建的是一个引用,该引用可被用来引用数组。数组元素使用的实际存储器可由new语句或数组初始化软件动态分配。

14、Java编程语言没有象其它语言那样提供多维数组。因为一个数组可被声明为具有任何基础类型,所以你可以创建数组的数组(和数组的数组的数组,等等)。一个二维数组如下例所示:
int twoDim [][] = new int [4][];
twoDim[0] = new int[5];
twoDim[1] = new int[5];
评论
发表评论

您还没有登录,请登录后发表评论

pedestrian_I
搜索本博客
我的相册
830440fc-f0c3-41f2-9282-25f3c490465e-thumb
codeGen
共 1 张
存档
最新评论
评论排行榜