Java对象依赖引用来操作,任何事物都是“按值传递”。Humen zhangSan = new Man(); zhangSan只是一个引用,指向这个人,但不是这个人本身。
- 对象在哪里?
- 寄存器:处理器内部,最快的存储区域,容量最小;
- 堆栈:RAM(随机访问存储器),速度仅次于寄存器,对象引用所在,Java系统必须知道存储在堆栈中所有项的生命周期,方便GC回收。是管理堆的栈,类似于引用和对象的关系。
- 堆:是一种通用内存池,RAM中,存放Java对象
- 常量存储,静态存储区
- 非ROM存储:流对象、持久化对象等
Java中的基本数据类型、数组(自动初始化)、容器、控制流程、操作符、import、static、switch、goto(label:)、注释、Javadoc、enum、可变参数。知道了解不知道的学习。
- 基本类型
- char c =’x'。c为变量直接存储值,置于堆栈中
- boolean、char(16)、byte(8)、short(16)、int(32)、long(64)、float(32)、double、void(64)
- 成员变量初始化false ' ' 0-0 0.0
- 对于高精度的计算需要用到类BigDecimal、BigInteger
- 数组
- Java确保数组会被初始化,并且不能在它的范围之外被访问(代价:少量内存开销及运行时的下标检查),优:安全
- 初始化操作时将数组所占部分的内存全部置0
- byte[] array = new byte[1024];
- 枚举类型:可在switch中使用
- 定义:public enum Spi{NOT, MTLD}
- 使用:Spi ss = Spi.NOT; syso(ss);//NOT
- 方法:ordinal();//常量的声明顺序0
- 杂七杂八
1. java是一种自由格式(free-form)语言,空格制表符换行不影响程序执行结果。
2. 注释 // /** */ /* */
3. 作用域与生命周期
4. javac java javadoc(@see @link @docRoot @inheritRoot @version @author @since @paran @return @throws @Deprecated)
5. 类与包
1. 字段
2. toString 没有被重写A@1a46e30 表示的是类的名字和对象的地址
3. 可变参数类型fun(int ... arr) 正常情况是将多个参数转为一个数组;特殊情况是当参数只有一个时,且强制转化为参数所需数组,则可当作数组传入 如:fun(new int[]{1,2,3}) 则arr={1,2,3};不依赖于自动包装机制;对于可以自动向上转化的类型,重载时要注意 比如f(float,char...)与f(char...)
4. 方法
1. 方法签名
2. 参数、返回值
5. imort 与import static (可直接使用方法)
6. java.lang是默认导入每个Java文件中的
7. label: break label; continue label;
8. switch(integral-selector) {
case: ;break;default
}
- static 可修饰类和变量、代码块 表示属于类型而不是对象
- 在将float或double转换为整形值时,总是对该数字进行截尾,如果想要得到舍入的结果,需要java.lang.Math.round()
- 分支、循环