类型强制转换

1.为什么进行强制转换?

  • 就我的理解,java中有很多变量的值他们看上去是一样的,比如字符串“123”和整数“123”,值似乎是一样的,但我们都知道只有整数的123才能用来加减乘除,如果你从别处取得了一个字符串类型的数据,你想把他用来计算,这时候就得用强制转换了

  • 当然还有计算机的规则,大范围变小范围数据类型也会强制转换,当然这都是后话了

2.强制转换的部分规则与公式是怎样的?(可能有缺 欢迎补充)

Java中的强制类型转换是如何转换的?_百度知道 (baidu.com) 网友凡尘的回答

强制转换的格式为“目标数据类型 变量 = (目标数据类型) 数据;”

基本类型 转换原则:

1、类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。

a、赋值和方法调用 转换规则:从低位类型到高位类型(范围最大 字节最多)自动转换;从高位类型到低位类型需要强制类型转换:

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

/*以下从低向高,属于自动转换

(2)byte型可以转换为short、int、、long、float和double;

(3)short可转换为int、long、float和double;

(4)char可转换为int、long、float和double;

(5)int可转换为long、float和double;

(6)long可转换为float和double;

(7)float可转换为double;*/

b、算术运算中的类型转换:

(1)基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;

(2)byte short char运算会转换为Int;

  • 如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。

  • 如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。

  • 如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。

  • 如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

特殊:

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

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

3.一些强制转换的具体实例

Java中的强制类型转换是如何转换的?_百度知道 (baidu.com) 网友尚学堂java学院的回答

1 ) 整数 int 转换成字串 String , 有三种方法 : String s = String.valueOf(i); String s = Integer.toString(i); String s = "" + i;

2 ) String 转 int int i = Integer.parseInt(String);

i = Integer.parseInt(String,int radix);//如下图 radix 8代表所给的s3代表的数是八进制数 不标明默认是十进制

int i = Integer.valueOf(String).intValue();

3 ) 布尔类型 转 String

\1. 第一种方法

boolean bool = true; String s = new Boolean(bool).toString();//将bool利用对象封装器转化为对象

\2. 第二种方法

boolean bool = true;

String s = String.valueOf( bool );

4 ) String 转 Date

1 . 导入 java.util.Date date=null;

2 . date=java.sql.Date.valueOf(String s);

5 ) 数字类型间的转换

转型有两种: 向上转型和向下转型(强制转型) 两种分别如下: 第一种是向上转型 对于基础数据类型 , 可以自动转型 ,比如: int a = 10; long b = a; 这里就是把int型转成了long型 , 因为 long范围比int大 , 这样的转型不会有任何影响 , 所以可以自动转型

第二种是向下转型 , 也就是强制 这种需要强转 , 比如 long a = 10 ; int b = (int) a; 通过 (int)可以强制转型 , 但是这样会丢失精度 , 比如a如果超过了b的范围 , 那么强转成int型, 只会等于int的最大值

又如 : int a = ( int ) 8.8 ;

转义字符表

类型强制转换和转义字符表相关推荐

  1. Go 学习笔记(32)— 类型系统(命名类型、未命名类型、底层类型、类型强制转换、类型别名和新声明类型)

    1. 命名类型和未命名类型 1.1 命名类型 类型可以通过标识符来表示,这种类型称为命名类型( Named Type ). Go 语言的基本类型中有 20 个预声明简单类型都是命名类型, Go 语言还 ...

  2. Java 相同类型强制转换异常

    Java 相同类型强制转换异常 参考文章: (1)Java 相同类型强制转换异常 (2)https://www.cnblogs.com/LoveShare/p/11785056.html (3)htt ...

  3. C语言指针类型 强制转换

    关于C语言指针类型 强制转换  引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...

  4. C语言程序——类型强制转换

    文章目录 前言 一.类型强制转换 二.程序实例 代码如下 运行结果 结果分析 总结 前言 强制类型转换的作用就是将表达式的类型转换为类型名指定的数据类型. 一.类型强制转换 表达式进行强制转换的格式为 ...

  5. C++四种类型强制转换——const_cast、static_cast、dynamic_cast、reinterpret_cast

    文章目录 一.const_cast 1.基本知识 2.示例演示 二.static_cast 1.基本知识 2.示例演示 三.dynamic_cast 1.基本知识 2.示例演示 四.reinterpr ...

  6. C++的类型强制转换,static_cast,dynamic_cast,const_cast,reinterpret_cast

    1. c强制转换与c++强制转换 c语言强制类型转换主要用于基础的数据类型间的转换,语法为: (type-id)expression//转换格式1type-id(expression)//转换格式2 ...

  7. c语言const类型强制转换,关于C++的强制类型转换浅析

    前言 一说起强制类型转换大家都很熟悉,相信很多学习完C++的朋友还在使用C语言的强制类型的方式 (类型)变量. C++其实也具有自己的一套强制类型转换它们分明是:static_cast  reinte ...

  8. JAVA类型强制转换

    1.背景 在 Java 中,之所以需要强制类型转换是为了防止程序员在不知情的情况下把A类型数据错当成B类型的数据.将一种类型的值赋给另一个类型的变量是很常见的,如果这两种是兼容的,那么 Java 将执 ...

  9. c语言 void**类型转换,void指针类型强制转换

    如何将一个void*强制转换成行指针类型? void*指针可以转换成任何类型的指针. 强制转换即可,比如 (int *)(void *)p; 假设你的数组有N行M列的int型数据. int arr[N ...

最新文章

  1. Python每日一练0023
  2. Cloudify — Blueprints
  3. WebLogic下载地址
  4. 苏州科技大学计算机学院 李双娴,苏州大学计算机科学与技术学院第十二次研究生代表大会顺利召开...
  5. 条码生成代码(Code39码)
  6. C/C++开发游戏项目之《智能图形界面-贪吃蛇》
  7. RAC集群故障恢复CRS-4047,CRS-4000
  8. 屠榜CV还不是这篇论文的终极目标,它更大的目标其实是……
  9. 学生网页设计代码成品 大学生汽车网页代做 红旗汽车网页设计模板下载 HTML汽车网站制作 dreamweaver学生汽车网页设计成品
  10. rdlc报表 矩形高固定_固定资产管理系统_简化资产管理流程
  11. windows快速打开命令窗口方式[利刃篇]
  12. clickhouse聚合函数之groupBitmap
  13. matlab中单相整流器,应用Matlab仿单相PWM整流器的一种简单方法
  14. 使用WePE对无法启动的系统文件进行操作
  15. CATIA怎么约束快捷键_CATIA快捷键和Solidworks快捷键
  16. 自定义倒计时跳过按钮
  17. 那缕清香,右手阑珊,左手寂寞
  18. Unity 相机固定角度平移至指定物体
  19. docker的介绍、安装、镜像命令
  20. lisp绘制法兰_lisp语言画键槽_用LISP语言自定义AutoCAD命令

热门文章

  1. 命令模式---烧烤点单
  2. 马云在深圳网商论坛的演讲
  3. EasyExcel导出动态合并单元格
  4. Nginx - 深入理解nginx的处理请求、进程关系和配置文件重载
  5. 华为荣耀20和x10比较_客观说说华为畅享20pro和华为荣耀x10有什么区别呢?哪个好?深度测评剖析...
  6. java文件不能运行_java文件不能运行怎么办?
  7. Nature全球潮汐可视化兼影像数据下载网站:Intertidal change
  8. Deep Dive into Pytorch RNN/LSTM
  9. 【linux】进程间通信——system V
  10. 荷兰国旗问题(partition)总结