纯粹
杂合型语言允许多种编程风格。
C++之所以成为一种杂合型语言主要是因为它支持与C语言的向后兼容。
C++是C的一个超集。
尽管Java是基于C++的,但是相比之下,Java是一种更“纯粹”的面向对象程序设计语言。
给我一个新对象
一旦创建了一个引用,就希望它能与一个新的对象进行关联。
new关键字的意思是“给我一个新对象”。
数据存储到什么地方:
1、寄存器。
2、堆栈(位于RAM)。
3,堆(通用内存池,位于RAM)。
4,常量存储(代码区内部)。
5,非RAM存储。(比如流对象会发送给其他服务器 或 持久化对象存储于数据库等)。
基本类型
对于这些类型,Java采取与C和C++相同的方法,即不用new来创建变量,而是创建一个非引用的“自动”变量。
这些变量直接存储“值”,并置于堆栈中,因此更加高效。
Java规定了每种基本类型所占存储空间的大小,且不会随机器硬件架构的变化而变化。
这种存储空间不变性是相对其他大多数语言更具移植性的原因之一。
Java SE5的自动包装功能可以自动将基本类型转换为包装器类型:
Character ch = 'x';
//可以反向转换
char c = ch;
基本类型 | 大小 | 最小值 | 最大值 | 包装器 |
---|---|---|---|---|
boolean | - | - | - | Boolean |
char | 16bits | Unicode 0 | Unicode 2^16-1 | Character |
byte | 8bits | -128 | +127 | Byte |
short | 16bits | -2^15 | +2^15-1 | Short |
int | 32bits | -2^31 | +2^31-1 | Integer |
long | 64bits | -2^63 | +2^63-1 | Long |
float | 32bits | IEEE754 | IEEE754 | Float |
double | 64bits | IEEE754 | IEEE754 | Double |
void | - | - | - | Void |
数组
当创建一个数组对象时,实际是创建了一个引用数组,每个引用会被自动初始化为一个特定值,该值拥有自己的关键字null。
当创建一个基本类型的数组对象时,编译器同样会确保数组的初始化,它会将这个数组所占的内存空间全部清零。
基本成员默认值
类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。
上述的初始化方法并不适用于“局部”变量。
如果在某个方法内定义变量x,如下:
void func(){
int x;
}
那么变量x可能是任意值(与C和C++一样),并不会被初始化为0。
名字管理
名字管理对任何程序设计语言,都是一个重要的问题。
同一个程序内,不同程序员可能会使用到相同的名字。如何避免相同名称的冲突:
C++引入命名空间的概念管理名字。
Java通过采用反过来使用自己的Internet域名的方式,确保每个名称的独一无二。
注释
Java采用两种注释风格:
1、C语言风格注释:/* 注释 */。
2、C++风格注释: "//"开头的注释。
javadoc是用于提取注释的工具,他是JDK安装的一部分。
javadoc输出一个HTML文件,可以使用Web浏览器查看。
编码风格
“Java编程语言编码约定”中规定:类名的首字母要大写,如果类名由几个单词组成,那么把他们拼在一起,其中每个单词的首字母大写。