CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

Java的基本数据类型有哪些?-免费源码丞旭猿

emmmm,还是试着回答一下。

在回答Java数据类型之前,我先想到的是一个问题。

为什么在编程语言中需要数据类型呢?

我记得,在我最早接触编程语言的时候,全是背,对于写代码什么的,完全没有什么概念。

对于数据结构啊什么的,也是一脸的蒙蔽。

数组?这鬼东西干嘛用的。

链表。。噢噢,可是,我为什么要知道什么是链表?

写代码难道不就是写IF-Else For循环吗?

到面向对象的时候更是不懂。

对象?真实世界和虚拟世界的映射?

不是很懂。。。

后来到了自己勉强写代码的时候,慢慢有了一点点感受。

但是从二进制到编码到数据类型到数据结构到对象到方法到服务到系统还是没有串起来。

我们看到的是一个很大的系统,可是这个系统倒底是怎么构成的呢?

数据类型又是什么东西,为嘛不同的语言还会有不同的数据类型呢?

来看一下这个图。

从二进制开始,1和0变成了字符,有了字符,就可以用来表示各种数据类型,有了数据类型,再抽像一步就是数据结构,各种各样的数据结构又组成了对象,对象可以在方法里被调用,不同的方法成为了服务中的一部分,各个服务构成了一个模块,不同的子模块变成了一个系统。

所以数据类型是什么呢?它其实是编程世界里最基本的单元。

构建一个新世界,总是要有最基本的单元,然后再由这些基本上的单元,去构建更复杂的结构。

那么,回过头来看我们的问题,什么是基本的数据类型?

金木水火土算不算?

阴阳算不算?

十二星系算不算?

不同的语言本身就提供了不同的哲学论,在不同的语言设计者眼里,世界的构成是完全不同的。

而在Java的世界里,他们认为,Java应该由下面三大类基本数据类型构成。

  • 数字
  • 字符
  • 布尔

数字,字符和布尔是Java的设计者认为构建世界的核心元素。简单来讲,Java世界的所有系统,都是这三种类型的基本单元组合和创建而成。

其他语言的世界观是怎么样的?

JS

js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。

C

C99标准提供的7种基本数据类型及其对应的关键字如表所示。字符型 char ,无值类型 void整型 int,逻辑型 _bool,浮点(单精度)型 float, 复数型 _complex_imaginary, 双精度型double

Python

Python如果区分基本数据类型,应该还是Number和String

Python3 中有六个标准的数据类型:Number(数字),String(字符串),List(列表),Tuple(元组),Set(集合),Dictionary(字典)

PHP

包括4种标量数据类型,即boolean(布尔类型)integer(整型),float/double(浮点型)和string(字符串型)

Go

Go语言的数据类型主要分为四种:基础类型(数字,字符串,布尔类型),复合类型(数组,结构体),引用类型(指针,切片,字典,函数和通道),接口类型

对比这么多编程语言,你会发现,大部分语言都会有数字和字符两种类型,然后再有一个Boolean的布尔类型。

在构建一个编程世界中,分成【数字】【字符】是有意义的,我们猜测【数字】是用来做计算的最关键因素,无论是日期,还是金额,都需要有【数字】,这是必不可少的运算基础。

【字符】则是因为我们还是处在文字世界,文字是我们用来传递信息最关键的信息,文字很少能用来计算,但经常会被用做查找,匹配,截断等。

所以,学好数学和语文倒底有多重要你们知道了吗?

【布尔】是一个很有意思的类型,他只有【真】【假】,真和假重要么?通常我们可以用数字或者是字符的判断来充当真和假,而且很多时候并不是真和假,而是大于,等于,或者是小于。

为什么只有【布尔】被一些语言拿出来做一个独立的类型呢?

猜测跟编译原理相关的知识点有关系,可能是为了方便,也可能【布尔】的判断比【数字】和【字符】的判断效率更高,也希望其他人可以在评论中补充。

既然到了这里,我们知道了整个编程世界都可以用数学和语文,呃,数字和字符来表示,那么数字为什么还要再细分成不同的类型呢?

short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0Lfloat浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0

短,整,长整,对应星巴克的中杯,大杯,超大杯(罗老师疯狂打脸中)。

把一个整数,分成这三种类型有毛的意义呢?

是不是有病?

还是有一些特殊的原因在里面?

三者之间的差别,就在于在内存中占据的字节数不一样。字节数代表什么呢?

代表着空间,字节数越大,就表示占据的空间越大。

可以用亚马逊包装箱来解释。中箱,大箱,超大箱分别三种款式,如果说我不区分这三种,只有一种箱子,为了包证能够把所有的数据都装进去,我一定是统一做一个超大箱。

这样会带来什么结果?

占据的仓库会变大,物流会增加,交付时间会拖长。

这就是统一数据类型的坏处。

所以,Java的构建者决定用短,整,长三种方式来构建整型,并交给Java程序员去自由决定,你应该用哪几种数据类型。

一般而言,int和long是使用最广泛的。int 通常用来表示状态,记录数量。long通常用来描述时间和构建主键ID。

float和doule用来描述一些整形不可描述的场面。但是我们往往不会使用这两种,特别是在金融应用中,常用BigDecimal来代替Float和Double.

这就是Java的基本数据类型~~

也是Java世界的价值观,现在,如果让你来构建一个新语言,你会选择哪几种基本的数据类型呢?

emmmm,我想我会把文字去掉,设计一个根本就没有文字的世界出来。


IT修真院一直在尝试着将一些问题讲的简单透彻,并给出思考的角度。最近这小半年已经贡献了不少这种答案,先从基础的一些概念入手,慢慢再引入相对高级的知识。更是希望将一些好的思维方式,和坏的学习习惯总结出来。很多人都在问我零基础怎么学习,其实学习的关键点,并不是只在于自己是否是零基础,更重要的是,你是否有一个高效的学习方法?如果你喜欢听这样的分析,喜欢尝试这种学习方法。欢迎关注~虽然我是暗灭大人的小分身,可是很少用这个账号怼人的呦~

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容