JAVA数据类型及转换

在这里插入图片描述

一、数据类型

数据类型字节数
byte字节型占用1个字节
取值范围:-27 ~ +27-1
-128~+127
short短整型占用2个字节
取值范围:-215 ~ +215-1
-32768~+32767,在实际开发中使用较少
int整型占用4个字节
取值范围:-231 ~ +231-1
-2147483648-+2147483647
long长整型占用8个字节
取值范围:-263 ~ +263-1
-9223372036854775808 ~ +9223372036854775807
float单精度浮点型占用4个字节
取值范围:-3.4E-38 ~ +3.4E+38
double双精度浮点型占用8个字节
负值取值范围为:-1.7976E+308 ~ -4.94065645841246544E-324
正值取值范围为:4.94065645841246544E-324 ~ 1.797693E+308
char字符型占用2个字节
取值范围:-27 ~ +27-1
-128~127
boolean布尔型占用1个字节
只能是True 或是 False

示例代码:

 public static void main(String[] args) {
        byte by = 10;           //字节型:占用1个字节,取值范围-128~127
        short sh = 10;          //短整型:占用2个字节,取值范围-32768~32767,在实际开发中使用较少
        int i = 10;             //整型:占用4个字节,取值范围
        long l = 1001;          //长整型:占用8个字节
        float f = 10.98F;       //单精度浮点型:占用4个字节
        double d = 10.123456D;  //双精度浮点型:占用8个字节
        char c = 'A';           //字符型:占用2个字节范围: 0~65535
        boolean bool = true;    //布尔型:占用字节不确定(true/false)
        System.out.println("Byte :" + by);
        System.out.println("Short :" + sh);
        System.out.println("Integer :" + i);
        System.out.println("Long :" + l);
        System.out.println("Float :" + f);
        System.out.println("Double :" + d);
        System.out.println("Character:" + c);
        System.out.println("Bool :" + bool);

        int aa = 100;//十进制
        int bb = 015;//八进制
        int cc = 0xff;//十六进制
        int dd = 0b1001010101;//二进制
        System.out.println("十进制" + aa);
        System.out.println("八进制" + bb);
        System.out.println("十六进制" + cc);
        System.out.println("二进制" + dd);

        int salary=3000;
        long yearSalary=300000000;
        System.out.println(yearSalary);
    }

输出:

Byte :10
Short :10
Integer :10
Long :1001
Float :10.98
Double :10.123456
Character:A
Bool :true
十进制100
八进制13
十六进制255
二进制597
300000000

二、类型转换

1.自动类型转换

自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型
红实线:无数据丢失的自动类型转换
黑虚线:在转换时可能会有精度的损失。在这里插入图片描述

示例代码:

//容量小的类型可以自动转化成容量大的类型
int a = 12345 ;
long b = a;
int c = b;
double d = b;
float f = b;
//long类型不能自动转化成int
//特例: 整型常量是int类型,但是可以自动转成: byte/short/char
//只要不超过对应类型的表数范围

byte h1 = 123;
//byte h2 = 1234; //1234超过了byte的表数范围
char h3 = 97+25;
System.out.printIn(h3) ;

2.强制类型转换

强制类型转换,又称为造型 (cast)用于强制转换数值的类型,可能损失精度。

double a = 3.94152;
int b = (int)a;//浮点数强转为整数
System.out.printIn(b);
//结果:3       (精度损失)

3.基本类型与字符串之间的转换

①基本类型转换为String
转换方式
方式一:直接在数字后加一个空字符串
方式二:通过String类静态方法valueOf()

public static void main (String[] args) {
		//int --- String
        int number = 100;
//方式1
        String s1 = number + "";
        System.out.println(s1);
//方式2
//public static String valueOf(int i)
        String s2 = String.valueOf(number);
        System.out.println(s2);
        System.out.println("--------");
    }

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:

public static byte parseByte(String s) :将字符串参数转换为对应的byte基本类型。
public static short parseShort(String s) :将字符串参数转换为对应的short基本类型。
public static int parseInt(String s) :将字符串参数转换为对应的int基本类型。
public static long parseLong(String s) :将字符串参数转换为对应的long基本类型。
public static float parseFloat(String s) :将字符串参数转换为对应的float基本类型。
public static double parseDouble(String s) :将字符串参数转换为对应的double基本类型。
public static boolean parseBoolean(String s) :将字符串参数转换为对应的boolean基本类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俎树振

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值