Java学习——2——对象操作

来源:互联网 发布:学做淘宝到哪里去学 编辑:程序博客网 时间:2024/06/15 23:50

一、用引用操作对象

String s;这里只是创建reference,并不是对象s并没有与任何事物相关联,向s发送消息会返回运行时错误引用同时应该初始化String s = "asdf";注意:这里字符串可以用带引号的文本初始化。并不是通用的初始化方式

二、创建对象
new关键字

正确的通用初始化方法String s = new String("asdf");

1)对象存储位置

1.寄存器(最快的存储区,不能直接控制)

2.堆栈(位于RAM中,向下移动指针分配新内存,向上释放内存,Java系统必须知道存于其中所有项的生命周期,JAVA中某些数据存于其中,但Java对象不存于其中)

3.堆(通用内存池,位于RAM中,存放所有JAVA对象,在堆中编译器不需要知道存储的数据在堆中的存活时间,故堆中分配存储空间有很大灵活性)

4.常量存储(常量通常直接放在程序代码内部)

5.非RAM存储(如果数据完全存活于程序之外,它可以不受程序的任何控制,在程序没有运行时也可以存在。如:/流对象/,/持久化对象/,

2)特例:基本类型

JAVA把基本类型变量存储于堆栈中(高效),JAVA确定每种基本类型存储空间大小,不随机器硬件架构变化而变化(更可移植)。
char 16-bit (Unicode0—— Unicode2^16-1)
byte 8 bits ( -128——127)
short 16 bits (-2^15——2^15 - 1)
int 32 bits (-2^31——2^31 - 1)
long 64 bits (-2^63——2^63 - 1)
float 32 bits (IEEE754)
double 64bits (IEEE754)

重点:1.所有数值类型都有正负号,没有无符号数值类型
2.基本类型有包装器类,可以在堆中创建非基本对象,用来表示非基本类型。

//包装器类
char c = ‘x’;
Character ch = new Character(c);
OR
Character ch = new Character(‘x’);
//SE5中可自动的把基本类型转换为包装类型,并可以反向转换
Character ch = ‘x’;
char c = ch;
3.高精度数字
Java提供了两个用于高精度运算的类,BigIntegerBigDecimal(两者没有对应的基本类型,以方法调用, 操作同intfloat

3) JAVA数组
JAVA数组
1.会被初始化(创建一个数组对象==创建一个引用数组,每个引用自动初始化为为特定的关键字NULL,基本数据类型数组初始化:所占内存全部置0;)
2.不能在它的范围外被访问

三、永远不需要销毁对象

1)作用域
花括号决定作用域

注:以下代码不适用于JAVA,但是可用于C/C++

  {    int x = 12;    {      int x = 96;//illegal in java    }  }
0 0
原创粉丝点击