java编程思想--第二章(一切皆对象)

1、用引用操作对象。 (string st= “”absc“”) 就是说你操作st 就行了。--------值传递和引用传递@1

2、对象存储位置:

  寄存器:访问速度最快,处理器内部,数量有限,不可控(不知啥意思,后期补)

  栈 :通过栈针移动操作内存大小,栈针上移释放内存,下移 分配内存,生命周期明确

  堆:编译器动态分配内存,new的时候分配

  常量存储:rom中,不变的数据

(上面的在程序中放,下面的是在介质或者媒介中放着)

  非ram存储:流和持久化对象


3、java基本类型

boolean char byte short int long float double 

               16     8      16    32   64   32      64  

高精度BigInteger和BigDecimal  任意整数和任意定点数 


 4、对象作用域,由你创建的花括号位置决定,new的对象不算在内


5、类,字段,方法。

访问权限+class+命名   

类的两种类型元素:数据成员(有时也叫“字段”)以及成员函数(通常叫“方法”)

方法,参数和返回值。

先看看方法的基本组成部分:名称,参数,返回值,方法体

ReturnType methodName( Argument list){

Method body

}


@1 来解释下值传递和引用传递:

值传递:

方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。


引用传递:

也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,函数接收的是原始值的内存地址;
在方法执行中,形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象

@2 基本类型在哪放着:

基本类型的数据,是引用数据类型,则存储在堆中,若是基本类型,则在栈中


注意:一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因
      在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量。
         (1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机
         (2)当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在类存中的。
   二:在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。
       同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量
       (1)当声明的是基本类型的变量其变量名及其值放在内存中的
       (2)引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的





猜你喜欢

转载自blog.csdn.net/skycanf/article/details/78532885
今日推荐