1,尽管java是基于c++的,但是相比之下,java是一种更“纯粹”的面向对象的程序设计语
言。
2,java语言假设我们只进行面向对象的程序设计。
3,用引用操作对象
String s;
这里只是创建一个引用,并不是对象啊。
String s = “gdgdfg”;这里创建一个引用,并进行初始化。
4,基本类型:
Boolean,char,byte,short,int,long,float,double,void是基本类型,这些变量采用和c和c++
相同的方法,也就是说,不用new来创建变量,而是创建一个并非是引用的“自动”变量。这个变量直接存储
“值”,并置于堆栈中,因而更加高效。
java要确定每种基本类型所占的存储空间的大小。它们的大小并不像其他大多数语言那样随机器硬件架构的变化而变化。
这种所占存储空间大小的不变性是java程序比其他大多数语言编写的程序更具可移植的原因之一。
基本类型 | 大小 | 字节 | 包装器类型 |
boolean | - | - | Boolean |
char | 16bit | 1 | Character |
byte | 8bit | 0.5 | Byte |
short | 16bit | 1 | Short |
int | 32bit | 2 | Ingerger |
long | 64bit | 4 | Long |
float | 32bit | 2 | Float |
double | 64bit | 4 | Double |
void | - | - | Void |
5,高精度数字
BigInteger:支持任意精度的整数;
BigDecimal:支持任意精度的定点数。
6,作用域
以下的代码在c和C++都是合法的,但是在java中却不能这样写:
{
int x = 12;
{
int x = 95;
}
}
编译器会报告变量x已经定义过。
7,基本成员默认值
类的基本数据类型,没有初始化,java会确保他们获得一个默认值:
基本类型 | 默认值 |
boolean | false |
char | ‘\u0000’null |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
byte | (byte)0 |
方法内的基本数据类型不会有默认值。
8,名字可见性
java设计者希望程序员反过来使用自己的internet域名,因为这样可以保证它们肯定是独一无二的。
9,static关键字
一个static字段对每个类来说都只有一份存储空间,而非static字段则是对每个对象都有一个存储空间。
10,每一个类文件会默认的导入一个类文件,java.lang.
11,ibm的jikes编译器也是一个常用的编译器,它比sun的javac快得多。