首页 > 其他 > 详细

数据类型

时间:2021-05-25 09:25:47      阅读:22      评论:0      收藏:0      [点我收藏+]

数据类型

强类型语言

要求变量的使用要严格符合规定,所有的变量都必须被定义后才能使用

java数据类型分为两大类

  • 基本类型

  • 引用类型

基本类型

  1. 数值类型

    • 整数类型 int 、short(-32768-32767)、long(如long num = 30L )、byte(-128-127)

    • 浮点型 float(占4个字节,定义时要在数字后加F,如50.1F)、double(占8个字节,如3.141592653589)

    • 字符类型 char(占2个字节,“A”)

  2. 布尔类型 boolean

引用类型:类、接口、数组

数据类型扩展:

       在java代码中:二进制(0b开头) 十进制 八进制(0开头) 十六进制(0x开头)

       int i = 10; 输出10

       int i1 = 0b00101 输出5

       int i2 = 010; 八进制 输出8

       int i3 = 0x10; 十六进制 输出16

二进制转十进制:1101.01 1x2^3+1x2^2+0x2^1+1x2^1+0x2^-1+1x2^-2 = 13.25

八进制转十进制:246   2x8^2+4x8^1+6x8^0 = 166

十六进制有十六个数码:0 1 2 3 4 5 6 7 8 9 A B C D E F

十六进制转十进制:3D4    3x16^2+13x16^1+4x16^0 = 980

 

浮点数拓展

示例1:

       float f = 0.1f //f =0.1

       double d = 1.0/10 //d= 0.1

       System.out.println(f==d); //输出false

示例2:

       float d1 = 234234243425243234f

       double d2 = d1+1

       System.out.println(f==d); //输出true

       //float 浮点数有限的,离散的 舍入误差 大约 接近但不等于

所以最好完全避免使用浮点数来进行比较,特别是银行业务,用BigDecimal

 

字符串拓展

       char c1 = ‘a‘;

       char c2 = ‘中‘;

       System.out.println(c1); //a

       System.out.println((int)c1); //97

       System.out.println(c2); //中

       System.out.println((int)c2); //20013

       所有的字符本质还是数字,编码Unicode 表:(97 = a 65 = A) 占2字节

       String s1 = new String("hello");

       String s2 = new String("hello");

       System.out.println(s1==s2); //false

       String s3 = "hello";

       String s4 = "hello";

       System.out.println(s3==s4); //true

       System.out.println(s1.equals(s2)) //true

       "=="如果比较的是基本类型,则比较的是值是否相等;如果是引用对象,则比较得是在内存空间中的存储位置是否一致。

       equals方法继承于Object类,如果没有重写equals方法,则==与equals等同。

       String类中重写了equals方法,"equals"常用来比较对象的值是否相等

 

数据类型转换

由低到高

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

       int i = 128;

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

       double d = i;

       System.out.println(i); //128      

       System.out.println(b); //-128

       System.out.println(d); //128.0

强制转换 (类型)变量名 由高到低

自动转换 由低到高

注意:

  1. 不能对布尔值转换

  2. 不能把对象类型转换为不相干的类型

  3. 把高容量转换为低容量时,强制转换

  4. 转换的时候可能存在内存溢出,或精度问题

    System.out.println((int)23.7); //23

    System.out.println((int)-45.89f); //-45

 

数据类型

原文:https://www.cnblogs.com/lrc778/p/14806940.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!