JAVA应用】java的数据类型转换分为哪两种

2020-10-27 15:09发布

8条回答
苏酒儿
2楼 · 2020-10-27 15:10

java的数据类型转换分为 :自动类型提升和强制类型转换 两种

浅浅77
3楼 · 2020-10-27 15:46

第一种是隐式类型转换,隐式类型转换就是从低级类型向高级类型的转换无需进行任何操作,系统将自动执行。这种类型转换称为隐式转换下列基本数据类型会涉及数据转换,其中不包括逻辑类型和字符类型。这些类型按照精度划分从低到高的顺序为:

byte

第二种就是显示类型转换,也称显示类型转换为强制类型转换。当把高精度的变量的值赋给低精度的变量时则必须使用显示类型转换。当执行显示类型转换时可能会导致精度消失

大河向东流
4楼 · 2020-10-27 16:58

值类型和引用类型 。
一般情况下,我们声明一个变量:
Object o = new Object();
实际上是创建了一个引用(Object o)和一个对像(new Object())。
java的内存模型中有堆和栈两个空间,将引用放入栈,将对的象放入堆。
“引用”的值是“对像”在堆中的地址。
“对像”的值是真正的数据。这就是引用类型。

二般情况下,java中还有8种特殊的数据类型
byte,short,int,long,char,boolean,float,double
这几种类型不是对象。为了节省空间,其值直接存到了栈里。
int i=1;
i放放到了栈中,其值是1,而不是对象在堆中的地址。这就是值类型

aijingda
5楼 · 2020-10-27 19:40

数据类型转换是将一个值从一种类型更该为另一种类型的过程。例如可以将String类型的数据456转换为一个数值型,而且可以将任意类型的数据转换为String类型。
如果胸低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度类型向低精度数据类型转换则必然有信息丢失,有可能失败。
数据类型转换有两种方式,分别是隐式转换和显式转换。

隐式类型转换

第一种是隐式类型转换,隐式类型转换就是从低级类型向高级类型的转换无需进行任何操作,系统将自动执行。这种类型转换称为隐式转换下列基本数据类型会涉及数据转换,其中不包括逻辑类型和字符类型。这些类型按照精度划分从低到高的顺序为:
byte

代码示例:

public class Test4 {            //创建类
   public static void main(String[] args) {        //主方法
       int x = 100;                    //声明int类型的变量x并赋值
       float y = x;                    //声明float类型的变量并赋值
       System.out.println("y的值为:" + y);        //输出y的值
   }}1234567

运行结果:

请点击输入图片描述

隐式类型转换需要遵守一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据
隐式类型转换的一般规则见下表:


操作数1的数据类型

操作数2的数据类型

转换后的类型


byte、short、char    int    int    

byte、short、char、int    long    long    

byte、short、char、int、long    float    float    

byte、short、char、int、long、float    double    double    

代码示例:

public class Test5 {        //创建类
   public static void main(String[] args) {        //主方法
       //定义byte类型的变量mybyte ,并把byte类型的变量允许的最大值赋值给mybyte
       byte myByte = 127;
       int myInt = 150;                //定义int类型的变量myint并赋值
       float myFloat = 452.12f;        //定义float类型的变量并赋值
       char myChar = 10;               //定义插入类型的变量并赋值
       double myDouble = 45.46546;     //定义double类型的变量并赋值

       //输出运算结果
       System.out.println("byte类型与float类型数据进行运算的结果为:" + (myByte + myFloat));
       System.out.println("byte类型与int类型数据进行运算的结果为:" + (myByte * myInt));
       System.out.println("byte类型与char类型数据进行运算的结果为:" + (myByte / myChar));
       System.out.println("double类型与char类型数据进行运算的结果为:" + (myDouble + myChar));
   }}12345678910111213141516

运行结果:

请点击输入图片描述



爱梦 - 拿来吧你
6楼 · 2020-10-28 09:24

  隐式类型转换

  第一种是隐式类型转换,隐式类型转换就是从低级类型向高级类型的转换无需进行任何操作,系统将自动执行。这种类型转换称为隐式转换下列基本数据类型会涉及数据转换,其中不包括逻辑类型和字符类型。这些类型按照精度划分从低到高的顺序

  显示类型转换:

  第二种就是显示类型转换,也称显示类型转换为强制类型转换。当把高精度的变量的值赋给低精度的变量时则必须使用显示类型转换。当执行显示类型转换时可能会导致精度消失

 


kitidog2016
7楼 · 2020-10-28 09:55

隐式类型转换

第一种是隐式类型转换,隐式类型转换就是从低级类型向高级类型的转换无需进行任何操作,系统将自动执行。这种类型转换称为隐式转换下列基本数据类型会涉及数据转换,其中不包括逻辑类型和字符类型。这些类型按照精度划分从低到高的顺序为:
byte

代码示例:

public class Test4 {            //创建类
    public static void main(String[] args) {        //主方法
        int x = 100;                    //声明int类型的变量x并赋值
        float y = x;                    //声明float类型的变量并赋值
        System.out.println("y的值为:" + y);        //输出y的值
    }}1234567

运行结果:
在这里插入图片描述

隐式类型转换需要遵守一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据
隐式类型转换的一般规则见下表:

操作数1的数据类型操作数2的数据类型转换后的类型
byte、short、charintint
byte、short、char、intlonglong
byte、short、char、int、longfloatfloat
byte、short、char、int、long、floatdoubledouble

代码示例:

