Java基础知识_内存
2024-10-09 07:01:40
前述:利用一段较为充足暑假时间,对以前的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开发基础
- Balanced Teams (USACO Jan Bronze 2014)
- 【Length of Last Word】cpp
- Lerning Entity Framework 6 ------ Handling concurrency With SQL Server Database
- 转载:磁盘目录(1.3.3)《深入理解Nginx》(陶辉)
- BZOJ 3331 [BeiJing2013]压力-Tarjan + 树上差分
- Android webview背景设置为透明无效 拖动时背景闪烁黑色
- C#反射使用时注意BindingFlags的用法(转载)
- spring mvc 如何传递集合参数(list,数组)
- 使用CAS实现无锁的SkipList
- Java 利用监听器来实现记录用户访问网站次数
- vue-one_demo_music
- 【mybatis】mybatis多表联查,存在一对多关系的,实体中使用List作为字段接收查询结果的写法
- 数据校验(2)--demo1---bai
- HDU 1937 J - Justice League
- Linux学习之二十一-shell编程基础
- Maven环境下搭建SSH框架之Spring整合Struts2
- checkbox 全选 单选的使用
- Android 中的Canvas画图
- linux字符设备驱动程序框架(老方法)