Java的数据类型

文章详细介绍了Java中的数据类型,包括基本数据类型中的数值型(byte,short,int,long,float,double)、字符型(char)和布尔型(boolean),以及引用数据类型(类,接口,数组)。还讨论了自动类型提升的概念,在不同数据类型运算时的规则。
摘要由CSDN通过智能技术生成

Java的数据类型分为两种,一种叫基本数据类型,一种叫引用数据类型

基本数据类型

基本数据类型有八种,接下来简单介绍一下(依次按照它在Java中存储的大小排列)

数值型

数值型又分为整数和小数,整数有

byte,short,int,long

1字节 = 8 bit(比特)

通过其占用的字节数量我们可以算出某某类型的最大存储空间

据我所知byte应该算是Java中基本数据类型里占有字节数最少的吧,byte占1字节,字如其名

short占用2字节,也叫short int,但一般会省略int

int 占用4字节,long占用8字节,当然以上的情况基本上是基于64位系统来说的

因为现在大部分电脑是64位系统的,32位就该另当别论了

public class Main {
    public static void main(String[] args) {
       byte x = 127;
       short z = 123;
       int y = 127;
       long n = 123;
    }
}
字符型

char

char字符类型,占用两字节

里面一般单独的存放一个字符

public class Main {
    public static void main(String[] args) {
       char x = 'a';
        System.out.println(x);
        char y = "a";   // 这是一种错误的写法,这涉及到了引用类型中的类String
        char z = 'sad'; // 这也是一种错误的写法,多个字符
        char n = '\n';  // 这也是多个字符,为什么它就行呢?
        /*
        这涉及到了转义字符,像上面的\n就表示了换行,转义字符只算一个字符
         */
}}
小数类型

float,double

float占用4字节,double占用8字节,如果你遇到一个浮点数和整数相加,它会变成浮点数。

public class Main {
    public static void main(String[] args) {
       float x = 1.0;   // 错误写法,float定义需要在后面加上f
       float t = 1.0f;  // 正确写法
       double z = 1.0;  //Java中的默认小数类型就是double,所以它无需f
    }
}
布尔类型

boolean

boolean有true和false

true翻译一下其实就相当于正确的意思

false翻译一下其实就相当于错误的意思

在代码中其实也就这个意思,它是可以进行一个逻辑判断,比如:

public class Main {
    public static void main(String[] args) {
       boolean x = false;
       boolean y = true;
       if (y){
           System.out.println("正确的");
       }    // 这段代码如果翻译成中文来讲,如果正确的,就是输出一个正确的,否则输出一个错误的
       else System.out.println("错误的");
    }
}
引用数据类型

引用数据类型就大体上归结起来就三种,类,接口,数组

这三种在后面再说,知道就行

自动类型提升

关于自动类型提升,其实就是如果在两个不同类型之间做运算,得到的结果会是字节多的那个,因为字节数量多代表的存储容量大,这样运算得到的结果不容易溢出。

举个例子:

public class Main {
    public static void main(String[] args) {
       int x = 1;
       double y = 23.2;
        System.out.println(y+x);
}}

这样算出的结果是24.2,因为double占用的字节是大于int的所有对其做了一个自动类型提升,再例如

public class Main {
    public static void main(String[] args) {
       char x = 'a';
       int a = 1;
        System.out.println(x + a);
}}

这样算出的结果是98,因为字符在电脑中存储的是二进制,转换成十进制就是97,然后再和int类型相加一下就是98。

但是需要注意:short,char,byte不能互相进行运算

public class Main {
    public static void main(String[] args) {
       short x = 1;
       char y = 'a';
       short z = x + y;
       char n = x + y;
}}

上面这段代码,是错误的。

但是如果将里面赋值的类型改成int,就是正确的了,我也不太明白原理,反正就是一个注意吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值