public class Test5 {        //创建类
    public static void main(String[] args) {        //主方法
        //定义byte类型的变量mybyte ,并把byte类型的变量允许的最大值赋值给mybyte
        byte myByte = 127;
        int myInt = 150;                //定义int类型的变量myint并赋值
        float myFloat = 452.12f;        //定义float类型的变量并赋值
        char myChar = 10;               //定义插入类型的变量并赋值
        double myDouble = 45.46546;     //定义double类型的变量并赋值

        //输出运算结果
        System.out.println("byte类型与float类型数据进行运算的结果为:" + (myByte + myFloat));
        System.out.println("byte类型与int类型数据进行运算的结果为:" + (myByte * myInt));
        System.out.println("byte类型与char类型数据进行运算的结果为:" + (myByte / myChar));
        System.out.println("double类型与char类型数据进行运算的结果为:" + (myDouble + myChar));
    }}12345678910111213141516

运行结果:
在这里插入图片描述

显示类型转换:


第二种就是显示类型转换,也称显示类型转换为强制类型转换。当把高精度的变量的值赋给低精度的变量时则必须使用显示类型转换。当执行显示类型转换时可能会导致精度消失
语法如下:

(类型名)要转换的值1

代码示例:

public class Test6 {
    public static void main(String[] args) {
        int a = (int)45.23;
        long b = (long)45.6f;
        int c = (int)'d';

        System.out.println("输出a:" + a);
        System.out.println("输出b:" + b);
        System.out.println("输出c:" + c);
    }}1234567891011

运行结果:
在这里插入图片描述
注意:
当把整数赋值给一个byte short int long 类型的变量时,不可以超出这些类型的取值范围,否则必须进项强制类型转换。
例如:
byte a = (byte)129;



不吃鱼的猫
8楼 · 2020-10-28 10:12

自动类型提升和强制类型转换 两种

相关问题推荐

  • 回答 20

    100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 400 语义有误,当前请求无法被服务器理解。 401 当前请求需要用户验证...

  • 回答 5
    已采纳

    1、相同点(1)都是表现层框架,都是基于MVC设计模型(2)底层都离不开 Servlet API(3)处理请求的机制都是一个核心控制器2、不同点(1)SpringMVC的入口是Servlet,而Struts2的入口是Filter(2)SpringMVC是基于方法设计的,而Struts2是基于类(3)SpringMV...

  • 回答 22
    已采纳

    类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结...

  • 回答 23
    已采纳

    (1)idea启动时会有两个快捷方式,安装完后默认生成在桌面的是32位的idea的快捷方式,如果我们使用这个快捷方式运行大项目,一般都会很卡。解决方法是找到idea的安装目录,然后进入bin文件夹,找到名称为idea64的应用程序,右键他生成桌面快捷方式。以后每次...

  • 回答 12
    已采纳

    获取Map集合中所有的key可以通过map集合的keySet()方法获取例如:    Map map = new HashMap();    map.put(xx,xx); //存放数据    //.... 省略    Set set = map.keySet();    //可以通过迭代器进行测试    Iterator iter = set.iter...

  • 回答 4
    已采纳

    Java中有八种数据类型,基础数据类型分别是:byte,short,int,long,float,double,char,boolean,引用数据类型分别是:数组,类和接口。方法传参的时候我们有两种,一种是形式参数(定义方法时写的参数),一种是实际参数(调用方法时给的具体值)。首先...

  • 回答 15
    已采纳

    现在的架构很多,各种各样的,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,还有和这些架构相关的管理型的技术方法,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等等,还有很多。分布式架构其实就是分布式系...

  • 回答 10

    1、监控GC的状态使用各种JVM工具,查看当前日志,分析JVM参数的设置,分析堆内存快照和GC日志,根据实际的各区域的内存划分和GC的执行时间,判断是否需要进行优化2、分析结果、判断是否需要优化如果各项参数设置合理,系统没有超时的日志出现,GC频率也不高,...

  • 回答 9
    已采纳

    从两个方面对ElasticSearch和Solr进行对比,从关系型数据库中的导入速度和模糊查询的速度。单机对比1. Solr 发布了4.0-alpha,试了一下,发现需要自己修改schema,好处是它自带一个data importer。在自己的计算机上测试了一下,导入的性能大概是:14分钟导入 ...

  • 回答 10
    已采纳

    操作系统中有若干进程并发执行,它们不断申请、使用、释放系统资源,虽然系统的进 程协调、通信机构会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能 继续运行,否则就阻塞的情况。此时,若不借助外界因素,谁也不能释放资源,谁也不能解 ...

  • 回答 6

    MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以...

  • 回答 6

    学vue应该要先学习javascript 的基础知识和用法。

  • 回答 7

    synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其作用...

  • 回答 9

    是一个文件服务器,用来上传下载文件.它是一个分布式集群的.分2个角色调度和存储.上传时配置调度后上传.用的时候需要搭建.如果不会搭建想省事还可以选择阿里的oss .项目中应用还是比较多的因为一般项目都有文件上传和下载.选择目前就这2种方案.根据公司情况选...

  • 回答 8

    使用场景:常规key-value缓存应用。常规计数: 微博数, 粉丝数。实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr,decr等操作时会转成数值型进行计算,此时redisObject的encoding字段为int。...

  • 回答 6

    一、装箱和拆箱原始类型转换为对象类型就是装箱,反之就是拆箱。原始类型byte,short,char,int,long,float,double,boolean对应的封装类为Byte,Shor,Character,Integer,Long,Float,Double,Boolean.二、源码解读自动装箱时编译器调用valueOf将原始类型值转换成对...

没有解决我的问题,去提问