数据存储:
代码区: 有些数据是存储在代码区中的,例如常量; 有些数据是直接存储在指令中的
寄存器: 在语法层面上: Java不能操作寄存器; C/C++建议编译器使用寄存器; 汇编是能够直接操作寄存器
栈区:
堆区:
非RAM存储:硬盘、网络、数据库等等:将内存中的对象序列化到硬盘上; 将硬盘上的数据反序列化到内存还原成对象
数据类型
程序处理的对象:数据
任何数据都有具体的类型:无论是在现实生活中还是在程序的世界中
分类:基本数据类型 vs 引用数据类型 ==> 简称:基本类型 vs 引用类型
数组
数组类型是引用类型
基本类型数组 vs 引用类型数组
基本类型数组的元素存储的是基本类型的数据
引用类型数组的元素存储的是引用:那么在使用之前必须关联对象:引用必须关联对象才能被正确使用
通过引用来操纵对象:例如通过遥控器操作电视机(遥控器是引用, 电视机是对象)
引用与对象是可以独立存在的
通过引用操作对象的前提:引用必须关联对象
对象创建方式:
通过new操作符来创建对象
通过反射机制来创建对象 :一般多用在框架结构中
向对象发消息
向对象发消息:是面相对象的术语而已:其实就是调用对象的方法
向对象发消息:就是调用对象的方法:调用对象方法的目的是为了提供服务
程序的目的就是为了提供服务
对象是服务提供者
对象初始化与清理
知道对象初始化与清理的重要性
对象的初始化:通过构造器完成:编译器负责生成调用构造器的代码
对象的清理:通过JVM的垃圾回收器完成:程序猿不能也无需干涉:不再需要对象之前:reference = null:切断引用与对象的关联关系
作用域:
访问控制的本质就是在声明作用域:public、protected、package、private
全局作用域
类作用域
子类作用域
包作用域
局部作用域:是一个大的块级作用域
多级嵌套的块级作用域中不能定义同名的变量/对象
包机制
包机制的目的就是为了防止名称冲突
包名代表了子目录的划分
类的组成
成员变量
成员方法
static关键字
类型转换
基本类型与引用类型之间是不能转换的,自动装箱与自动拆箱开起来好像是基本类型与引用类型之间好像可以转换:其实是编译器偷偷的做了手脚了:通过反编译工具可以看出本质
基本类型之间的转换
基本类型分为两大类:布尔类型与数值类型
布尔类型与数值类型不能相互转换
数值类型之间可以相互转换:自动转换或强制转换
引用类型之间的转换
具有继承关系的两个类之间可以相互转换
向上转型:自动完成,决定安全
向下转型:必须强转,可能不安全
类型提升
1. 对于小于int类型的基本类型char byte short进行任何算术运算都会先提升为int类型再运算,结果为int类型
2. 对于小于int类型的基本类型char byte short进行位运算都会先提升为int类型再运算,结果为int类型
3. 基本数值类型的表达式中,最大的数据类型决定了表达式结果的类型
float与double,转换为double
int与long,转换为long
[01]JavaSE基础:万物皆对象
最新推荐文章于 2025-08-13 19:50:51 发布
本文深入探讨了数据存储的不同区域,如代码区、寄存器、栈区、堆区及非RAM存储,以及数据类型、数组和对象的概念。详细讲解了对象的创建、初始化、清理过程,以及通过引用操纵对象的方式。
6504





