`
风中的斗士
  • 浏览: 3263 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

参数传递与内存存储

 
阅读更多

1.JAVA中的数据类型
 a.常见的8种数据类型
  名称 类型   内存大小
  byte    字节型     8bit---------->bit是内存中最小的单位,是一个二进制位
  short  短整型   16字节
  int     整型   32字节
  long   长整型   64字节
  flout  单精度浮点型 64字节
  double  双精度浮点型 128字节
  char 字符型  16字节 注:JAVA中char是可以存储汉子,而汉字默

认由两个字符组成。
  boolean 布尔型 无特定字节,仅仅表示true和false
 b.引用类型
 java中引用类型有很多,通常常见的是class、和数组
 eg.class HnuStudent extends Student{
 public static void main(String args[]){
  int [][] a = new int[4][4];
  HnuStudent hnu1 = new HnuStudent(a);
  HnuStudent hnu2 = new HnuStudent(hnu1);
 } 
}

2.数据类型的传递
   这里我讲两种传递类型,传值和传引用(即所谓的传地址)
 a.值传递
 eg.class HnuStudent extends Student{
 public static void main(String args[]){
  int a = 0;              //定义a,给a赋值为0
  a++;   //a自加
  int b;   //定义b
  b = a;    //将a的值赋值给b-------这里发生值的传递
  b++;   //b自加
  System.out.println(a); //输出a
  System.out.println(a); //输出b
 } 
}
 b.传引用
 eg.class HnuStudent extends Student{
 public static void main(String args[]){
  int [][] a = new int[4][4];
  HnuStudent hnu1 = new HnuStudent("张三",20);
  HnuStudent hnu2 = new HnuStudent("李氏",22);
  //将hnu1的首地址传给hnu2
  hnu2 = hun1;
 } 
}
传值和传引用跟数据所存储的位置是有关的,可以在第三点看出

3.内存存储
    在java中数据的存取主要是在栈和堆里面发生。栈一般存储一些地址、变量名、简单的数据、字

符串等。堆主要是存储一些类的属性、方法、数组的数据等。
    在主函数中定义的对象、数组、变量他们的地都存储在栈中,例如类,栈只存储他的首地址,而

堆为其开辟一块内存空间,用以存储他的相关数据,当用到该类时,JVM(java virture machine)

会找到该类首地址,读取其数据。正如上面的“hnu2 = hun1;”,将hnu1赋予hnu2,其实际只是传递

地址,所以hnu2现在所存储的内容应该是hnu1中的数据。

分享到:
评论

相关推荐

    值传递与引用传递-内存解析

    在编程语言中,值传递和引用传递是函数参数传递的两种基本方式,它们涉及到内存管理、数据安全以及程序效率等多个重要方面。这篇文章将深入探讨这两种传递方式,并通过内存解析来帮助理解它们的工作原理。 首先,...

    易语言多线程传递文本参数两种方法

    总结来说,易语言中的多线程参数传递既可以通过创建线程时直接传递,也可以借助全局变量或共享内存间接传递。根据实际需求和程序设计选择合适的方法,可以有效地提高程序的效率和可维护性。在实际开发中,理解并熟练...

    VC编程时CPU中参数的传递的方法与总结

    本项目通过实例分析,深入探讨了指针、结构体和数组在CPU参数传递中的工作原理,以及如何进行内存分配、释放和使用。下面我们将详细解析这些知识点。 首先,我们来理解CPU参数传递的基本原则。在C++编程中,函数...

    在VB中用户自定义类型参数的传递和内存操作以及释放内存的方

    参数传递有传值(ByVal)和传址(ByRef)两种方式: 1. **传值**:在传值调用中,UDT的副本被创建并传递到函数或过程中。这意味着对参数的任何更改都不会影响原始变量。例如: ```vb Sub ProcessType(ByVal myUDT ...

    BootLoader与Linux内核的参数传递

    BootLoader与Linux内核的参数传递是嵌入式系统启动过程中的关键环节。BootLoader的主要任务是对硬件进行初始化,加载Linux内核,并将特定的硬件配置信息传递给内核,以便内核能正确地配置系统资源。在不同硬件环境下...

    c/C++可变参数函数的参数传递机制剖析

    ### C/C++可变参数函数的参数传递机制剖析 #### 摘要 本文深入探讨了C/C++语言中可变参数函数的参数传递机制,并提出了一种更加精确且灵活的设计方法来处理这类函数。通过分析,我们不仅理解了如何在函数内部访问...

    JNI 参数传递 Android 自定义对象

    本篇文章将深入探讨JNI中参数传递的基本数据类型、自定义对象以及系统对象。 一、基本数据类型的参数传递 在JNI中,基本数据类型如int、float、char等的传递相对简单。Java中的基本类型在C/C++中都有对应的类型。...

    C++参数传递与作用域

    【C++参数传递与作用域】是编程中重要的概念,主要涉及函数调用时的数据交换方式和变量在不同范围内的生命周期。在C++中,函数调用涉及到栈数据结构,它具有先进后出的特性,用于存储临时数据,如函数调用的信息。 ...

    C语言中函数参数传递教学模式探讨.pdf

    综上所述,文档中探讨的C语言函数参数传递教学模式,涉及了将参数传递与内存变量分布相结合的教学理念,以及采用案例式和互动式教学法来加深学生对概念的理解。这些方法都是为了帮助学生更好地掌握函数参数传递的...

    JAVA语言中参数传递的深入剖析.pdf

    本文对Java语言中参数传递机制进行了深入的剖析,首先从Java的变量内存分配机制开始,对不同的参数传递机制进行了分析,并得出了最合理的结论。 Java语言中参数传递机制可以分为两种情况,即按值传递和引用传递。按...

    关于C++的函数参数传递方式

    这意味着形参和实参在内存中拥有不同的存储空间。因此,即使在函数内部修改了形参的值,实参的原始值也不会受到影响。 ##### 1.1 传普通值调用 传普通值调用是指将变量或表达式的值传递给函数。例如: ```cpp #...

    BootLoader 与Linux 内核的参数传递.pdf

    ### BootLoader 与 Linux 内核的参数传递 #### 概述 在嵌入式系统开发过程中,BootLoader 的设计与实现以及与 Linux 内核之间的参数传递是至关重要的环节。本文将详细介绍如何在一个特定的硬件平台上实现 ...

    C#中的参数传递 .doc

    ### C#中的参数传递详解 在C#编程语言中,参数传递是理解函数调用机制的关键部分。根据数据类型的不同,参数传递的方式也会有所差异。本文将深入探讨C#中参数传递的机制,特别是针对值类型和引用类型的处理方式。 ...

    易语言多线程及线程参数传递案例.zip

    内存传递通常是将数据存储在内存中的某个结构体或者数组中,然后在线程创建时将其作为参数传递。这种方式更加高效,因为它避免了文件I/O操作可能带来的性能损失,但同时也要求线程之间有良好的同步机制,以防止数据...

    易语言DLL参数传递字节集源码

    总的来说,易语言DLL参数传递字节集涉及了DLL调用、指针操作、内存管理和错误处理等多个方面。正确理解和运用这些知识点,能够帮助开发者在易语言中顺利地与DLL进行交互,处理复杂的二进制数据任务。

    C语言函数参数传递过程教学方法研究.pdf

    《C语言函数参数传递过程教学方法研究》这篇文章深入探讨了C语言中函数参数传递的核心概念,旨在解决教学过程中的难点。C语言中的函数调用是一个关键的编程元素,而参数传递则是函数工作的重要机制。文章从变量和...

    深入分析C语言中函数参数传递.pdf

    在内存中,实参与形参使用的是不同的存储单元,函数调用时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参所使用的存储单元被释放实参单元仍保留,并维持原值。 例如,求两个整数中的较大数的...

    ASP.NET页面间参数传递

    ASP.NET页面间参数传递是Web开发中的一个关键概念,它涉及到如何在不同的ASP.NET页面之间共享数据。在ASP.NET框架中,有多种方法可以实现这一目标,每种方法都有其适用场景和优缺点。让我们深入探讨一下这些方法。 ...

Global site tag (gtag.js) - Google Analytics