初识Java类型转换-01天 学习笔记

java类型转换


1.由于java是强类型语言,所以进行有些运算的时候需要类型转换

低-------------------------------------------------------------------高

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

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

3.强制类型转换

import java.nio.charset.CharsetEncoder;
import java.util.Scanner;

public class Demo04 {
    
    
    public static void main(String[] args) {
    
    
        int i =128;  //  byte b = i;  会报错,所以需要强制转换

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

        byte b =(byte)i;// 所以要在i前面加强制转换符号(byte)
                       // 内存溢出
        System.out.println(i);   //会出现128是因为byte的范围是-128至127
        //自动转换      (类型)变量名   低到高
        double c =i;
        System.out.println(c);

        /*
        注意点
        1.不能对布尔值转换;
        2.不能把对象类型转换为不相干的类型;
        3.再把高容量转换为低容量的时候,强制转换;
        4.转换的时候可能出现内存溢出,或者精度问题;
         */
        System.out.println("======================================");
        System.out.println((int) 45.2);  //  45     double
        System.out.println((int) -45.87f);   // -45  f 浮点数  精度缺少


        System.out.println("======================================");
        char a = 'e';
        int d = a+2;
        System.out.println(d);  // 103  g
        System.out.println((char)d);
        System.out.println("======================================");
        //操作比较大的数的时候,注意溢出的问题;
        //数字之间可以用下划线表示
        int money = 10_0000_0000;
        int year = 4;
        int total = money*year;
        long total2 = money*year;
        System.out.println("总金额"+total); // -294967296  ,计算的时候内存溢出;
        System.out.println(total2);       // 默认是int,转换前已经存在问题了;
        //所以需要在计算前转换
        long total3 = ((long) money)*year; //先把一个数转换为long类型;
        System.out.println("总金额"+total3);
        
        





    }
}

4.自动类型转换

 //自动转换      (类型)变量名   低到高
        double c =i;
        System.out.println(c);

猜你喜欢

转载自blog.csdn.net/yibai_/article/details/114239292