三 java的基本数据类型_JAVA基础(三)--JAVA基本数据类型

本文介绍了Java的基本数据类型,包括整型(int, short, long, byte)、浮点型(float, double)、布尔型(boolean)和字符型(char)。强调了不同数据类型在内存占用和取值范围上的区别,并指出Java中整数默认为int型,小数默认为double型。此外,还提及了数据类型的转换和它们在实际编程中的应用。
摘要由CSDN通过智能技术生成

前两篇已经将开发环境搭建完成,如果你已经按之前的教程按部就班的完成了部署,那么世界上最优秀的编程语言之一和世界上最优秀的IDE之一已经出现在你的电脑上(此处应有掌声),如果你还没入门,或者正在台阶上踱步,可能你还不能理解这个“最优秀”的含义,没有关系,这顿美味需要我们来细嚼慢咽才能品尝到它的独特之处。

接下来,就让我们一起来正式揭开Java的面纱。

Java是一门简单、面向对象、高性能、安全性高、健壮性强、移植性好的语言(一本正经的胡说八道中)。Java的语法跟C++很像,如果有过C++学习经验的人,学习Java上手会容易很多,Java一开始很多特性都跟C++相同,比如基本的程序结构、类、语法规则等等,但是删除了其中很多复杂的东西,比如头文件,结构,联合,操作符重载、虚基类等等,看到这里,学过C++的你可能会觉得很高兴,终于不用跟那些奇奇怪怪的东西打交道了。别高兴的太早,因为,还有让你更高兴的(手动滑稽),那最头疼的指针操作部分,也去掉了,可以说是一个纯净简化版的C++,但也添加了很多自己的特性,没有了多重继承,取而代之的是接口和内部类,由于不允许直接操作指针,所以就不会因为对指针的一顿瞎操作而出现神奇的bug,当然,也少了很多寻找bug的乐趣(尴尬),Java在安全性能上是可以信任的,因为永远不会存取一个坏的指针,而造成内存分配的错误,也不存在内存泄漏问题。所有那些因为指针引起的安全隐患,都不存在的。

也许说了这么多,对于新手的你,看的云里雾里,不知所云,没关系,你只需要知道,Java上手并不难,只比绕操场跑上十来圈难那么一点点,但如果你只是想来散散步的话,那你可能没有机会享受到汗流浃背后的满足感了。

言归正传,Java可以写桌面、可以写Android、可以写服务器、可以写企业级业务、可以写互联网业务。如果你以后想在安卓开发、服务器开发、网站后台开发和维护上有所发展,那Java将是你不错的选择。如果只是想来膜拜一下这门常年位居编程开发语言排行榜榜首的语言,那也可以来看看,俗话说的好,技多不压身嘛,以后见了不会编程的朋友,还可以装个X说我也是学过Java的人(憋笑)。

简单介绍了Java的功能后,能坚持看到这说明你已经有点小心动,想要继续学下去,那就跟我一起来进行系统的学习吧。

要学习Java,自然要从基本的数据类型说起,那么,什么是数据类型?顾名思义嘛,就是不同的数据有不同的类型,就像人按性别分男女,按年龄分老中少,按性情分攻受(咳咳,这里只是为了举个栗子),在java里,基本的数据类型有四种,整数型,浮点型,布尔型和字符型。下面来一一介绍。(Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。)

整型,自然就是用来存放整数的, 比如说:1,2,3,4,100,等等,一般的整数都可以用int型来存放和操作,整型还可以根据取值范围需求不同再细分成int型,short型,long型,byte型,这几个兄弟排个序,从大到小分别是long、int、short、byte。long型最大,占用8个字节(在java中,讨论最小的存储单元是bit,也就是位,byte是字节,跟位的换算是:1byte=8bit,1kb=1024bytes=2^10bytes),作为整型中的老大,占用8*8=64位,所以除去第一位用于储存符号位,其它63位可以用来表示数值大小,所以它的表示范围为:-2^63 — 2^63-1。大概是百亿亿的级别,所以要是用来存放你的银行卡余额的话,还是不要劳烦long型了(滑稽)。作为最常用的整数型老二,int型可谓是人尽皆知,几乎成了整型的代表人物,它只占用4个字节,取值范围为-2^31 — 2^31-1,比21亿稍微多一点。而老三short,顾名思义,比较“短”,不能跟18cm的long型相提并论,只占用2个字节,表示范围为-2^15 -- 2^15-1,也就是-32768 -- 32767,做小范围的加减乘除的话是够用的。最后介绍的老四,byte型,只占用一个字节,可谓是相当拮据,表示范围为 -128-127。所以存余额的话,byte,short型太短,long型太长,所以用int型最经济实惠。

详细说明 :

byte:

byte 数据类型是8位、有符号的,以二进制补码表示的整数;

最小值是 -128(-2^7);

最大值是 127(2^7-1);

默认值是 0;

byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

例子:byte a = 100,byte b = -50。

short:

short 数据类型是 16 位、有符号的以二进制补码表示的整数

最小值是 -32768(-2^15);

最大值是 32767(2^15 - 1);

Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

默认值是 0;

例子:short s = 1000,short r = -20000。

int:

int 数据类型是32位、有符号的以二进制补码表示的整数;

最小值是 -2,147,483,648(-2^31);

