`
hualikejava
  • 浏览: 171640 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java基本概念

阅读更多

【形参与实参】

形参;是定义方法的时候的参数 例如;void test(int a,short b) a,和b 就是形式参数。没有具体的值。
实参;实际参数,实实在在的有值的参数。例如 int = 10;

实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。
实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,
以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值

形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,
形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。

函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

 

【值传递】
    基本数据类型赋值都属于值传递,值传递传递的是实实在在的变量值,是传递原参数的拷贝,值传递后,
    实参传递给形参的值,形参发生改变而不影响实参。
【引用传递】
引用类型之间赋值属于引用传递。引用传递传递的是对象的引用地址,也就是它的本身(自己最通俗的理解)。
引用传递:传的是地址,就是将实参的地址传递给形参,形参改变了,实参当然被改变了,因为他们指向相同的地址。
引用和我们的指针差不多,但是它不又不需要我们去具体的操作


【内存分配】
一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,
其值就代表数据本身。值类型的数据具有较快的存取速度。

一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,
不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,
需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度。

 

【java 中的垃圾回收机制】

 当一个堆内存中的对象没有被栈内存中表示地址的值“引用”时,这个对象就被称为垃圾对象,它无法被使用但却占据着内存中的区域,
 好比这样:String s = new String(“person”); s = new String(“man”); s本来是指向堆内存中值为person的对象的,
 但是s突然讨厌person了,它指向了堆内存中的man对象了,person就像一个孤儿一样被s遗弃了,但是person比孤儿还要惨。
 
 好比一个人在劳动,突然一天不劳作了,被位高权重的管理的人‘垃圾回收器’发现了,不过被当官的找到往往没什么好事,尤其是这个‘垃圾回收器’,
 它会豪不留情把‘垃圾’们清理走,并且无情的销毁,以便释放内存。
 

【装箱与拆箱】

其实装箱就是值类型到引用类型的转化过程。将一个值类型变量装箱成一个引用类型变量,首先会在托管堆上为新的引用类型变量分配内存空间,
然后将值类型变量拷贝到托管堆上新分配的对象内存中,最后返回新分配的对象内存地址。装箱操作是可逆的,所以还有拆箱操作。
拆箱操作获取只想对象中包含值类型部分的指针,然后由程序员手动将其对应的值拷贝给值类型变量。

 

【栈与堆】
栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、int、long、float、double、boolean)
和对象的引用,数据可以共享,速度仅次于寄存器(register),快于堆。

堆(heap):用于存储对象。堆内存用来存放由new创建的对象和数组,在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理
在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量(对象引用),让栈中的这个变量的取值等于数组或对象在堆内存中的首地址(存在栈中的引用
指向堆地址),栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或者对象,引用变量就相当于是
为数组或者对象起的一个名称。引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之外后被释放。而数组和对象
本身在堆中分配,即使程序运行到使用 new 产生数组或者对象的语句所在的代码块之外,数组和对象本身占据的内存不会被释放,数组和对
象在没有引用变量指向它的时候,才变为垃圾,不能在被使用,但仍然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走(释放掉)。


 

 



 

  • 大小: 145.7 KB
  • 大小: 20.2 KB
分享到:
评论

相关推荐

    Java4Android] 03_Java基本概念(一)

    "Java4Android"这个主题,从标题"03_Java基本概念(一)"来看,旨在为初学者提供Java语言的基础知识,这通常是任何Java或Android开发者的入门起点。描述中提到的内容清晰易懂,表明这一部分可能包含了一系列易于理解...

    java基本概念--java程序开发的基本概念

    【Java基本概念】 Java是一种广泛使用的编程语言,以其跨平台、面向对象和安全性等特点而闻名。Java的主要应用领域在于中间件开发,处理客户端和服务器之间的通信,尤其适合于手持设备、互联网信息站点以及车载计算...

    java基本概念总结.pdf

    从给定的文件内容中,我们可以看到包含了很多Java编程语言的基本概念和术语。...由于原始内容包含了不少OCR扫描错误,部分语句或关键字可能被省略或错误地识别,但是上述知识点提供了文档中提到的Java基本概念的概述。

    JCancy#JAVA#01-JAVA基本概念1

    1 JAVA基本概念public static void main(String args[]){public static void main(String

    java的基本概念介绍

    主要是对java的基本背景以及应用做出简单的介绍

    第一章Java基本概念与环境配置.pptx

    第一章Java基本概念与环境配置.pptx

    Java入门基本概念教程

    Java 基本概念是学习Java编程的基石,它们构成了Java技术体系的基础。在这个教程中,我们将深入探讨以下几个核心概念: 一、JRE(Java运行时环境) JRE,全称为Java Runtime Environment,是Java程序运行所必需的...

    Java 的一些基本概念

    很好的 讲得也很详细哦 大家都来下嘛 分为3卷

    Java基础概念

    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多...

    Java基础知识笔试题及答案

    本资源汇总了 Java 基础知识笔试题及答案,涵盖了 Java 的基本概念、数据类型、运算符、控制结构、函数、数组、集合框架、泛型等方面的知识点。 一、Java 基本概念 Java 是一种面向对象的编程语言,它具有五个基本...

    Java100个经典例子

    本文将对 Java 编程语言的基础知识点进行总结,涵盖 Java 语言的基本概念、数据类型、变量、运算符、控制结构、数组、方法等。 1. Java 基本概念 Java 是一种面向对象的编程语言,它提供了封装、继承、多态三大...

    java视频教程(52课)上 基本概念 面向对象基础 语法 接口 包和访问权限

    03_Java基本概念(一).mp4 04_Java的变量.mp4 05_Java的基本数据类型.mp4 06_练习课(一).mp4 07_运算符与表达式.mp4 08_分支语句(1).mp4 08_分支语句.mp4 09_练习课(二).mp4 10_循环语句(1).mp4 10_循环语句....

    java类与对象的基本概念

    类与对象的基本概念java类与对象的基本概念

    Java相关思维导图.zip

    6、java基本概念 7、java面对对象A 8、java面对对象B 9、java面对对象C 10、java基本数据类型A 11、java基本数据类型B 12、java变量类型 13、java修饰符 14、java运算符A 15、java运算符B 16、java循环结构 17、java...

    Java2D编程--著名的Java大手动画

    环境:Window XP sp3, JDK 1.6, MyEclipse 5.5 运行步骤: 1、下载解压之后,使用MyEclipse导入工程 ...3、如果一切正常,那么你会看到著名的Java大手的动画 ...阅读对象:非常熟悉Java基本概念的人员

    Java4Android开发教程(三)java基本概念

    为了编写有效的Android应用,开发者必须掌握Java的基本概念。本文将介绍一些Java在Android开发中所涉及的基础知识点。 首先,环境变量是在操作系统中设置的一系列键值对,用于指定操作系统运行时的一些必要参数。在...

Global site tag (gtag.js) - Google Analytics