Java中的内存分配、栈、堆及数组

Java中的内存是怎样进行分配的?

内存的申请和释放都是jvm进行管理的,Java程序要运行,jvm会自动的向电脑申请一块内存。

这块内存分为5个部分:

栈(Stack)

主要存放局部变量(重点)

堆(Heap)

凡是new出来的东西都在堆里面,堆当中的数据都有默认原则;(重点)

堆当中数据的默认值

0
整数
小数
0.0
布尔类型
false
char类型
空格
引用数据类型
null

方法区(Method Area)

存放的是与.class相关的信息

本地方法区(Native Meat后的 Area)

与操作系统有关

寄存器(Register)

与cpu有关

数组

产生的原因

多个相同数据类型变量存储

  • 数组用来将相同的数据类型存储在存储单元里,数组的所有元素必须属于相同的数据类型

定义数组

数组类型【】数组名;
数组是一个引用数据类型
定义好数组以后,要对数组进行初始化

初始化

动态初始化

指定数组的长度,一旦长度指定就是数组中只能存储多少数据
1.两种格式:

  • 数组类型【】数组名=new 数组类型【数组长度】;
  • 数组类型【】数组名; 数组名=new 数组类型【数组长度】;

静态初始化

不直接指定数组长度,而是直接在初始化数组的同时给数组赋值

  • 数组类型【】数组名=new数组类型{数据1,数据2,…}

  • 数组类型【】数组名;数组名

    创建好的数组通过数组的下标,数组的下标从0开始。

数组类型【】数组名={数据1,数据2,…};最简洁

  • 获取数组长度:数组名.length
  • 数组长度一旦定义,不可改变。

数组中的默认值

0
byte
short
int
long
char
double
0.0
float
boolean
false
引用数据类型
null

数组中既可以存放基本数据类型变量,也可以存放引用数据类型变量(数组中也可以存放对象)

下标

  • 0~数组的长度-1
  • 数组的长度
    数组名.length
  • 访问数组中特定的元素
    数组名【下标】

常见操作

  • 遍历
  • 普通for循环
  • while循环
  • 增强for循环
  • stream api
  • 排序(冒泡、选择)
  • 求最值
  • 逆序

多维数组—二维数组

方法函数

  • 定义
    返回值类型 法名(参数列表…) {
    // 法体
    // return 返回值;
    }
  • 方法重载
    同一个类中,方法名相同,参数列表不同

学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程介绍:这是一门Java语言入门课程,针对的是Java初学者或者从事其他计算机语言开发但希望转到Java开发工作上来的软件工程师,是所有想入java之门的朋友首先要学的第一门课,也是整个Java开发的核心和基础,也就是大家常说的JAVA SE版本涵盖的知识;本门课程将采用 windows平台下的intellij IDEA开发环境作为主要的讲解平台,对于熟悉其他Java开发环境的学友们,当然也可以选择自己熟悉的平台;本门课程希望达到的目标是给大家打语言基础,但不希望一上来给大家太重的学习负担,分阶段,逐步的学习,是更好的学习方式,所以在本门课程,我们将只涉及到基础的语言,以及面向对象程序设计的一些基础概念,更多的知识和概念我们将放在进阶课程讲解,这一点望大家知晓;在Java诞生的不到30年时间里,Java开发人员的市场需求已经增长到了一个非常惊人的程度,至少目前来看,没有任何一门开发技术能够和java比,从待遇方面,高级Java开发人员的薪资也是相当的高,大概只有c++能够和Java掰一掰手腕,其他的开发技术的薪资待遇,很难与Java比较。很多想学习java的同学,会有一种困惑,感觉Java知识特别零散,除基本的Java语言外,各种概念、各种框架层出不穷,那我们怎么入学习之门,学到什么程度,能找到什么样的工作,这些问题就会困扰着我们;针对这种情况,我将不断推出一系列的Java课程,通过这一系列的课程,为大家搭建一条比较完整的Java学习链条,我并不准备回答大家“学到什么程度,能找到什么样的工作这种问题“,因为当你学到一定的程度之后,你自然就会找到答案,但有一点可以确定:仅仅学习完本门课程还不够,还需要继续深入学习下去!讲解所安装的是jdk版本是jdk 12版本,但这并不意味着我们要把这个版本的所有知识讲解的面面俱到,把最有用、最实用,最能帮助大家加薪的知识挑选出来讲解是老师的重要责任;讲师介绍:王健伟老师,网名:狂想(KuangXiang),1995年毕业于哈尔滨工程大学计算机及应用专业,20多年软件开发经验,经历过数十个软件项目开发包括网络通信、网络安全、网络游戏等领域,多年的摸爬滚打使自身具备了极其深厚的开发实力和实战经验。深圳知名网络安全公司安络科技(www.cnns.net)有限公司创始人之一、国首套网络安全在线扫描评估系统项目负责人,电子工业出版社2003年《Crystal Reports水晶报表设计与开发实务》书籍作者,全球同服独立游戏《冒险之路》制作人。在教学上,老师自带讲课天赋,善于用最清晰、最通俗的语言把复杂问题简单化,让你听了就能懂,当节学完基本就能掌握,老师能够为你节省大量的学习时间并能达到极好的教学效果!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值