栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java数据类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java数据类型

Java数据类型

Java的数据类型分为两大类

  • 基本类型(primitive type)
  • 引用类型(reference type)
基本类型
  1. 数值类型

    • 整数类型

      • byte:1个字节(-128~127)2^7
      • short:2个字节(-32768~32767)2^15
      • int:4个字节(-2147483648~2147483647)2^31 21亿
      • long :8个字节(-9223372036854775808~9223372036854775807)2^63
    • 浮点类型

      • float :4个字节
      • double :8个字节
    • 字符类型

      • char:2个字节
  2. boolean类型

​ 1个位bit(只有true和false两个值)

//整数
	byte num1=10;
	short num2=20;
	int num3=30;
	long num4=30L;//long类型要在数字后加个 L
    
//小数(浮点数)
    float num5=50.1F;//float类型要在数字后面加个F
	double num6=3.141592653589793238462643
        
//字符
    char name='中';
//字符串:String不是关键字,是一个类
	String name="Hello World"
        
//布尔值:
    boolean flag=true;

基础:

  • 位(bit):计算机内部数据存储的最小单位,如11001100:每一个二进制数字(0或1)占1位
  • 字节(byte):计算机中数据处理的基本单位,习惯上用大写B来表示
    • 1B(byte,字节)=8 bit(位)
  • 字符:是指计算机中使用的字母、数字、和符号

1 bit表示1位

1 byte表示一个字节 1B=8b

1024B=1KB

1024KB=1M

1024M=1G

拓展:

 
        //整数拓展: 二进制0b	八进制0	十六进制0x	十进制
        int i=10;
		int i=0b10;
        int i2=010;	//八进制0
        int i3=0x10;//十六进制0x

        System.out.println(i);//10
		System.out.println(i1);//2
        System.out.println(i2);//8
        System.out.println(i3);//16


        //浮点数拓展
        float f=0.1f;   //0.1
        double d=1.0/10;//0.1
        System.out.println(f);
        System.out.println(d);
        System.out.println(f==d);

        
        float f1=22222222222222f;
        float f2=f1+1;
        System.out.println(f1==f2);     //输出true

        

 
        char c1='a';
        char c2='中';

        System.out.println(c1 +"   " + (int)c1);    //强制转换 a   97
        System.out.println(c2 +"   " + (int)c2);    //强制转换 中   20013
        //所有字符本质还是数字
        //Unicode编码表  2字节 0--65536
        
        //Unicode编码 从 U0000--UFFFF
        char c3='u0061';
        System.out.println(c3);//输出: a

 
        
        boolean flag=true;
        if(flag==true){ }   //新手
        if(flag){ }        //老手
        //Less is More!  代码要精简易读

转义字符:

引用数据类型
  1. 接口
  2. 数组
类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

强制转换

==强制转换==是由低到高

byte,short,cahr-->int-->long-->float-->double

(小数的优先级大于整数)

运算中,不同的数据类型先转化为同一类型,然后进行运算。

 
        int i=128;
        byte b=(byte)i; //内存溢出

        System.out.println(i);//128    129      130
        System.out.println(b);//-128   -127     -126
自动转换

自动转换是由高到底(会自动转换)

 
        int i1=128;
        double d=i1;
        System.out.println(i1); //128
        System.out.println(d);  //128.0

        char c='a';
        int i2=c+1;
        System.out.println((int)c);//97
        System.out.println(i2);//98
        System.out.println((char)i2);//b

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题!
 //精度问题(直接省略小数点后的)
        System.out.println((int)23.8);      //23
        System.out.println((int)-15.78f);   //-15
溢出问题
  
        //操作比较大的数的时候,注意溢出问题
        //(jdk7新特性,数字之间可以用下划线分割
        int money =10_0000_0000;
        int year=20;
        int total=money*year;//-1474836480,计算的时候溢出了
        long total2=money*year;//默认是int,转换之前已经存在问题了?

        long total3=(long)money*year;//先把一个树转换为long,表达式就会在计算前,把类型全部转为最高的类型,再去计算
        System.out.println("========================");
        System.out.println(total);//-1474836480
        System.out.println(total2);
        System.out.println(total3);

PS:
(本文为根据狂神视频学习,所做笔记。手敲出来方便日后复习)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号