菜鸟学JAVA之——基本数据类型

JAVA数据类型的四类八种

先说一下变量声明的格式:类型 标识符 赋值符号 常量值(eg:int a = 3)
注意:
java语言中局部变量未赋初值之前不允许使用(局部变量是在方法块里的,方法块是在内存方法区里的,方法区的内存是跟着方法一起开辟的,如果不赋初值则它不会占内存,所以不能用)如果局部变量未赋初值使用,则编辑时会报错,但全局(成员)变量未赋值之前可以使用,默认为0
局部变量必须在声明后使用,而成员变量可声明在任何位置

一、整型

  1. byte ,占一个字节,取值范围是:-128~127
  2. short,占两个字节,取值范围是:-32768~32767
  3. int,占四个字节,取值范围是:-231 ~231 -1
  4. long,占八个字节,取值范围是:-263~263 -1

举几个栗子:

byte b = ‘c’;    //正确,ASCII表中一个字符代表一个数字,这就相当于放的是c在ASCII中对应的数字,这样的写法只对byte类型生效,其他类型就不行。

为什么long型数字后面要加个L?(long a = 123L;)
注意:所有的数字赋值之前默认是int型。

short a= 123;        //short占两字节,它的最大值不会超过int的最大值。
short b = 35536      //但如果此处赋的值大于short的最大值,会报错(这个报错是在将35536放入b时报错)。(往int里可以放下,但往short里放不下)
long c1 = 6;     //此时不会报错,因为6未超过int的最大值,肯定也不会超过long的最值
long c2 = 6666666666666//这里赋的值显然已经超过了int的最大值,所以它在未赋值之前就已经报错了。(往int里放已经就放不下了)
long c3 = 6666666666666L;   //此时就正确了。

①long d1 = 1;② long d2 = 1L; ②比①编译的快,因为②直接把1放到了long型里,而①还要转换一次。

b++、b += 1、b = b+1的区别:

++、+=不会改变变量本身的数据类型

byte b = 127;
b = b+1;              //编译不通过超出范围,会有损失
byte b = 127;
b++;/b+=1;          //编译能通过,结果b未=为-128

底层解释:

  • b = b+1;
    在这里插入图片描述
    此时b+1变为了int型,再把int型的b赋回给btye型是不可能的

  • b++/b += 1;
    在这里插入图片描述
    在此内存上+1,内存不变,为1000 0000为-128

注意:
=+是赋值号;+=/++是一个运算符,不换内存,在原内存上自增,溢出,符号位变为1。

应用层解释:
在这里插入图片描述

二、浮点型

  1. float(占四个字节)
  2. double(占八个字节)
  • float a = 4.3f; 因为这里默认把赋的值当成double型,所以要加F/f
    (但float a = 4; 不会报错)

注意:

System.out.println(3/0);//报错
System.out.println(3.0/0.0);//输出:Infinity   表示无限的,因为这里的0.0并不表示0,而可能是0.000000000001

三、字符型

char(占两个字节):具体占用的字节数跟编码方式有关,Unicode占4个字节,utf-8占3个字节。

char a1 = 'a';  //任意一个字符需要加单引号
char a2 = '我';
char a3 = 111; //整数 范围是0~65535,十进制、八进制、十六进制都可以。输出为字符编码表中对应的字符
char c = 'a'+'b';   //char类型相加,转为int型,输出字符编码表中对应的字符
char c = 'a' + 1;  //转为int型,输出b(98) 
char m = '中'+'国';   //输出42282
int a = '中'+'国'+'国'+'国';   //输出86820
char s = '中'+"国"   //报错,String型不能转换为char型

四、布尔型

boolean(占4个字节(变字节量)):java使用c语言写的,c语言里没有boolean型,用大于0或者小于0来表示真假,所以是int型,占4个字节。但在做Boolean类型的数组时会做数据压缩,所以boolean型数组的false或frue占1字节。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值