一篇文章带你入门Java数据类型

作者:编程界明世隐 时间:2022-06-10 09:25:44 

引言

♀ 小AD:明哥,昨天气死我了,明哥要帮我出气。
♂ 明世隐:咋了,有谁惹到你了。
♀ 小AD:昨天辅助喷我小鲁班菜,我反手就对喷,然后竟然丢脸了!
♂ 明世隐:这个我是不信的,论喷的功力,你貌似不在明哥之下,没那么容易就败北的。
♀ 小AD:明明就丢脸了吗
♂ 明世隐:你这一喷20年的功力,这些小学生顶得住?
♀ 小AD:哼。。那我不说了!
♂ 明世隐:好了好了,说说看。
♀ 小AD:是小学生喷不过我,但是找我solo,我竟然没打过,脸丢大了。
♂ 明世隐:我就说,在喷上应该没问题,怎么就solo不过了,不太应该啊。
♀ 小AD:我觉得就奇怪哈,都选的小鲁班,都学了1技能,装备也一样,就是打不过。
♂ 明世隐:你是不是没有配置铭文。
♀ 小AD:啥是铭文?
♂ 明世隐:挖槽,你这都怎么过来的,怎么上的黄金,铭文都没有啊,我的老天!
♀ 小AD:呜呜。。,那怎么弄?明哥教我
♂ 明世隐:好的
♀ 小AD:但是呢?
♂ 明世隐:对真乖!先把今天的Java学习了。
♀ 小AD:没问题,我一定好好学!
♂ 明世隐:今天学数据类型,学完你就会配置铭文了。到时候再找他solo,肯定赢!
♀ 小AD:好嘞!
一篇文章带你入门Java数据类型

两个基本概念

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:嗯,早期肯定起飞!

说明

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

一篇文章带你入门Java数据类型

数据类型分类

1.基本数据类型

2.引用数据类型

基本数据类型

基本数据类型分成4个小类型

1.整数型
2.浮点型
3.字符型
4.布尔型

整数型

类型占用存储空间范围
byte1字节-128~127
short2字节-215~215-1
int4字节-231~231-1
long8字节-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:明哥指导的好!
♂ 明世隐:我可不敢当!

上述代码运行

一篇文章带你入门Java数据类型

如果修改代码

一篇文章带你入门Java数据类型

128不在范围 -128~127 内,超出了这个范围,所以会编译报错。

short、int、long也是类似了,其中 int 是最常用的。

浮点型

类型占用存储空间范围
float4字节-231~231-1
double8字节-263~263-1

字符型

类型占用存储空间范围
char2字节0~65535

布尔型

类型占用存储空间范围
boolean1bittrue,false

♀ 小AD:明哥,你说了那么多范围,我也记不住啊,这样记我不会呀
♂ 明世隐:你不需要记,我给你举个例子,就教一下你怎么配置铭文
♀ 小AD:好呀
♂ 明世隐:首先我问你,射手主要什么输出
♀ 小AD:平A物理系
♂ 明世隐:对,那攻速和暴击对射手来说比较重要吧
♀ 小AD:所以铭文也是要配置这个?
♂ 明世隐:攻速是肯定要的,所以推荐优先配置攻速、攻击、吸血、移速、暴击等铭文!大概就是红色无双、祸源,蓝色狩猎、夺萃,绿色鹰眼,具体怎么配,就不用我说了吧,自己学去。
一篇文章带你入门Java数据类型
♀ 小AD:那就是大概记住常用的,对应好英雄的属性就行了吧
♂ 明世隐:就是这个意思
♀ 小AD:那在Java中也要对应好类型呗。
♂ 明世隐:是的Java是强类型语言,如果类型指定的不对,报错的。
♀ 小AD:可是我记不住的
♂ 明世隐:不需要记住,首先常用的就是 int 和boolean,然后他们的类型你设置的错误,工具会提示你的。
♀ 小AD:哦
♂ 明世隐:不需要去记,你使用过几次就熟悉了,这就和你出装备一样的,小鲁班你出装备熟悉吧。
♀ 小AD:电刀、无尽、泣血等
♂ 明世隐:是的,用几次就明白了,举两个例子。
♀ 小AD:好的

例子1:

一篇文章带你入门Java数据类型

这boolean型的你设置100就肯定报错了。

