首页 > 编程语言 >java基础05 类型转换

java基础05 类型转换

时间:2023-01-13 22:56:00浏览次数:49  
标签:类型转换 java 05 int System long println 转换 out

类型转换

知识点

  • 上一节讲到,字符的本质还是数,所以字符也可以进行运算
  • 运算中,先要将不同类型的数据转换为同一类型后,才能再进行运算,转换具有优先级

低———————————————————>>高 (所占的空间大小决定优先级)

byte, short, char—>int—>long—>float—>double (浮点数优先级在整数以上,因为 float 4 < long 8)

强制转换 高——>低 : (类名)变量名
自动转换 低——>高 : 啥都不用干
自动转换 低——>高 : 啥都不用干

代码

public class test05 {
    public static void main(String []args){
        //强制转换  高——>低 : (类名)变量名
        int i=128;
        byte b=(byte)i;     //强制转换,  此时 内存溢出(byte -128~127) ,要避免这种情况
        System.out.println(b);
        System.out.println((int)23.15);    //23,存在精度丢失的问题
        System.out.println((int)-23.15f); //-23,存在精度丢失的问题
        //自动转换  低——>高 : 啥都不用干
        double d=i;   //自动转换,啥也不用干
        System.out.println(d);
        /*
        注意点
        1. 不能对布尔值进行转换
        2. 不能把对象类型转换为不相干的类型
        3. 把高容量转换为低容量时,强制转换,反之则自动转换
        4. 转换时可能存在 内存溢出 或者 精度丢失 问题 ,要避免这种情况
         */
        System.out.println("================================");
        char a='a';   //97,字符的本质是数
        int num=a+1;  //自动类型转换,char->int 是低到高
        System.out.println(num);  //98
        System.out.println((char)num);  //b  强制类型转换,int->char 是高到低

        //操作数值较大的数时,要注意溢出问题
        //JDK7 新特性 ,数字间可以用下划线_分开且不会造成影响,更方便读写数值
        int money=10_0000_0000; //一年赚的钱 10亿
        int years=20; //赚了20年
        int total1=money*years; //总共赚的钱
        long total2=money*years;
        System.out.println(total1);   //-1474836480,此时会出现错误,溢出了
        System.out.println(total2);   //-1474836480,也会错误,默认是int,转换前就有问题了,因为先计算再转换
        long total3=money*(long )years;
        //先将一个数转化为long,(int)money*(long )years过程中,int money也会自动转化为long
        System.out.println(total3);    //20_0000_0000,正确
    }
}

标签:类型转换,java,05,int,System,long,println,转换,out
From: https://www.cnblogs.com/zhanjianhai/p/17050927.html

相关文章

  • Java基础04 数据类型拓展与面试题讲解
    数据拓展与面试题讲解数据拓展整数拓展浮点数拓展字符拓展布尔值拓展importstaticjava.lang.System.*;publicclasstest04{publicstaticvoidmain(St......
  • 类型转换
    1publicclassDemo03{2publicstaticvoidmain(String[]args){3/*4*由于java是强类型语言,所以有时要用到类型转换5*低......
  • 03.JAVA入门
    Java入门一、Java的特性和优势特性优势:简单性、面向对象、可移植性、高性能、分布式、动态性、多线程、安全性、健壮性二、JDKJREJVMJVM:JavaVirtualMachin......
  • java性能分析小工具--jconsole
     如果电脑装了java版本1.5以上,都会自带这个性能分析小工具。windows下输入命令行:jconsole 即可调出这个工具 可以对线程、内存、类、CPU等做一些简单分析  ......
  • java操作kudu 增删改查
    1.maven导入依赖<dependency><groupId>org.apache.kudu</groupId><artifactId>kudu-client</artifactId><version>1.6.0</version>......
  • javase知识点总结:三种程序逻辑结构,输入输出
    顺序结构顺序结构程序就是按语句出现的先后顺序执行的程序结构。计算机按顺序逐条执行语句,当一条语句执行完毕,自动转到下一条语句。分支结构if语句1.语法格式1if(......
  • JavaScript快速入门
    语句只需简单地把各条语句放在不同的行上就可以分隔它们vara=1varb=2如果想把多条语句放在同一行上,就需要用分号隔开vara=1;varb=2注释用两个斜线......
  • 用Java写一个分布式缓存——缓存淘汰算法
    前言之前也用过一些缓存中间件,框架,也想着自己是不是也能用Java写一个出来,于是就有了这个想法,打算在写的过程中同步进行总结。源码:weloe/Java-Distributed-Cache(github.......
  • Java 正则表达式详解_正则表达式
    Java正则表达式详解_正则表达式如果你不熟悉这个术语,那么“正则表达式”(RegularExpression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。​​正则表达式3......
  • Java生成和操作Excel文件 - 残星
    JAVAEXCELAPI:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯......