一、值类型与引用类型

值类型:

在Java中,值类型表示的是这种数据类型的值代表数据本身。八种基本数据类型就是值类型,基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面。

引用类型:

引用类型是通过class来定义的类型,除了八种数据类型之外的所有类型都是引用类型。引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值是存储在内存堆上的。

传递

值传递:基本数据类型的赋值都属于值传递,值传递传递的是实实在在的变量值,是传递原参数的备份,值传递后,实参传递给形参的值,形参发生改变不影响实参。

引用传递:引用传递传递的是地址,形参改变会改变实参变量的值。

二、自动类型转换

1、基本数据类型

从低位类型到高位类型可以自动转换,从高位类型到低位类型需要强制类型转换,另外,目标类型需能与源类型兼容。

布尔型和其它基本数据类型之间不能相互转换;

char可转换为int、long、float和double,其他类型不能转换为char;

其他六种类型从低到高的排序为:byte、short、int、long、float、double;

算术运算中,基本会先转换为高位数据类型,再参加运算,结果也是最高位的数据类型。

public class Test {

public static void main(String[] args) {

int price = 3;

double finalPrice = price;

System.out.println(finalPrice);

System.out.println(price+finalPrice);

/*输出结果:

3.0

6.0*/

}

}

特殊情况:

如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。

当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char,类型不发生改变;

2、引用类型

基本类型与对应包装类可自动转换,这是自动装箱和拆箱的原理。

子类能直接转换为父类或接口类型: 子类就是父类。

Animal cat = new Cat();

父类转换为子类要强制类型转换;且在运行时若实际不是对应的对象,会抛出ClassCastException运行时异常。

三、强制类型转换

1、基本数据类型

语法:( 数据类型 ) 数值

public class Test {

public static void main(String[] args) {

double finalPrice = 3.25;

int price = (int)finalPrice;

System.out.println(price);

//输出结果:3

//损失了部分数据

}

}

2、引用类型

语法与上述相同,需要注意若转换后在运行时实际不是对应的对象,会抛出ClassCastException运行时异常。

Animal animal = new Cat();

Cat cat = (Cat)animal;

java类型转换_Java类型转换相关推荐

  1. java类型转换_JAVA类型转换大全

    Java自带的库很多用起来都不是那么方便,类型转换很多都要显示去做真的有点难记住.找了篇资料说的很详细,记录下来吧. integer   to   String   :         int   i ...

  2. java类型转换 float类型转换_Java类型转换 – float(和long)到int

    2147483648.0实际上是231,而int的最大值是231-1.那么这个浮点值就是一个值太高的值. In the first step, the floating-point number is ...

  3. java 类型转换_java中的基本数据类型的转换

    本文参考了如下两篇文章: Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码 ...

  4. java 类型转换顺序_Java类型转换,顺序结构及条件结构,循环结构

    一.Java类型转换 转换类型: 1.自动类型转换:把小的放到大的里面 2.强制类型转换:把大的放到小的里面 3.把字符串类型转换成其他数据类型(使用对应包装类的parsexxx()方法) 同类型转换 ...

  5. java js 转换_[Java教程]javascript 类型转换。

    [Java教程]javascript 类型转换. 0 2016-10-11 18:00:06 目录: 1 : 伪对象 2 : 转换为字符串 3 : 数字转字符串 4 : 转换为数字 5 : 转换为Bo ...

  6. java中的类型转换

    今天复习了一下java的基础,重新回顾一下java中的类型转换. 一.自动类型转换 java中的数值类型都能进行自动类型的转换,表示范围小的能自动转化为表示范围大的. 总的来说如下图: 还有一种自动转 ...

  7. java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...

    在java中支持两种类型的类型转换,自动类型转换和强制类型转换.父类转化为子类需要强制转换. 更多相关问题 计算机病毒通过()传染扩散得极快,危害最大. 当一个现象的数量由小变大,另一个现象的数量相反 ...

  8. 将java.util.Date类型转换成json时,使用JsonValueProcessor将date转换成希望的类型

    将java.util.Date类型转换成json时,使用JsonValueProcessor将date转换成希望的类型 问题描述: java里面时间类型转换成json数据就成这样了: "cr ...

  9. java中的强制类型转换注意事项_浅谈Java中强制类型转换的问题

    为了更好的理解我们先看下面的例子: package com.yonyou.test; import java.util.ArrayList; import java.util.Iterator; im ...

最新文章

  1. 重启sshd_调整linux服务器sshd的MaxStartups,确保可以并行登录
  2. css 百分比 怎么固定正方形_css样式写出三角形,宽高自适应的正方形,扇形!...
  3. TreeMap源码解析
  4. html怎么增加td的宽度,html td怎么设置宽度
  5. SGU 210 Acdream 1227 Beloved Sons KM
  6. 合并表格中同一列中相同的内容
  7. python装饰器模式带参数_Python进阶(七)----带参数的装饰器,多个装饰器修饰同一个函数和递归简单案例(斐波那契数列)...
  8. Java中 intValue,parseInt,Valueof 这三个关键字的区别
  9. Python 练习题6-13
  10. 《深入理解Java虚拟机》笔记04之垃圾收集算法
  11. 刻度如果数据比较大的情况下会溢出
  12. 一起来找:程序员必去的社区与网站
  13. 谈谈我做技术经理的经验和教训
  14. (01)开发环境准备
  15. SW2016启动界面闪退、激活工具不出现All done! Enjoy!
  16. 径向基函数(RBF)
  17. IP根域名服务器以及域名服务器对国家安全的真正意义。
  18. jQuery插件 -- jQuery UI插件
  19. matlab图像处理 背景字迹消除
  20. 通信专业技术人员职业水平考试报考指南

热门文章

  1. resultmap拿不到数据_英雄联盟S10:半决赛数据告诉你huanfeng有多强
  2. AARRR:互联网创业者一定要掌握的指标
  3. Unit23 Can I help you?
  4. Linux获得命令帮助(学习笔记五)
  5. 虚机不能启动的特例思考
  6. 问答一:回答高中生关于前端的疑问
  7. python步长为负时的情况
  8. S-DES加密与解密
  9. 智能城市技术能够更好地改善日常生活
  10. C# DataTable 和List之间相互转换的方法