前述:利用一段较为充足暑假时间,对以前的Java学习进行一个系统性的回顾,对于部分知识点进行记录和积累。

Java中的内存

一 Java中的内存划分:

Java中内存主要划分为五部分

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

    • 局部变量:方法的参数,或者是方法{}内部的变量
    • 作用域:一旦超出作用域,立刻从栈内存当中消失
  • 堆(Heap):凡是new出来的东西,都在堆当中
    • 堆内存里面的东西都有一个地址值:16进制
    • 堆内存里面的数据,都有默认:
      • 如果是整数    默认为0
      • 如果是浮点数   默认为0.0
      • 如果是字符    默认为'\u0000'
      • 如果是布尔    默认为false
      • 如果是引用类型  默认为null
  • 方法区(Method Area):存储.class相关信息,包含方法的信息。
  • 本地方法栈(Native Method Stack):与操作系统相关。
  • 寄存器(PC Register):与CPU相关。

二 创建数组时的内存图:

只有一个数组的内存图

  

有两个独立数组的内存图

  

两个引用指向同一个数组的内存图

  

二 :

  

三 :

  

四 :

综上:

代码补充:

 

总结

结合此次设计,在学习过程遇到的错误,因为习惯了网址的书写方式,故在书写文件名的文件路径时,忘记了转义字符的事情。没有在指定文件夹下面发现要存储使用的dat文件,却在程序目录中发现了负责存储的dat文件,故在书写文件路径时\一定要书写成\\通过转义得到所需的\。最后的二进制的输入输出方式,对我所想的结构体类型的数据存储十分友好,并且可以通过循环来不断的取文件中的数据,达到自己的目的。由此,感谢书写过程中,其他博主的帖子给我的指引还有谭浩强老师的教材中的很多理论基础。非常感谢!

 
 
 

Java基础知识_内存的更多相关文章

  1. Java基础知识_毕向东_Java基础视频教程笔记(22-25 GUI 网络编程 正则)

    22天-01-GUIGUI:Graphical User Interface 图形用户接口 Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中CLI:Common lin ...

  2. java基础知识学习 内存相关

    Java 内存分配策略 静态存储区(方法区):主要存放静态数据.全局 static 数据和常量.这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在. 栈区 :当方法被执行时,方法体内的局部 ...

  3. Java基础知识_毕向东_Java基础视频教程笔记(19-21 IO流)

    18天-06-IO流 字节流和字符流 字节流两个基类:InputStream,FileInputStream,BufferedInputStream OutputStream,FileOutputSt ...

  4. Java基础知识_毕向东_Java基础视频教程笔记(11-12 多线程)

    11天-01-多线程进程:是一个正在执行中的程序.每个进程执行都有一个执行顺序.该顺序是一个执行路径或者叫一个控制单元.线程:是进程中的一个独立的控制单元,线程在控制着进程的执行.一个进程至少有一个线 ...

  5. Java基础知识_毕向东_Java基础视频教程笔记(5-10 面向对象)

    06天-05-面向对象(帮助文档的制作javadoc):java文档生成命令:javadoc -d filepatn demo.java   -author -version(可选)一个类中默认会有一 ...

  6. java 基础知识学习 内存泄露(memory leak) VS 内存溢出(out of memory)以及内存管理

    内存泄露(memory leak) VS 内存溢出(out of memory) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory ...

  7. Java基础知识_毕向东_Java基础视频教程笔记(26 反射)

    Java反射机制: 是在运行状态中,对于任意一个类(class)文件,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性.这种动态获取的信息以及动态调用对象的方法的功 ...

  8. Java基础知识_毕向东_Java基础视频教程笔记(14-18集合框架)

    14天-01-集合框架集合类出现:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.数组与集合类同是容器,有何不同? 数组长度 ...

  9. Java基础知识_毕向东_Java基础视频教程笔记(13 字符)

    13天-01-String String类适用于描述字符串事物. 常见的操作:1.获取: 1.1字符串中包含的字符数,也就是字符串的长度. int length():获取长度 1.2根据索引值获取位置 ...

随机推荐

  1. Jmeter系列(35)- 使用 ServerAgent 监控服务器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 前言 做性能测试,监控服务器资源指标是 ...

  2. 入门大数据---Hbase是什么?

    一.Hbase是什么? Hbase属于NoSql的一种. NoSql数据库分为如下几类: Key-Value类型数据库 这类数据库主要会使用到一个哈希表,这个表有一个特定的键和一个指针指向特定的数据. ...

  3. 入门大数据---Python基础

    前言 由于AI的发展,包括Python集成了很多计算库,所以淡入了人们的视野,成为一个极力追捧的语言. 首先概括下Python中文含义是蟒蛇,它是一个胶水语言和一个脚本语言,胶水的意思是能和多种语言集 ...

  4. JDK8--03:lambda表达式语法

    对于lambda表达式的基础语法,一个是要了解lambda表达式的基础语法,另外一个是需要了解函数式接口 一.lambda表达式基础语法描述 java8中引入了新的操作符  ->  ,可以称为l ...

  5. Angular2-------Error: Unexpected value ‘undefined’ declared by the module ‘模块名

    请检查[app.module.ts]文件中的[declarations]模块最后是否多了一个逗号 (完)

  6. css input checkbox复选框控件 样式美化的多种方案

    checkbox复选框可能是网站中常用的html元素,但大多数人并不满意它的默认样式,这篇文章就讲讲如何实现input checkbox复选框控件 样式美化效果. 资源网站大全 https://55w ...

  7. gulp 如何排除文件和文件夹

    在网上找了好久,很多用gulp-ignore来处理,或者!来处理 经验证,gulp-ignore没有效果,如果有大神路过,还请指教:!一般的写法只能排除单个文件,以下直接写结论 1.如何排除单个文件 ...

  8. 阐述Fetch.ai的能源市场优化

    原文链接:https://fetch.ai/explaining-fetch-ais-energy-market-optimization/ 阐述Fetch.ai的能源市场优化 2019年11月4日 ...

  9. day14总结

    装饰器 """1.什么是装饰器 器指的是工具/功能 装饰指的是为被装饰对象添加额外的功能 大白话:定义装饰器就是定义了一个函数,该函数就是用来为其他函数添加额外的功能的 ...

  10. day35 作业

    服务端 import subprocess import struct import json from socket import * server = socket(AF_INET, SOCK_S ...