java 对象,方法、属性相关的使用介绍

java 对象创建:

1、在java中对对象的的操作是通过引用进行实现的(《javaThinK4》中说:使用“使用引用操作对象”)

实例:如果想操作一个句子或者一个单词 可以创建一个String的引用: 

String  s;

这里创建的只是一个引用,并不是对象(也就说创建的该引用是保存在jvm栈上),如果通过这个引用去操作对象(或者向s发送消息)可能会返回一个运行时错误,或者为空的异常(将string 生声明为类成员变量时java会默认个s赋值null)这是因为此时的s并没有和任何事物相关联,因此安全的做法就是创建一个引用同时给他初始化

String s="test";或者String s= new String("test");

创建对象通过new 关键字来创建

2、对象创建在jvm中的保存位置:

a、寄存器:这是最快的储存区域,因为它位于不同于其他存储区域(位于处理器内部)但寄存器的的数量及其有限,所以寄存器可以根据需求进行分配,你不能直接控制,也不能在程序中感觉到寄存器的存在的任何迹象。

b、栈(堆栈  jvm将引用保存在此处)位于通用的RAM(随机访问存储器),但通过堆栈指针可以从处理器那里获得直接的支持。堆栈的指针若向下移动,则分配新的的内存。堆栈指针若向上移动,则释放内存。这是一种快速有效的分配储存的方法,仅次于寄存器。创建程序时,java系统必须知道存储在栈内所有项的生命周期,以便上下移动堆栈指针。这一限制了程序的灵活性,所以虽然一些数据储存在堆栈中----特别对象的引用,java对象不储存在此处

c、堆:一种通用内存池(也位于RAM区),用于储存所有的java对象

d、常量储存(位于 jvm的 方法区):用于储存一些常量 如:String s="test";字符串test就保存在常量区

jvm运行时数据区结构图:


3、特例:基本类型

对于基本类型 变量的创建不需要通过 new来创建,而是创建了一个非引用的“自动”变量(即非引用的变量)这个变量直接存储“值”,并置于堆栈中,而且效率也很高,在java中要确定每种基本类型所占存储空间的大小,他们的存储大小并不像其他大多数语言那样随机器硬件的架构的的变化而变化。这种所占的储存空间的大小是java程序比其他大多数语言编写的程序更有可移植性的原因之一


所有的数值类型都有类型正负号,所以不要去寻找无符号的数值类型。boolean 类型所占的空间大小没有指定,只定义了能够取字面值true和false

基本类型还具有封装类

4、高精度的数字

java 提供了两个高精度的计算的类:BigInteger和BigDecimal,虽然他们大体上属于“包装器类”的范畴但是二者没有对应的基本类型,不过两个类提供的方法操作方式和基本类型操作相似,也就是说能够作用于int和float的操作也能够作用于BigInteger和BigDecimal  只不过是调用方法替代了运算符

5、变量的声明定义:

a、在类中声明定义变量称为类变量(类的属性)  在类中声明变量的时候可以直接声明可以不进行赋值也可以进行初始化赋值(不进行手动初始化java默认会给变添加默认初始化值);

b、在类的方法体中声明 变量必须进行初始化 如果不进行初始化  在引用声明的该变量时编译会出错(方法体内必须进行初始化变量值)  在方法体内声明变量不能使用public 、private、protected进行修饰 ,也不能够在方法体内使用static修饰的变量



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值