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 ...
随机推荐
- 项目在UAP可以直接启动,但是在eclipse上面不能直接启动
上面两个eclipse都是用友的开发人员给我的,左边是驻场开发给我的,但是没有教我怎么用和哪里好用,所以一直用UAP来做开发.右边的eclipse是提ISM问题,北京用友远程调试问题时给我的,而且终于 ...
- DOM节点的属性和方法
DOM DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model).它的作用是将网页转为一个 JavaScript 对象,从而可以用脚本进行 ...
- P1642 规划 [01分数规划]
裸题,考虑size完了跑一个树上背包,这题没了. // by Isaunoya #include <bits/stdc++.h> using namespace std; #define ...
- npm常用模块之chai使用
更多npm常用模块使用请访问:npm常用模块汇总 chai这是一款用于节点和浏览器的BDD / TDD断言库,可以与任何javascript测试框架完美地配对. 更多使用文档请点击访问chai工具官网 ...
- tp5使用PHPexcel扩展导出excel表
1,使用composer安装phpexcel包: composer require phpoffice/phpexcel 2,在控制器中创建方法: (1)使用PHPexcel扩展.代码如下 /** * ...
- 使用_slots_变量限制class实例能添加的属性
如果我们想要限制实例的属性怎么办?比如,只允许对Student实例添加name和age属性. 那么我们在Student类里面增添_slots_变量 例如: class Student(object): ...
- 今天才知道a标签的href="#"是回到页面顶部
如题,真的是,做了一年多的开发,今天才知道a标签的href="#"是回到顶部.以前一直以为这是个多么了不起的功能. 顺便扩展一下滑动隐藏和显示按钮(从别处拷贝来的代码) $( do ...
- 从零开始学 Java - 搭建 Spring MVC 记录云创的日子 第一章
2017年11月29日 来到新项目,需要用到Spring MVC ,那么我就开始记录我这次的学习. Spring MVC 框架是围绕一个 DispatcherServlet 来设计的,这个 Servl ...
- C++ -> 在使用动态链表和异质链表产生野指针的步骤
C++ -> 在使用动态链表和异质链表产生野指针的步骤 使用异质链表产生野指针的情况,下面是修改书本的例子: ------------------------------------------ ...
- Yarn报错:Could not find any valid local directory for nmPrivate/
原因: yarn.nodemanager.local-dirs和hadoop的hadoop.tmp.dir参数对应文件位置不一致 解决办法: 将hdfs-site.xml中hadoop.tmp.dir ...