java基础之 类型转换
一、自动类型转换
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基础之 类型转换的更多相关文章
- Java基础之类型转换总结篇
Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码中具有重要的作用. ...
- Java基础-数据类型转换
1).简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时. 自动转换 当一个较"小"数据与一个较"大"的数据一起运算 ...
- Java基础12 类型转换与多态
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/01/2992662.html 作者:Vamei 出处:http://www.cnblogs.com ...
- java基础-- 之类型转换 和 一些运算符
--- 首先 看一个 Scanner 类 import java.util.Scanner; public class TestScanner { public static void ma ...
- Java基础12 类型转换与多态(转载)
类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是 ...
- Java基础-基本数据类型转换案例
java基本数据类型八中 byte = Byte short = Short char = Character int = Integer long = Long float = Float doub ...
- Java基础学习-类型转换之隐式转换
+是一个运算符,我们应该能够看懂,做数据的加法. boolean类型不能转换为其他的数据类型. 默认转换: byte,short,char--int--float--double by ...
- 4.Java基础_Java类型转换
import javax.swing.plaf.synth.SynthMenuBarUI; /* 类型转换 自动类型转换: 把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量 强制类型 ...
- Java基础——常用类型转换
关于类型转化问题: (1)String--------->char / char[ ] String str = "ab"; char str1 = str.charAt(0 ...
随机推荐
- Callablestatement与JavaBean及其实例
一. Callablestatement:调用 数据库中的存储过程.存储函数 connection.prepareCall(参数:存储过程/存储函数名)参数格式:存储过程:(无返回值return,用O ...
- javaSE学习笔记(10)---List、Set
javaSE学习笔记(10)---List.Set 1.数据存储的数据结构 常见的数据结构 数据存储的常用结构有:栈.队列.数组.链表和红黑树. 1.栈 栈:stack,又称堆栈,它是运算受限的线性表 ...
- python全栈学习 day04
列表基本操作: #!/usr/bin/env python # -*- coding:utf-8 -*- ''' li = ['alex', [1, 2, 3], 'wusir', 'godness' ...
- 递归查询 start with connect by prior
1.语法:start with 子节点ID='...' connect by prior 子节点ID = 父节点ID 含义:查询结果我所有的后代节点(包括我) 例子: select id,parent ...
- SurfaceView 与view区别详解
SurfaceView 与view区别详解 https://blog.csdn.net/u011339364/article/details/83347109 2018年10月24日 17:20:08 ...
- 阿里支付:User Notice: invalid [default store dir]: /tmp/
主要是因为windows和linux文件系统不一致才导致此错误的.在linux系统上阿里提供的SDK没问题,但在windows上我们做测试或者开发的时候就会遇到这样的错误. 解决方法就是在alipay ...
- vue中的this.$nextTick()使用
首先我们来翻译一下nextTick是什么意思:下一个刻度 再来看看vue官网怎么说的: Vue.nextTick( [callback, context] )在下次 DOM 更新循环结束之后执行延迟回 ...
- Linux shell 只删除目录下所有(不知道文件名字)文件,只删除文件夹
#!/bin/sh RM="rm -rf" function delete_all_dir() { for i in `ls` do if [ -d $i ];then $RM $ ...
- 曼孚科技:AI机器学习领域常用的15个术语
机器学习是人工智能(AI)的核心,是使计算机具有智能的根本途径. 本文整理了一下机器学习领域常用的15个术语,希望可以帮助大家更好的理解这门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多个领 ...
- mybatis第二天01
MyBatis第二天01 1.高级结果映射 1.1根据视频案例,分析表之间的关系 数据模型分析 1. 明确每张表存储的信息 2. 明确每张表中关键字段(主键.外键.非空) 3. 明确数据库中表与表之间 ...