39天

Java的内存划分

主要分为以下5个部分:

1.栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。

​ 局部变量:方法的参数,或者是方法{}内部的变量。

​ 作用域:一旦超出作用域,立刻从栈内存当中消失。

2.堆(Heap):凡是new出来的东西,都在堆当中。

​ 堆内存里面的东西都有一个地址值:16进制

​ 堆内存里面的数据u,都有默认值,规则:

​ 如果是整数 默认为0

​ 如果是浮点数 默认为0.0

​ 如果是字符 默认为‘\u0000’

​ 如果是浮点数 默认为false

​ 如果是浮点数 默认为null

3.方法区(Method Area):存储.class相关信息,包含方法的信息。

4.本地方法栈(Native Method Stack):与操作系统相关。

5.寄存器(pc Register):与CPU相关。

一个数组的内存图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5dqYdK1O-1607311649531)(F:\Java\Learn\day11\day11.assets\image-20201207093427628.png)]

两个数组的内存图


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWEQVfJc-1607311649535)(F:\Java\Learn\day11\day11.assets\image-20201207100123717.png)]

两个数组共同指向一个内存空间


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w0u8uAZ3-1607311649536)(F:\Java\Learn\day11\day11.assets\image-20201207102211520.png)]

数组索引越界异常

package day1101;/*
* 数组得索引编号从0开始,一直到“数组得长度-1”为止
*
* 如果访问数组元素得时候,索引编号并不存在,那么将会发生
* 数组索引越界异常
* ArrayIndexOutOfBoundsExceptions
* 原因:索引编号写错了
* 解决:修改成为存在得正确索引编号* */public class Demo01ArrayIndex {public static void main(String[] args) {int[] array = { 15, 25, 35 };System.out.println(array[0]);//15System.out.println(array[1]);//25System.out.println(array[2]);//35//System.out.println(array[3]);//报错超出索引范围}
}

空指针异常

package day1101;/*所有的引用类型变量,都可以赋值为一个null值,但是代表其中什么都没有
*
* 数组必须进行new初始化才能使用其中的元素。
* 如果只是赋值了一个null,没有进行new创建,
* 那么将会发生;
* 空指针异常NullPointerException
*
* 原因:忘了new
* 解决:补上new
* */public class Demo01ArrayNull {public static void main(String[] args) {//int[] array;//array  = new int[3];//System.out.println(array[0]);//没有new的话Variable 'array' might not have been initializedint[] array = null;array = new int[3];System.out.println(array[0]);//空指针异常    0}
}

获取数组的长度

package day1101;
/*
* 获取数组长度的格式:
* 数组名称.length
* 这将会得到一个int数字,代表数组的长度
*
* 数组一旦创建,程序运行期间,长度不可改变
* */
public class Demo03ArrayLength {public static void main(String[] args) {int[] arrayA = new int[3];int[] arrayB = { 10, 20, 30, 40};System.out.println(arrayA.length);//3System.out.println(arrayB.length);//4int[] arrayC = new int[5];System.out.println(arrayC.length);//5arrayC = new int[7];System.out.println(arrayC.length);//7}
}


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-crYJYVje-1607311649540)(F:\Java\Learn\day11\day11.assets\image-20201207111226752.png)]

数组长度的不可变说的是,只要在堆里面创建了new了新的数组,就是新的不可以改变,但是左边的数组的引用是可以改变的。

遍历数组

package day1101;/** 遍历数组,说的就是对数组当中的每一个元素进行逐一,挨个儿处理,默认的处理方式就是打印输出。* */
public class Demo04Array {public static void main(String[] args) {int[] array = {10, 20, 30, 40};for (int i = 0; i < array.length; i++) {System.out.println("第" + i + "个元素为:" + array[i]);}//可以通过输入array.fori来出现上述for循环}
}

第11天学习Java的笔记(数组注意事项)相关推荐

  1. 第十天学习Java的笔记(数组)

    数组 数组的概念及定义方法 还剩43天 package demo1001;/* * 数组:是一种容器,可以同时存放多个数据值 * * 数组的特点: * 1.数组是一种引用数据类型 * 2.数组当中的多 ...

  2. 第12天学习Java的笔记(数组小练习,数组与方法)

    38天 求数组中的最大值 package day1201;public class Demo01ArrayMax {public static void main(String[] args) {in ...

  3. 深入学习Java虚拟机笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.走进Java 1.4.2 HotSpot VM 1.4.4 BEA JRockit/IBM J9 VM 1.6.1 ...

  4. 第21天学习Java的笔记-数学工具类Arrays,Math

    27天! 数学工具类 1.1数组工具类Arrays package Demo2101;/* 注意事项:是Arrays进行调用,不是变量进行调用!!!* java.util.Arrays是一个与数组相关 ...

  5. 第19天学习Java的笔记-String字符串

    29天! 字符串 1.字符串概述和特点.构造方法和直接创建 package Demo1901;/* * java.lang.String类代表字符串. * API当中说,Java程序中的所有字符串字面 ...

  6. 第18天学习Java的笔记-ArrayList

    还有31天! 对象数组 package Demo1801;public class Person {private String name;private int age;public Person( ...

  7. 2017/11/6~2017/11/12学习Java总结

    1.方法调用 public class ????{ public static void main(String[] args){ xxxx: } static public void xxxx{ } ...

  8. 第22天学习Java的笔记-继承

    继承 1.继承的概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c1ocRigI-1608862409653)(F:\Java\Learn\day15\day22. ...

  9. 第17天学习Java的笔记(匿名对象,随机数,猜数字小游戏)

    33天! 匿名对象 package Demo1701;public class Person {String name;public void showName() {System.out.print ...

最新文章

  1. Linux下怎么诊断网站性能异常
  2. 数字化时代,如何解决企业协同办公的问题?
  3. C#中判断文件夹或文件是否存在的方法
  4. 查 101.201.62.30 IP信誉方法
  5. Java之美之设计模式
  6. sdwan技术发展正蚕食mpls市场—vecloud
  7. codewars--js--Hamming Numbers
  8. 如何备份被独占文件?
  9. 大话设计模式之装饰者模式
  10. 设计模式之三:观察者模式
  11. ASP.NET------站点地图SiteMapPath
  12. tensorboard的安装与使用
  13. java安装没有jdk文件_java文件在没有安装jdk的windows下运行。
  14. 【计算机毕业设计】疫情社区管理系统的设计与实现 (新增-健康打卡)
  15. 乐优商城遇到的坑(二):Day56 品牌管理之虚拟机CentOS6.5我真的不会装
  16. 【MacOS】必备的常用快捷键
  17. gb和gib的区别_内存 G和GB有什么区别
  18. 互联网寒冬,程序员如何逆流而上?
  19. 中国电影的网络付费点播发行:现状与展望
  20. logTracker错误日志跟踪组件(二)

热门文章

  1. crt脚本怎么添加等待时间_secureCRT自动化脚本(之定时任务)
  2. 的有效性最好_世界前10名面膜补水排行榜 最好用的十款面膜推荐
  3. jdbc preparestatement 执行多条语句_jmeter获取JDBC响应做接口关联(三)
  4. java在图片下方写文字_Java画图给图片底部添加文字标题
  5. pe如何自动加载外置工具_如何自动加载网站的深色模式?
  6. 11无监听程序_腾讯开心鼠英语 小程序实践与总结
  7. 在阅读文献中提高升华自己--转
  8. AtCoder AGC038F Two Permutations (网络流、最小割)
  9. BZOJ 2806 Luogu P4022 [CTSC2012]Cheat (广义后缀自动机、DP、二分、单调队列)
  10. 目前我国家庭计算机用户接入因特网的下述,目前我国家庭计算机用户接入因特网的下述几种方法中,速度最快的是________ 。...