一、自动类型转换

1、java中不同类型的数据在计算时,为保证数据的精度,数据的类型会以大容量的类型为主;

2、自动类型转换的排序:

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

3、字符串和任意类型的数据进行连接运算(+),都会自动转换为字符串;

4、赋值运算时常量可以进行自动类型转化,变量不可以,例如:

int a=1;
byte b=1;
System.out.println(a+b); // 结果:2 byte a=1;
a=a+1; //结果:java: 不兼容的类型: 从int转换到byte可能会有损失
//原因:byte 在进行计算时会自动转换为int类型,这时就会变成 byte=int+int int类型被要求转换为byte,导致产生上面的错误。

5、在进行加运算的时候比int小的数据类型(char、byte、short)之间的运算都会自动转化成int的加运算,例如:

byte a = 1;
byte b = 2;
a = b + a;
System.out.println("b="+a);
// 结果:java: 不兼容的类型: 从int转换到byte可能会有损失
// 原因:b+a 数据类型自动转化为int了,不能赋值给byte类型的a
byte a = 1;
byte b = 2;
int c = b + a;
System.out.println(c); // 结果:3

二、强制类型转换

1、将容量大的数据类型转换为容量小的数据类型,强制类型转换可能会造成精度的降低或者溢出;

2、强制类型转换符(),括号里为要强制转换为什么类型,例如:

double a = 1.91;
int b = (int) a;
System.out.println(b); // 结果:1
// 这里的 a 被强制转换为int类型,小数点被强制去了

3、字符串不能直接转换为基本数据类型,但可以通过基本类型的封装类型进行转换,例如:

String s = "12";
int a = Integer.parseInt(s);
System.out.println(a); //结果:12

4、boolean类型和字符串的类型转换;

//boolean 转 String
boolean f = true;
String s = f + "";
System.out.println(s);
//结果:true //String 转 boolean
String s = "true";
boolean f = Boolean.parseBoolean(s);
System.out.println(f);
//结果:true

5、在继承中,子类可以自动转型为父类,但是父类强制转换为子类时只有当引用类型真正的身份为子类时才会强制转换成功,否则失败;

class Father {}
class Son extends Father {} //Father 是 Son的父类
Father father = new Son();
Son son = (Son) father; //father虽然是Father类型的数据,但是它指向的其实是 Son对象
//所以 (Son) father 是可行的 Father father1 = new Father();
Son son1 = (Son) father1; //father指向的是 Father对象
//所以 (Son) father 是不可行的
//这将会报错 java.lang.ClassCastException

java基础之 类型转换的更多相关文章

  1. Java基础之类型转换总结篇

    Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码中具有重要的作用.    ...

  2. Java基础-数据类型转换

     1).简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时.  自动转换 当一个较"小"数据与一个较"大"的数据一起运算 ...

  3. Java基础12 类型转换与多态

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/01/2992662.html 作者:Vamei 出处:http://www.cnblogs.com ...

  4. java基础-- 之类型转换 和 一些运算符

    ---   首先   看一个 Scanner  类 import java.util.Scanner; public class TestScanner { public static void ma ...

  5. Java基础12 类型转换与多态(转载)

    类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是 ...

  6. Java基础-基本数据类型转换案例

    java基本数据类型八中 byte = Byte short = Short char = Character int = Integer long = Long float = Float doub ...

  7. Java基础学习-类型转换之隐式转换

    +是一个运算符,我们应该能够看懂,做数据的加法. boolean类型不能转换为其他的数据类型. 默认转换:     byte,short,char--int--float--double     by ...

  8. 4.Java基础_Java类型转换

    import javax.swing.plaf.synth.SynthMenuBarUI; /* 类型转换 自动类型转换: 把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量 强制类型 ...

  9. Java基础——常用类型转换

    关于类型转化问题: (1)String--------->char / char[ ] String str = "ab"; char str1 = str.charAt(0 ...

随机推荐

  1. phpcmsv9 后台统计编辑发稿数量

    直切正题: 每个人,每个栏目,发稿数量统计 SELECT a.realname AS 姓名, c.catname AS 栏目名称, count(1) AS 发稿量FROM v9_news bz, v9 ...

  2. learn to rank 模型概述

    模型总体描述: https://zhuanlan.zhihu.com/p/26539920 LambdaMART中Lambda计算以及RegressionTree训练: https://blog.cs ...

  3. Windows电脑最最最常用快捷键

                            快捷键组合                    作用 Ctrl+A 全选 Ctrl+S 保存 Ctrl+Z 撤销 Ctrl+X 剪切 Ctrl+C 复 ...

  4. gulp常用插件之gulp-rev-delete-origina使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-delete-origina这是一款删除由gulp-rev或 gulp-rev-all重写的原始文件 . 更多使用文档请点击访问 ...

  5. Tomcat目录详解

    最近在项目部署时,有时通过使用公司提供的Jdoc容器引擎部署上线项目,有时使用Jenkins自动化部署,甚至有的项目直接打war包上传到弹性云的tomcat中进行部署.虽然部署方式略有不同,但是归根结 ...

  6. Python编码小技巧分享【新手必学】

       本次分享了python编程小技巧总结如下,希望对大家有帮助,非常实用哦注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑.为此小编建了个Python全栈免费答疑交流.裙 :一久武其 ...

  7. yii2 钩子函数

    插入时间 public function beforeSave($insert) { $this->created_at=time(); return parent::beforeSave($i ...

  8. CSS-定义样式表

    1.HTML标记定义 p{属性:属性值;属性1:属性1} <p>...</p> 注:p可以叫做选择器,定义那个标记中的内容执行其中的样式.一个选择器可以控制若干个样式属性,他们 ...

  9. 401 WebEx会议教程一 —— 参加会议

    · WebEx会议教程一 —— 参加会议 参加他人发起的会议 1.  在邀请邮件中,接受对方的会议邀请: 2.  一般在WebEx会议开始前15分钟时,邮箱客户端会提醒您 (如下图类似提示) 3.   ...

  10. (转)R语言 SVM支持向量机在 R 语言中的实现和使用

    支持向量机是一个相对较新和较先进的机器学习技术,最初提出是为了解决二类分类问题,现在被广泛用于解决多类非线性分类问题和回归问题.继续阅读本文,你将学习到支持向量机如何工作,以及如何利用R语言实现支持向 ...