引言
♀ 小AD:明哥,昨天气死我了,明哥要帮我出气。
♂ 明世隐:咋了,有谁惹到你了。
♀ 小AD:昨天辅助喷我小鲁班菜,我反手就对喷,然后竟然丢脸了!
♂ 明世隐:这个我是不信的,论喷的功力,你貌似不在明哥之下,没那么容易就败北的。
♀ 小AD:明明就丢脸了吗
♂ 明世隐:你这一喷20年的功力,这些小学生顶得住?
♀ 小AD:哼。。那我不说了!
♂ 明世隐:好了好了,说说看。
♀ 小AD:是小学生喷不过我,但是找我solo,我竟然没打过,脸丢大了。
♂ 明世隐:我就说,在喷上应该没问题,怎么就solo不过了,不太应该啊。
♀ 小AD:我觉得就奇怪哈,都选的小鲁班,都学了1技能,装备也一样,就是打不过。
♂ 明世隐:你是不是没有配置铭文。
♀ 小AD:啥是铭文?
♂ 明世隐:挖槽,你这都怎么过来的,怎么上的黄金,铭文都没有啊,我的老天!
♀ 小AD:呜呜。。,那怎么弄?明哥教我
♂ 明世隐:好的
♀ 小AD:但是呢?
♂ 明世隐:对真乖!先把今天的Java学习了。
♀ 小AD:没问题,我一定好好学!
♂ 明世隐:今天学数据类型,学完你就会配置铭文了。到时候再找他solo,肯定赢!
♀ 小AD:好嘞!
两个基本概念
1.bit (位):位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为“0”或“1”。
2.byte (字节):字节是计算机存储容量的基本单位,一个字节由8位二进制数组成。
1byte=8bit
1KB=1024byte
1MB=1024KB
1GB=1024MB
♂ 明世隐:这个应该很好理解吧!
♀ 小AD:这个好像跟内存有点像的
♂ 明世隐:它就是,比如王者中金币计算单位是1个金币,一把铁剑多少钱?
♀ 小AD:250
♂ 明世隐:挖槽,你可真是个250,我话都还没说完,那你6把铁剑呢?
♀ 小AD:1500啊
♂ 明世隐:那攻击力加了多少
♀ 小AD:120
♂ 明世隐:算的蛮快,这跟1024是不是很像,就是个比例关系。
♀ 小AD:嗯,这个挺好理解,之前对内存这种关系也有了解,喷我的小学生搞不好都懂。
♂ 明世隐:你看这瞬间6神装了,不起飞?
♀ 小AD:嗯,早期肯定起飞!
说明
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。
数据类型分类
1.基本数据类型
2.引用数据类型
基本数据类型
基本数据类型分成4个小类型
1.整数型
2.浮点型
3.字符型
4.布尔型
整数型
类型 | 占用存储空间 | 范围 |
---|---|---|
byte | 1字节 | -128~127 |
short | 2字节 | -215~215-1 |
int | 4字节 | -231~231-1 |
long | 8字节 | -264~264-1 |
举个例子
public static void main(String[] args) {
byte a = 100;
System.out.println(a);
}
♀ 小AD:哥,你这个byte a = 100;,啥意思,看不是太懂。
♂ 明世隐:这个是Java中定义一个变量的写法。
♀ 小AD:之前你没说过
♂ 明世隐:这个简单讲一下,下次再具体讲变量,byte表示类型,a表示变量名,= 就是直接赋值,8就是之前讲的字面量,也就是数据。
♀ 小AD:然后呢?
♂ 明世隐:就是说我定义了一个byte类型的变量a,并且给它设置了值,值为8。
♀ 小AD:好像明白,又好像不是太明白
♂ 明世隐:就比如说,有个装备叫铁剑,它的价格是250
♀ 小AD:那我明白了
♂ 明世隐:哦。。。有点扯,我不信
♀ 小AD:类型就是“攻击装备”,名称就是“铁剑的价格”,字面量就是 250。
♂ 明世隐:挖槽,你惊到我了,你果然是个游戏的小天才,我特么的服了,一说道游戏你就灵性起来了?
♀ 小AD:明哥指导的好!
♂ 明世隐:我可不敢当!
上述代码运行
如果修改代码
128不在范围 -128~127 内,超出了这个范围,所以会编译报错。
short、int、long也是类似了,其中 int 是最常用的。
浮点型
类型 | 占用存储空间 | 范围 |
---|---|---|
float | 4字节 | -231~231-1 |
double | 8字节 | -263~263-1 |
字符型
类型 | 占用存储空间 | 范围 |
---|---|---|
char | 2字节 | 0~65535 |
布尔型
类型 | 占用存储空间 | 范围 |
---|---|---|
boolean | 1bit | true,false |
♀ 小AD:明哥,你说了那么多范围,我也记不住啊,这样记我不会呀
♂ 明世隐:你不需要记,我给你举个例子,就教一下你怎么配置铭文
♀ 小AD:好呀
♂ 明世隐:首先我问你,射手主要什么输出
♀ 小AD:平A物理系
♂ 明世隐:对,那攻速和暴击对射手来说比较重要吧
♀ 小AD:所以铭文也是要配置这个?
♂ 明世隐:攻速是肯定要的,所以推荐优先配置攻速、攻击、吸血、移速、暴击等铭文!大概就是红色无双、祸源,蓝色狩猎、夺萃,绿色鹰眼,具体怎么配,就不用我说了吧,自己学去。
♀ 小AD:那就是大概记住常用的,对应好英雄的属性就行了吧
♂ 明世隐:就是这个意思
♀ 小AD:那在Java中也要对应好类型呗。
♂ 明世隐:是的Java是强类型语言,如果类型指定的不对,报错的。
♀ 小AD:可是我记不住的
♂ 明世隐:不需要记住,首先常用的就是 int 和boolean,然后他们的类型你设置的错误,工具会提示你的。
♀ 小AD:哦
♂ 明世隐:不需要去记,你使用过几次就熟悉了,这就和你出装备一样的,小鲁班你出装备熟悉吧。
♀ 小AD:电刀、无尽、泣血等
♂ 明世隐:是的,用几次就明白了,举两个例子。
♀ 小AD:好的
例子1:
这boolean型的你设置100就肯定报错了。
这样就没毛病了。
例子2:
看报错信息就知道是类型不对。
引用数据类型
1.引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时候被指定为一个特定的类型,声明之后不能改变。
2.引用数据类型包括:类(对象)、接口、数组。
3.所有引用类型默认值都是null。
4.一个引用变量可以用于引用任何与之兼容的类型。
两者的区别
1.从概念方面说 :
类型 | 区别 |
---|---|
基本数据类型 | 变量名指向具体的数值。 |
引用类型 | 变量名不是指向具体的数值, 是指向存数据的内存地址。 |
2.从内存方面来说:
类型 | 区别 |
---|---|
基本数据类型 | 被创建时,在栈内存中会被划分出一定的内存,并将 数值存储在该内存中。 |
引用数据类型 | 被创建时,首先会在栈内存中分配一块空间,然后 在堆内存中也会分配一块具体的空间用来存储数据 的具体信息,即hash值,然后由栈中引用指向堆中 的对象地址。 |
♀ 小AD:明哥,你说半天我没听懂
♂ 明世隐:那我问你,你在你家里面,你可以使用你的家,是不是?
♀ 小AD:那当然,我家我做主
♂ 明世隐:那你就类似基本引用类型,这家的区域就是给你划定的内存区域。
♀ 小AD:这样啊
♂ 明世隐:我如果有你家里的钥匙,我开门进去,我也可以使用你家的空间是不是,那我就是引用类型,就是说我不是直接拥有你家的使用权,我是有了你家的钥匙,我也就有了使用权,这样好理解吧?
♀ 小AD:好像有点明白了,不过你为啥会有我家的钥匙,你要干嘛明哥?不会吧不会吧,你不会有什么邪恶的想法吧。
♂ 明世隐:滚一边去,我就举个例子,你别做梦了。
♀ 小AD:那明哥,我有你的游戏账号、密码,这么说也可以看做是引用类型吧。
♂ 明世隐:差不多这个意思,就是说我手上拿着的账号密码,就类似引用类型指向内存地址。
♀ 小AD:那我把你铭文给融了。
♂ 明世隐:活腻歪了?
♀ 小AD:不皮了,我先去装一下铭文,再去找小朋友solo。
♂ 明世隐:再输别说你认识我
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!