java基本数据类型、内存分析、装包拆包
2019-09-13 18:01:23
idea快捷键:
file->settings->Keymap->搜索关键字
Increase Font Size 增大字体 ctrl+滚轮上
Decrease Font Size 缩小字体 ctrl+滚轮下
基本的命名规范:驼峰式的命名方式
* 类名:每一个单词的首字母都大写 class GoodMan
* 函数名字:首单词全小写,后面的每个单词首字母大写 eatFood( )
* 成员变量:同函数名字
Java的类型
1.简单类型及占用字节数
* 整数类型 byte(1) short(2) int(4) long(8)
* 字符类型 char(2) 'a' 97 'b' unicode字符集
* 浮点类型 float(4) double(8)
* 布尔类型 boolean true false
具体类型情况见文章(java小知识):https://www.cnblogs.com/laurarararararara/articles/11166443.html
类型之间的转换关系:
char
↓
byte,short → int → long
↑ ↑
float→ double
占用字节数小的数据类型可以自动转换为占用字节数大的数据类型
相加测试实例:
2.引用类型: 数组、枚举、类、注解
基本类型对应的包装类型:
* byte => Byte
* short => Short
* int => Integer
* long => Long
* float => Float
* double => Double
* char => Character
* boolean => Boolean
简单类型与引用类型:
简单内存分析:
JDK => bin目录常见命令
* javac.exe: 编译java源代码的,生成java字节码文件(*.class)
* java.exe: 启动一个JVM,来运行指定的class字节码文件
* javap.exe: javap -c JavaType.class 反汇编java字节码 =》 java代码
关于如下代码的理解:
底层处理:调用了Integer的valueOf方法:
valueOf源码:-128-127之间的数值在常量池中
整个代码内存分析:
•问:栈内存何时创建和回收?定义该变量的时候被创建,出了函数的右括号,内存就被回收
堆内存何时创建和回收?new后就在堆里创建了该对象的内存地址,靠垃圾回收机制GC来回收
♥笔试题:如下4个语句,输出结果为false的是()
Integer i01=3;
int i02=3;
Integer i03=new Integer(3);
Integer i04=new Integer(3);
A System.out.println(i01==i02) //拆包true
B System.out.println(i01==i03) //new了一个新对象false
C System.out.println(i03==i04) //不同的对象
D System.out.println(i02==i04) //拆包true
该题相关知识:
1.关于装包与拆包:
2.底层处理:
3.实现:
总结装包拆包: