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

矫情吗;* 2023-06-12 06:25 183阅读 0赞

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

举几个栗子:

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

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

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

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

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

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

  1. byte b = 127;
  2. b = b+1; //编译不通过超出范围,会有损失
  3. byte b = 127;
  4. 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; 不会报错)

注意:

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

三、字符型

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

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

四、布尔型

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

发表评论

表情:
评论列表 (有 0 条评论,183人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java 基本数据类型

    Java 的两大数据类型 内置数据类型 引用数据类型 内置数据类型 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布

    相关 JAVA——内部类

    内部类 内部类:定义在一个类里面的类。一般的内部类包括:成员内部类、局部内部类、匿名内部类和静态内部类 ,下面我们说一下成员内部类和静态内部类 一、成员内部类 成

    相关 JAVA——继承

    继承 Java中, 类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。 继承关键字:extends意为扩展,继承就是子类对父

    相关 JAVA——前言

    一、硬件 一个电脑的核心是CPU,CPU看上去很大,其实只有很小的一片才是CPU,其他都是散热片。 主板:主板上有一个能承载CPU的管脚孔,每个管脚孔里有两个