变量及其传递
来源:互联网 发布:西南交大网络教育网址 编辑:程序博客网 时间:2024/05/17 03:24
基本类型:其值直接存于变量中。
引用类型:除占据一定内存空间外,它所引用的对象实体(由new创建)也要占用一定的内存空间(我的理解是差不多就是C++创建了个变量 然后又搞了个指针指向它。。)
package com.pku.edu.ch5;public class MyDate {private int day;private int month;private int year;public MyDate(int day, int month, int year) {super();this.day = day;this.month = month;this.year = year;}void addYear() {year++;}public void display() {System.out.println(year + "-" + month + "-" + day);}public static void main(String[] args) {MyDate m = new MyDate(2, 9, 2003); /*创建了一个对象实例 存储在堆中 m为引用变量 指向该对象实例 */MyDate n = m; //使得引用变量n也指向该对象实例m.addYear();m.display(); /* result: 2004-9-22*/n.display(); /* result: 2004-9-22*/ //2引用变量输出的内容相同}}
字段变量(field)和局部变量(local variable)
前者是在类中,后者是方法中定义的变量或者方法的参变量
区别:
1.字段变量为对象的一部分 存储在堆中 局部变量是存储在栈中的
2.生命周期不同。 (很自然 和C++完全一样)
3.初始值:field会自动赋初值。 而局部变量必须显示赋值
4. 局部变量只能被final修饰 因为它和类无关。
变量的传递:
JAVA是值传递的。
对于引用型的变量传递的是引用 (自己理解应该就是C++中的指针传递)。可以改变对象的属性
package com.pku.edu.ch5;public class TransByValue {public static void main(String[] args) {int a = 0;modify(a);System.out.println(a); // result 0int b[] = new int[1];modify(b);System.out.println(b[0]); // result 1}public static void modify(int a) {a++;}public static void modify(int b[]) {b[0]++;b = new int[5]; /* 将b指向一个新的引用 原来的b不会改变 学过C++的很好理解吧 就是指针传递*/System.out.println(b[0]); /*指向新的对象实例 b[0]为0 */}}
0 0
- Java变量及其传递
- 变量及其传递
- java变量及其传递
- 变量及其传递
- 引用传递及其应用
- 引用传递及其应用
- 传递变量名,传递指针,传递引用
- 窗口间变量传递
- 变量参数传递
- asp中变量传递
- main传递int变量
- GUI 变量传递 handles
- 用Application传递变量
- Xslt嵌套传递变量
- Shell变量传递
- shell awk 变量传递
- 同一个页面变量传递
- php-变量的传递
- 【剑指offer】斐波那契序列与跳台阶
- 阿里云服务器ECS centos7.2搭建nginx环境以及负载均衡
- C笔试之一
- Oracle表结构操作
- 基于状态驱动的AOP技术在模块解耦中的应用
- 变量及其传递
- LayaAir引擎创建helloworld
- 算法提高 最长字符序列 (递归or动态规划)
- systemctl命令完全指南
- 如何清除eclipse的workspace目录呢?(myeclipse的清除方法一样!)
- ubifs文件系统制作
- Spring+Quartz 定时器的简单应用
- iOS block探究(一): 基础详解
- Android Studio集成Genymotion 及Genymotion 配置ADB