Thinking in java 16/3/6

对象与基本类型

String s = new String(“abc”);

s为引用,引用值为abc的对象,此对象存放在堆中

则函数参数传递时,传递s,函数改变的是对象本体,这个c++的引用类似

基本类型:在java中视作一种特殊存在的“基本类型”,(完全为了数据高效的处理),也就是说,不是用new来创建变量,而是创建一个并非引用的“自动”变量。这个变量直接存储“值”,并置于堆栈中

特性:java中的基本类型不会随着硬件架构改变而变化,唯一确定了存储空间的大小,这与c++的基本数据不同,所以java中没有sizeof

 

基本类型 与 包装器类型

boolean  Boolean

char       Character

byte     Byte

short    Short

int             Integer

long      Long

float           Float

double   Double

void    Void

 

可以在堆中用包装器类型来对应堆栈中存在的基本类型

char c = ‘x’;

Character ch = new Character(c);     //Character ch = new Character('x'); 

//Charcter ch = 'x'; (自动转化,‘x’自动转化为对象,再被ch引用)

//char c = ch; (反向转化)

综上:也就是c 与 ch “定价

 

类:字段+方法

 

字段

字段中的基本类型与普通的基本类型

字段中的基本类型的对象:存在默认值

普通基本类型定义的对象:如果没有初始化在java中直接视作错误,c++中编译器只会警告

 

方法

方法通过对象调用,a.f()理解为向对象发送消息

 

stactic字段与方法:所有同一类的对象共用同一存储空间,并且可以不通过特定对象调用,直接用类名调用

 

强制类型转换

基础类型和c++类似,布尔类型不能转化为其他类型

类类型只能在同类族中相互转换,比如橡树课转换为树,橡树不能转化为岩石

 

操作符

基础类型操作符与c++类似,布尔类型不能进行'>','<','!'

while(a=b) 在java中会报错

所有的条件语句都利用条件表达式的真或假来决定执行路径,java不允许我们将一个数字作为布尔值使用

比如if(a),应该写成if(a!=0)

posted @ 2016-03-06 12:10  iEdson  阅读(177)  评论(0编辑  收藏  举报