最大值是 2,147,483,647(2^31 - 1);

一般地整型变量默认为 int 类型;

默认值是 0 ;

例子:int a = 100000, int b = -200000。

long:

long 数据类型是 64 位、有符号的以二进制补码表示的整数;

最小值是 -9,223,372,036,854,775,808(-2^63);

最大值是 9,223,372,036,854,775,807(2^63 -1);

这种类型主要使用在需要比较大整数的系统上;

默认值是 0L;例子: long a = 100000L,Long b = -200000L。

"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

初学编程的人可能会问了,好好的整数型,还分那么细干嘛。这你就不懂了吧,举个栗子,因为用于存放数据的内存空间是以位为基本单位,可以理解为很多很多相同的小盒子,相同的数据类型需要用同样大小的空间,不然程序就不知道数据的开始和结束位置,用数据头部来存放大小长度信息显然有些浪费空间,那么现在的问题是,一个整数,用多大的空间合适?你可能会觉得,都用同样大小的空间不就好了,那都用8个字节来存储,用来存放大数值的时候很好用,但是用来存放你的年龄的时候,仿佛浪费的空间就有点多了,就好比现在你有一个篮球,一个网球,一个足球,一个乒乓球,都需要用同样大小的盒子来单独存放,那规格自然只能按最大的来算,当你往那个大盒子里放一个乒乓球的时候,不觉得很浪费空间吗。所以为了避免这样不必要的浪费,设计多种整数型是有必要的。当然,也没有必要对于内存太过斤斤计较,如果不是在搞算法研究,不是对时间跟空间效率要求很苛刻的条件下,基本上都用int型就好了。毕竟一般情况,运行效果比运行效率更重要。

接下来说浮点类型,为什么叫浮点类型,自然是用来表示浮点数的(废话),那什么是浮点数,这。说来又要有一段文章了。在计算机中,表示小数有两种方法,一种叫定点,一种叫浮点。

ccd490febcee5c9ecf011824d9b2c6c0.png

以32位程序为例,定点的意思是,小数点固定在 32 位中的某个位置,前面的是整数,后面的是小数。小数点具体固定在哪里,可以自己在程序中指定。例如上面的例子,小数点在 23 bit 处。无论你是124.25,是0.5, 还是100, 小数点都在 23 bit 的位置固定不变。

0219805fbaef8cbfde2038167fbab5ce.png

浮点数是相对定点数而言的,浮点数的表示方法为:

a9a08598aba4ef76eae79936a936a16c.png最高的 1 位是符号位 s,接着的 8 位是指数E,剩下的 23 位为有效数字 M。例如:

5 DEC = 101 BIN = 1.01 x 2^2

100 DEC = ‭01100100‬ BIN = 1.100100 x 2^6

0.125 DEC = 0.001 BIN = 1 x 2^-3

现在,小数点的位置就漂浮不定了。如果想了解关于浮点数的存储问题,可以看看这篇文章,https://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html

,当然,新手的话建议先别看了,免得被吓跑了,你只需要知道,浮点型就是用来存取带小数点的数就可以了。

浮点数也分成两个类型,float和double,float占用四个字节,取值范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double占用八个字节,取值范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

你如果对于这两个类型傻傻分不清楚,那就只用double类型就好了,java里最常用的浮点类型就是double类型。

float:

float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;

float 在储存大型浮点数组的时候可节省内存空间;

默认值是 0.0f;

浮点数不能用来表示精确的值,如货币;

例子:float f1 = 234.5f。

double:

double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;

浮点数的默认类型为double类型;

double类型同样不能表示精确的值,如货币;

默认值是 0.0d;

例子:double d1 = 123.4。

扯的有点多了,布尔型都等不及了,别担心,布尔型(boolean)是最简单的,只有真(true)跟假(false)两种状态。

最后就是字符型(char),用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1。

好了,基本数据类型就介绍这么多了,总的来说,整型用来存放整数,浮点型用来存放小数,布尔型用来存放真假,主要用于逻辑判断,字符型用来存放单个字符,比如:'a','b','c'等等。Java中整数默认为int型,小数默认为double型。

boolean:

boolean数据类型表示一位的信息;

只有两个取值:true 和 false;

这种类型只作为一种标志来记录 true/false 情况;

默认值是 false;

例子:boolean one = true。

char:

char类型是一个单一的 16 位 Unicode 字符;

最小值是 \u0000(即为0);

最大值是 \uffff(即为65,535);

char 数据类型可以储存任何字符;

例子:char letter = 'A';。

最后再说一点,不同数据类型之间也是可以相互转换的。Java中也是有着弱肉强食的规则,谁占地多谁就大,一个整数型int跟一个浮点型double一起运算时,会自动转化为double型,这样就能无精度损失的进行数值运算了。下面是数据类型之间的合法转换:

cea6d64b008016e68b0c042dc7230a4d.png

那我非要进行“非法转换”怎么办,一个占用8字节的double型非要转换成占用4字节的int型该怎么办,那就只能用强制类型转换了,但这样可能会造成精度的丢失。具体情况暂时不多做介绍了,不然又要说半天才能说的完了。

好了,今天的内容到此结束,基本数据类型都看了个遍,如果还是有些不明白,也没有关系,一回生二回熟嘛。来日方长,日后再说吧。(溜了溜了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值