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];
步入正题,今天学习的是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];
发表评论
- 浏览: 28866 次
- 性别:

- 来自: 珠海

- 详细资料
搜索本博客
我的相册
codeGen
共 1 张
共 1 张
链接
最新评论
-
基于Ant+Velocity的简单代 ...
楼主的思想不错。建议多看看 RATIONAL ROSE 等根据设计而生成代码的工 ...
-- by sg552 -
基于Ant+Velocity的简单代 ...
可以用freemaker来做
-- by davexin -
基于Ant+Velocity的简单代 ...
呵呵,个人感觉不如使用类继承来解决代码重复,基类使用类名来进行规则处理。代码生成 ...
-- by cherami -
[Hibernae+Spring]压力测 ...
50个用户同时并发 ------------------ 请教楼主用什么测试软件 ...
-- by denghan -
[Hibernae+Spring]压力测 ...
Readonly 写道string类型PK改到数字类型PK只能减少page lo ...
-- by lzzzl






评论排行榜