IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java-堆,栈,类和对象,方法 -> 正文阅读

[Java知识库]java-堆,栈,类和对象,方法

栈(Stack):也被称为虚拟机栈,用来存放在方法执行时的变量(基本类型的变量和对象的引用变量)。其中包括了变量的句柄(变量名)和变量的值。引用类型的值放的是地址值。并且栈中的变量会在方法结束后消亡.

堆(Heap):通过new创建出来的对象都放在堆空间中,还包括像数组集合等这些都存在堆中,堆空间的每一个地址都是唯一的,栈中句柄引用堆的地址值,所以如果一个地址被多个句柄引用,其中一方改变会影响其他正在使用的句柄。堆中的内存通过GC来回收.

常量池:常量是不可变的变量,直接赋值的String变量的值就存储在常量池中,String的每次改变都会创建一个新的变量

对于方法中的局部变量的引用时存放在java运行时数据区的栈中,对于实例变量则是存放在java运行时数据区的堆中。

当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。

void func()
{
    Object obj = new Object();//这个obj在函数的栈里。
}

class Test
{
   private Object obj = new Object();//这个obj随对应的Test对象分配在堆里
}

//对于方法中局部变量的引用时存放在java运行时数据区的栈中(类方法执行的之后在栈,里面局部变量也在栈)
//对于实例变量则是存放在java运行时数据区的堆中。(实例化的对象里面的东西都在堆)

类和对象

:由一组事物的特征和行为抽象的一个概念

对象:具体存在的事物

类和对象是相互的,需要去描述一个复杂的事物,需要根据事物的特征和行为抽象出类
根据类(模版)来创建的对象,这个对象具有类描述的所有的特征和行为

编写类的时候考虑内聚性
一个类应该只描述和当前类相关的事物,比如学生类中就需要只放学生的基本的特征和行为,而不要出现无关的比如班级名和老师的电话

类不能直接使用(非绝对),类本身是抽象的,应该要使用类的对象
使用对象通过类来创建,语法
类名 对象名 = new 类名();
对象名.属性 对象名.方法()

一个类是可以创建N个对象,这些对象之间互不影响,每个对象在堆中都有自己的空间

方法:一组代码封装的特定的功能
java的方法分为有参和无参,还分为带返回和无返回声明方法的语法:
访问修饰符 返回类型 方法名(【参数列表】){
方法体
【return 返回值】
}

局部变量和全局变量

全局变量:类中声明的属性就被称为全局变量,也可以称为成员变量
局部变量:声明在方法中的变量称为局部变量

全局变量的使用范围:在整个类的所有方法中共享使用
局部变量的使用范围:在方法内有效(逻辑控制语句的花括号内)

在同一个方法中不能有两个局部变量同名,但是局部变量可以和全局
变量同名。如果局部和全局同名,在方法中使用的时候优先使用局部
变量,如果非要使用全局变量 this.全局变量

局部变量需要赋予初始值才能使用
全局变量不需要,有默认值,引用类型null


方法的参数分为


形参:形式参数,定义在方法的小括号内,形参的作用用来接收在调用该方法时传递过来的实参的数据。java方法中的形参需要声明参数类型
实参:调用带参方法时,传递的实际的数据或者一个变量称为实参,数据交给形参接收使用,实参的个数和类型要与形参一一对应

在传参时,java传递的是值,基本类型的数据值和引用类型的地址值。如果传递的是String,形参的改变不会影响实参String是不可变类型

带返回的方法需要使用return关键字
return关键字:一个方法中可以有多个return语句,但是只能执行一条return,在执行完return语句后方法会立即结束,并且返回return后面的值。如果return后面跟了数据,需要指定方法的返回
类型

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:29:19  更:2021-07-31 16:31:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 13:43:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码