首页 > 编程语言 >Java类型转换

Java类型转换

时间:2022-08-16 13:57:28浏览次数:52  
标签:类型转换 Java int 数据类型 System println out

类型转换

Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

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

转换从低级到高级(根据容量来看):

 低 ------------------------------------> 高
 byte,short,char->int->long->float->double
 //小数的优先级大于整数    

类型转换分为强制类型转换自动类型转换

1、强制类型转换

容量大的数据类型转化为容量小的数据类型要用到强制类型转换,转换时要注意内存溢出的问题

强制类型转换的语法格式: (类型)变量名

类型转换的条件是转换的数据类型必须是兼容的。

【演示】

 public class Demo{
 //强制转换格式: (类型)变量名 高--低
 public static void main(String[] args) {
 int i =128;
 byte b = (byte)i; //数据类型为int的i强制转换为byte类型
 ​
 //当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值,溢出。
 System.out.println(i); //128
 System.out.println(b); //内存溢出了,byte最大值才127,所以这行的结果是-128
 }

2、自动类型转换

容量小的数据类型可以自动转换容量大的数据类型,这称为自动类型转换

例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为 32,可以自动转换为64位的double类型。

【演示】

 //自动转换  低--高
 public static void main(String[] args) {
 int a = 128;
 double z = a; //容量小数据类型为int的a自动转换为容量大double类型
 ​
 System.out.println(a); //128
 System.out.println(z); //128.0
     
 char c2 = 'A';//定义一个char类型
 int i2 = c2+1;//char 类型和 int 类型计算
 System.out.println("char类型和int计算后的值等于"+i2);//66
     //c2 的值为字符 A ,查 ASCII 码表可知对应的 int 类型值为65,所以i2=65+1=66。
 }

3、在类型转换时需要注意:

  1. 不能对布尔值进行转换;

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

  3. 在把高容量转换到低容量的时候,强制转换;

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

  5. 转换不会四舍五入,而是直接抹去小数位;

  6. 操作比较大的数时,要留意是否溢出,尤其是整数操作时,

    【演示】

  public static void main(String[] args) {
         //操作比较大的数的时候,注意溢出问题
         //JDK7新特性,数字之间可以用下划线分割
         int money1 = 1000000000;
         //int money1 = 100000000000; 溢出了
         int money2 = 1_000_000_000;
 ​
         System.out.println(money1);
         System.out.println(money2);
 ​
         int years1 = 20;
         int total1 = money1 * years1; //输出结果为:-1474836480,计算的时候溢出了
         long total01 = money1 * years1; //money1 * years1默认是int,这行相当于把上面一行的结果转换为long,结果还是错的
         long total02 = money1 * (long)years1; //正确写法
         System.out.println(total1); //-1474836480
         System.out.println(total01); //-1474836480
         System.out.println(total02); //20000000000
    }
 }

;

 

本文是学习狂神老师的课程时做的笔记,部分内容参考了狂神老师的视频和随笔

 狂神老师课程链接:https://www.kuangstudy.com/

 

 

 



标签:类型转换,Java,int,数据类型,System,println,out
From: https://www.cnblogs.com/YeJ1an/p/16591281.html

相关文章

  • Java变量与常量、作用域
    变量与常量、作用域1、变量(variable)变量:可以变化的量!Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作......
  • Java运算符
    运算符(operator)Java支持如下运算符:算术运算符:+,-,*,/,%,++,--赋值运算符=关系运算符:>,<,>=,<=,==,!=instanceof*逻辑运算符:&&,||,!*位运算符:&,|,^,~,>>,<<,>>......
  • Java第一个程序HelloWorld
    HelloWorld建立一个后缀为.java的文件例:Hello.java编写代码 publicclassHello{ publicstaticvoidmain(String[]args){ System.out.print("......
  • Java基础预习
    一、整数拓展二进制数用0b开头十进制数(不多说)八进制数用0开头十六进制用0x开头 publicclassDemo03{   publicstaticvoidmain(String[]args){......
  • JavaScript中的Object.defineProperty方法
    首先看一下官方的定义:Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性,并返回这个对象。语法Object.defineProperty(obj,pro......
  • java基础
    1、Java的数据类型有哪些?Java的数据类型有:(1)基本数据类型:byte,short,int,long,float,double,char,boolean(2)空类型:void(3)引用数据类型:数组、类、接口、枚举、注解等2、......
  • Java创建多线程的3种方式【杭州多测师】【杭州多测师_王sir】
    /***创建线程的3种方式*1.继承Thread类*2.实现Runnable接口*3.实现Callable接口*4.一个进程可以有多个线程、一个线程对应一个进程*5.防止多线程数据共享和超......
  • Java浅拷贝深拷贝
    Java浅拷贝深拷贝浅拷贝和深拷贝涉及到了Object类中的clone()方法  实现浅拷贝浅拷贝的实现需要类重写clone()方法浅拷贝会创建一个新对象,这个对象有着原始对象......
  • Java注解最全详解(超级详细)
    Java注解是一个很重要的知识点,掌握好Java注解有利于学习Java开发框架底层实现。@mikechenJava注解定义Java注解又称Java标注,是在JDK5时引入的新特性,注解(也被称为元数......
  • JAVA的环境搭建
    第一章 JAVA的环境第一节 Java三大版本JavaSE:标准版(桌面程序、控制台开发)StandardEditor(标准版)J2SE包含构成Java语言核心的类,定位在个人计算机上的应用。这个版本......