一篇文章带你入门Java数据类型

这样就没毛病了。

例子2:

一篇文章带你入门Java数据类型

看报错信息就知道是类型不对。

引用数据类型

1.引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时候被指定为一个特定的类型,声明之后不能改变。

2.引用数据类型包括:类(对象)、接口、数组。

3.所有引用类型默认值都是null。

4.一个引用变量可以用于引用任何与之兼容的类型。

两者的区别

1.从概念方面说 :

类型区别
基本数据类型变量名指向具体的数值。
引用类型变量名不是指向具体的数值,
           是指向存数据的内存地址。

2.从内存方面来说:

类型区别
基本数据类型被创建时,在栈内存中会被划分出一定的内存,并将
           数值存储在该内存中。
引用数据类型被创建时,首先会在栈内存中分配一块空间,然后
           在堆内存中也会分配一块具体的空间用来存储数据
           的具体信息,即hash值,然后由栈中引用指向堆中
           的对象地址。

♀ 小AD:明哥,你说半天我没听懂
♂ 明世隐:那我问你,你在你家里面,你可以使用你的家,是不是?
♀ 小AD:那当然,我家我做主
♂ 明世隐:那你就类似基本引用类型,这家的区域就是给你划定的内存区域。
♀ 小AD:这样啊
♂ 明世隐:我如果有你家里的钥匙,我开门进去,我也可以使用你家的空间是不是,那我就是引用类型,就是说我不是直接拥有你家的使用权,我是有了你家的钥匙,我也就有了使用权,这样好理解吧?
♀ 小AD:好像有点明白了,不过你为啥会有我家的钥匙,你要干嘛明哥?不会吧不会吧,你不会有什么 * 的想法吧。
♂ 明世隐:滚一边去,我就举个例子,你别做梦了。
♀ 小AD:那明哥,我有你的游戏账号、密码,这么说也可以看做是引用类型吧。
♂ 明世隐:差不多这个意思,就是说我手上拿着的账号密码,就类似引用类型指向内存地址。
♀ 小AD:那我把你铭文给融了。
♂ 明世隐:活腻歪了?
♀ 小AD:不皮了,我先去装一下铭文,再去找小朋友solo。
♂ 明世隐:再输别说你认识我
一篇文章带你入门Java数据类型

来源:https://blog.csdn.net/dkm123456/article/details/118675819

标签:Java,数据类型,入门
0
投稿

猜你喜欢

  • SpringBoot项目中新增脱敏功能的实例代码

    2023-11-24 01:32:14
  • opencv实现轮廓高斯滤波平滑

    2023-07-23 02:05:56
  • JAVA如何按字节截取字符串

    2023-11-25 13:31:41
  • SpringBoot配置Email发送功能实例

    2022-03-07 20:52:20
  • Java 线程的优先级(setPriority)案例详解

    2023-11-12 23:46:39
  • C++ Boost MPI接口详细讲解

    2023-11-02 13:35:36
  • Java深入学习图形用户界面GUI之事件处理

    2023-11-29 14:14:57
  • Java根据ip地址获取归属地实例详解

    2023-11-25 06:24:38
  • 关于@Autowired注入依赖失败的问题及解决

    2023-11-29 00:50:42
  • Unity实现场景漫游相机

    2023-06-15 19:08:57
  • Struts2学习笔记(5)-参数传递方法

    2023-08-30 13:03:21
  • springboot大文件上传、分片上传、断点续传、秒传的实现

    2023-06-16 02:18:30
  • 详解Spring boot/Spring 统一错误处理方案的使用

    2023-11-24 12:56:07
  • 在启动后台 jar包时,使用指定的 application.yml操作

    2023-01-08 20:10:12
  • 通过Java实现在Word中创建可填充表单

    2023-08-05 21:11:40
  • 浅谈基于SpringBoot实现一个简单的权限控制注解

    2022-01-23 16:42:47
  • Spring Boot+Drools规则引擎整合详解

    2023-11-28 20:33:00
  • JAVA递归生成树形菜单的实现过程

    2023-07-15 08:57:22
  • java基础--自己动手实现一个LRU

    2023-06-25 18:21:04
  • 基于Tomcat7、Java、WebSocket的服务器推送聊天室实例

    2023-11-25 23:35:34
  • asp之家 软件编程 m.aspxhome.com