java 基本类型内存_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

类型之间的转换关系:

char

byte,short → int → long

↑          ↑

float→ double

占用字节数小的数据类型可以自动转换为占用字节数大的数据类型

a099634ce26167fae9069777bf141aeb.png

相加测试实例:

6301522688fa89bb1cfb498258936141.png

2.引用类型:  数组、枚举、类、注解

基本类型对应的包装类型:

*  byte => Byte

*  short => Short

*  int => Integer

*  long => Long

*  float => Float

*  double => Double

*  char => Character

*  boolean => Boolean

简单类型与引用类型:

7b6f33d1b498840a4b932d3661929b59.png

简单内存分析:

c5af6ac82a21319ab56aa96169fd55ab.png

JDK => bin目录常见命令

* javac.exe: 编译java源代码的,生成java字节码文件(*.class)

* java.exe:   启动一个JVM,来运行指定的class字节码文件

* javap.exe: javap -c JavaType.class         反汇编java字节码 =》 java代码

关于如下代码的理解:

734a2c30946a709e77dfbb9d788a8884.png

底层处理:调用了Integer的valueOf方法:

27b885b037b16945dc0e36f03fe556cc.png

valueOf源码:-128-127之间的数值在常量池中

e89970e10101d9eed83b3d7136a90bd4.png

整个代码内存分析:

1339e4f58160b48b1688dacaa325448c.png

•问:栈内存何时创建和回收?定义该变量的时候被创建,出了函数的右括号,内存就被回收

堆内存何时创建和回收?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.关于装包与拆包:

5ea06982664752bcf248058395d68d8e.png

2.底层处理:

6c5dde31e530fb36a7ae0b76fb516f3c.png

3.实现:

924a6a86d3c3a924ae3fe89707e5d33a.png

总结装包拆包:

728ac7b0964faf3235dcbe1f0518a67c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值