`
vortexchoo
  • 浏览: 67556 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java 值传递笔记

    博客分类:
  • java
阅读更多

package chunf.test;

public class Test2 {
//    public static void doTest(int i, int j) {  
//        int a = i;  
//        i = j;  
//        j = a;  
//    }  
// 
//    public static void main(String[] args) {  
//        int a = 3;  
//        int b = 4;  
//        doTest(a, b);  
// 
//        System.out.println("a=" + a);  
//        System.out.println("b=" + b);  
//    }
    //以上输出的是 3 4 虽然走了doTest方法 但是,传递的只是对a b 的引用,并未改变a b 的值。
//----------------------------------------------------------------------------------- 
//    public static void doTest(int[] counts) {  
//        counts[0] = 6;  
//        System.out.println(counts[0]);  
//    }  
// 
//    public static void main(String[] args) {  
//        int[] count = { 1, 2, 3};  
//        doTest(count);  
//    }   
//以上输出为6,因为数组传递至方法内,方法将数组改变并在改变后打印改变后的值。
//----------------------------------------------------------------------------------
//    public static void doTest(Test1 a) {  
//        a = new Test1();  
//        a.a++;  
//    }  
//      
//    public static void main(String args[]) {  
//        Test1 a = new Test1();  
//        doTest(a);  
//        System.out.println(a.a);  
//    }
/*
 * Test1{
 *  int a = 2;
 * }
 * */
//以上输出依然为TEST1类中的初始a值,原因是a并非静态的变量,每当new一个新的类,指针指向的地址是变化的。并非被方法处理的TEST1类
//------------------------------------------------------------------------------------
//    public static void doTest(Test1 a) {  
//        a = new Test1();  
//        a.a++;  
//    }  
//      
//    public static void main(String args[]) {  
//        Test1 a = new Test1();  
//        doTest(a);  
//        System.out.println(a.a);  
//    }
/*
* Test1{
*  static int a = 2;
* }
* */
//以上输出为3,因为TEST1类中的变量a是静态的,因此无论new了多少个TEST1类,变量a的地址是不变的。所以操作的都是同一个a
//例如下面例子
//public static void doTest(Test1 a){
//    a = new Test1();
//    a.a++;
//}
//
//public static void main(String[] args) {
//    Test1 tst1 = new Test1();
//    doTest(tst1);
//    Test1 tst2 = new Test1();
//    doTest(tst2);
//    System.out.println(tst1.a);
//    System.out.println(tst2.a);
//}
//这两行输出都是4,因为无论是tst1还是tst2,变量a的地址是不变的,操作的都是同一个a
//----------------------------------------------------------------------------------
//    String str = new String("haha");  
//     
//    char[] ch = { 'a', 'b', 'c' };  
 
//    public static void main(String args[]) {  
//        Test2 tst = new Test2();  
//        ex.change(tst.str, tst.ch);  
//        System.out.print(tst.str + " and ");  
//        System.out.println(tst.ch);  
//    }  
// 
//    public void change(String str, char ch[]) {  
//        str = "lalala";  
//        ch[0] = 'd';  
//    } 
//以上输出haha and dbc由于String是final的,那么tst.str是不被改变的。而数组并非如此,因此数组被改变
}  

分享到:
评论

相关推荐

    java超强笔记

    在函数和方法部分,笔记会介绍如何定义和调用函数,理解参数传递,以及封装和重载的概念。此外,异常处理(try-catch-finally)也是必不可少的内容,它有助于编写健壮的代码。 随着对基础知识的掌握,笔记会进一步...

    尚硅谷JAVA基础笔记吐血整理

    Java采用值传递机制,对于基本数据类型,传递的是实际值;对于引用数据类型,传递的是对象的引用地址。 【属性(成员变量)与局部变量】 属性是类的成员,可以在类的范围内定义,有默认初始化值,可以使用权限修饰...

    JAVA经典教材笔记.pdf

    以下是对该教材笔记中提及知识点的详细解读。 JAVA概述及开发环境搭建是新手学习Java的入门基础,其中包括了对Java语言的发展概述,以及如何搭建Java开发环境。Java语言自1995年推出以来,不断更新,引入了大量新...

    狂神说Java系列笔记.rar

    10. **4、JavaSE:方法.pdf**:方法是Java中实现功能的单元,笔记将涵盖方法的定义、参数传递、返回值、重载和递归等主题。 这些笔记覆盖了从Java基础到Web开发的广泛领域,对于提升Java开发者的技术水平有着重要...

    JAVA经典教材笔记

    ### JAVA经典教材笔记知识点梳理 #### 第一章:JAVA概述及开发环境搭建 - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA...

    《java学习》-java学习笔记.zip

    这个章节可能涵盖了Java中一些容易混淆的概念,比如值传递与引用传递、静态与非静态、接口与抽象类的区别等,有助于深化对Java语言的理解。 通过这份笔记的学习,读者将能系统地掌握Java的核心知识,并具备解决...

    Java十大基础笔记整理(PDF)

    这份"Java十大基础笔记整理(PDF)"提供了全面的Java基础知识概览,适合初学者进行学习和复习。下面,我们将深入探讨Java的基础知识,涵盖核心概念、语法和编程实践。 1. **Java简介**:Java是由Sun Microsystems...

    Java基础知识笔记.rar

    5. **方法**:掌握方法的定义、参数传递(按值传递和按引用传递)以及返回值。 6. **类与对象**:理解面向对象编程的基本概念,包括类的定义、对象的创建、封装、继承和多态性。 7. **构造器**:了解构造函数的...

    Java学习笔记(必看经典).pdf

    本知识点的标题为“Java学习笔记(必看经典)”,意味着所整理的内容是针对Java初学者的一系列核心概念和原理的总结。 首先,面向对象编程是Java语言的核心,它与传统的面向过程编程有显著的不同。面向对象编程强调的...

    java ee 复习笔记

    Java EE的复习笔记是学习这个复杂框架的重要参考资料,尤其对于开发者来说,深入理解其核心概念和技术是必不可少的。 首先,Struts是Java EE中的一个MVC(Model-View-Controller)框架,它的主要任务是分离业务逻辑...

    狂神说Java笔记资料

    《狂神说Java笔记资料》是一份全面涵盖Java开发基础知识的文档集,旨在帮助学习者系统地掌握Java编程。这份笔记包含多个章节,每个章节都深入讲解了一个特定的主题,覆盖了从初学者到进阶开发者必备的知识点。 1. *...

    狂神说java系列笔记(java基础+javaweb+ssm+微服务)全套

    9. **4、JavaSE:方法.pdf**:讲解Java中的方法定义、参数传递、返回值以及重载、递归等概念。 10. **33、JVM探究.pdf**:深入Java虚拟机,理解内存模型、垃圾回收、性能优化等方面的知识。 通过这些内容的学习,...

    java基础学习笔记.doc

    以上是Java基础学习笔记中涉及的关键知识点,涵盖了输入输出、对象创建、随机数生成、数组和集合的使用以及字符串操作。这些是学习Java编程时的基础内容,深入理解和熟练运用这些知识将有助于进一步学习更复杂的Java...

    java私塾学习笔记整理

    ### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...

    java网络编程笔记

    #### 标题解析:Java网络编程笔记 在当今数字化时代,网络编程已成为软件开发中不可或缺的一部分,尤其在J2EE(Java 2 Platform, Enterprise Edition)框架下,其重要性更为凸显。J2EE为构建企业级应用提供了强大的...

    java学习笔记.doc

    Java 学习笔记 本资源摘要信息涵盖了 Java 编程语言的基础知识,着重于面向对象编程(OOP)的概念和实现。下面是该资源的详细知识点: 1. 面向对象编程(OOP)的基本概念: * 对象: everything is an object...

    java.rar黑马java基础笔记

    《黑马程序员Java基础笔记》是一份全面覆盖Java编程基础知识的学习资料,旨在帮助初学者迅速掌握Java编程语言,能够独立编写Java程序。这份笔记由多个部分组成,分别详细讲解了Java的基础语法、集合、多线程、IO以及...

    我的java笔记

    "Java笔记" Java是一个强大且功能丰富的编程语言,具有广泛的应用场景。在本笔记中,我们将探讨Java语言中的两大重要概念:匿名对象和this关键字。 匿名对象 匿名对象是一个没有名字的实体,也就是该实体没有对应...

    李兴华Java8课堂笔记

    在对象引用传递部分,笔记结合内存变化图,清晰展示了值传递和引用传递的区别。值传递是原始类型数据的副本被传递,而引用传递则是对象的引用被传递。通过这部分的学习,读者可以理解为何Java中没有真正的“指针”,...

Global site tag (gtag.js) - Google Analytics