Java类型转换

Java基础数据类型

强类型语言

Java是一种强类型语言

要求变量的使用要严格符合规定,所有变量都必须先定义才能使用 安全性高 但是速度较慢

String name="hello";String 字符串对应字符串类型

Int num=10; Int整型

大小无需特别记忆可以直接看类的源码

弱类型语言

js 变量定义比较随意

Java的数据类型分为两大类

基本类型(primitive type)

数值类型

整数类型

byte:占1个字节范围 -128-127

short:占2个字节范围 -32768-32767

int:占4个字节范围-2147483648-2147483647

long:占8个字节范围-9223372036854775808-9223372036854776807

浮点类型

float:占4个字节

double:占8个字节

字符类型

char:占两个字节

boolean类型

占1位其值只有ture和false

引用类型(reference type)

接口

数组

类型转换

因为Java是强类型语言,所以要进行一些运算的时候,需要类型转换

低----------------------------------------------------->高

byte,short,char—>Int—>long—>float—>double

​ 64 32

为什么64位的long会比32位的float小????

因为小数的优先级要大于整数

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

// 强制转换(类型)变量名 高--低
// 自动转换  低--高
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干类型
3.再把高容量转换到低容量的时候要进行强制类型转换
4.转换的时候可能存在内存溢出,或者精度的问题
 */
   		int i = 128;
        byte b = (byte)i;
        System.out.println(i);//128
        System.out.println(b);//-128//内存溢出

         * 为什么回事-128呢?因为byte的范围在-128-127
         * 超出范围就会内存溢出
         * byte,short,char—>Int—>long—>float—>double
 

强制类型转换时的溢出和精度问题

//操作比较大的数时,注意溢出问题
//jdk7的特性,数字之间可以用下划线分隔
int money = 10_0000_0000;
int year = 20;
int total = money*year;
System.out.println(total);//-1474836480,计算的时候溢出了

/**
 * 那是不是说我用long就可以解决溢出问题了呢?
 * 不不不并不是
 * 因为money和year的默认是int,转换之前已经存在问题
 * 那如何解决呢?
 * 再计算之前把精度问题解决掉
 */
long tatol2 = money*year;
System.out.println(tatol2);//-1474836480

long tatol3 = money*((long)year);//再计算之前把精度问题解决掉
System.out.println(tatol3);//20000000000

进制

二进制0b    八进制0   十进制     十六进制0x
int i = 10;
int i2 = 010;//八进制
int i3 = 0x10;//十六进制 0-9 A~F 16

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

银行业务尽量不用浮点数表示??

  • 这是为什么呢?
  • 因为浮点数会舍入误差 是一个大约数但是不等于
  • 最好完全使用浮点数进行比较
  • 那银行业务怎么实现呢?使用BigDecimal 数学工具类
  • 要想让数据无误差最好不要用浮点数进行比较
//浮点数拓展 银行业务怎么表示? 钱
//float 有限 离散
//double

float f = 0.1f;//0.1
double d = 1.0/10;//0.1

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

float d1 = 1234567f;
float d2 = d1+1;
System.out.println(d1==d2);//true


posted @ 2021-08-10 22:16  程序狒  阅读(67)  评论(0)    收藏  举报