dsp 数据类型强制转换_JavaSE第二章总结—数据类型
命名规范
(变量命名、常量命名、方法命名乃至以后使用开发框架的配置文件命名,都可使用驼峰命名法)
①类的命名:首字母大写,单词语单词之间首字母大写。如:StudentId(学生ID号)、MaxValue(最大值)。
②变量的命名:第一个首字母小写,其他单词首字母大写。如:identityCard firstName getName。
③常量命名:一个活多个单词组成,所有字母大写。
④方法的命名:第一个首字母小写,其他单词首字母大写,如setName( )、getName( )。
数据类型
上一章也提到过,基本数据类型如下表
本章讲讲各数据类型间转换(重点)
1)自动类型转换
①当把存储范围小的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围大的变量时,
byte->short->int->long->float->double
char->
int signA = 'a'; //char自动升级为int double signB = 20; //20属于int类型,该例中int自动升级为double
②当存储范围小的数据类型与存储范围大的数据类型一起混合运算时,会按照其中最大的类型运算
int signA= 1;byte signB = 1; double signC = 1.0;double sum = signA + signB + signC; //混合运算,升级为存储范围大的变量double
③当byte,short,char数据类型进行算术运算时,按照int类型处理
byte b1 = 1; byte b2 = 2; byte b3 = (byte)(b1 + b2); //b1 + b2首先升级为int,进行加的操作,再强转成bytechar c1 = '0'; char c2 = 'A'; System.out.println(c1 + c2); //113
2)强制类型转换
①当把存储范围大的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围小的变量时,需要强制类型转换
double->float->long->int->short->byte
->char
提示:强转有风险,可能会损失精度或溢出
②当某个值想要提升数据类型时,也可以使用强制类型转换
int i = 1; int j = 2; double shang = (double)i/j;
提示:这个情况的强制类型转换是没有风险的。
代码示例 A:
public class DataDemo2 { public static void main(String[] args) { /** * int a=1.5; 编译失败,无法赋值 */ int i = (int)1.5; double d=2.5; //int类型和double类型运算,结果是double类型 //int类型会提升为double类型 double e = d + i; System.out.println(e); }}
代码示例B:
public class DataDemo3 { public static void main(String[] args) { short s = 1; /** * s = s + 1 会出现编译失败 * * 原因: * s 和 1 做运算的时候,1 是 int 类型,s 会被提升为 int 类型 * s+1 后的结果是 int 类型,将结果在赋值会 short 类型时发生错误 * short 内存2个字节,int 类型4个字节 * 必须将 int 强制转成 short 才能完成赋值 */ s= (short) (s+1); System.out.println(s); }}
3)特殊的数据类型转换
任意数据类型的数据与String类型进行“+”运算时,结果一定是String类型
System.out.println("" + 1 + 2); //12
但是String类型不能通过强制类型()转换,转为其他的类型
String str = "123"; int num = (int)str; //这是错误的
4)“+=”符号扩展范例
示例代码 A:
public class DataDemo4 { public static void main(String[] args) { short s = 1; s += 1; System.out.println(s); }}
分析:
s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将 取值范围大的类型赋值到取值范围小的类型。但是, s=s+1进行两次运算 , += 是一个运算符,只运算 一次,并带有强制转换的特点,也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过, 运行结果是2.
示例代码 B:
public class DataDemo5 { public static void main(String[] args) { byte b1=1; byte b2=2; byte b3=1+2; //byte b4 = b1 + b2; 编译失败 System.out.println(b3); }}
分析:
b3 = 1 + 2 ,1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的 结果并没有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。
反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定 b2+b3的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失 败。
数据类型的转换,简而言之,记住两句话:
1.程序中的整数默认都是int型,即在方法调用直接传入的一个具体的整数值,默认情况下是int型。
2.值域小的的类型可以自动转化为值域大的。值域大的不能直接转化为值域小的,但是确认无风险的情况下,可以通过强制转化实现。
重中之重:学习的动力,在于美图
dsp 数据类型强制转换_JavaSE第二章总结—数据类型相关推荐
- python如何强制转换数据类型_python数据类型强制转换实例详解
如果是字符串进行强制转换, 仅仅就是在原数据类型的两边套上引号 2.list : 强制转换成列表""" 如果是字符串,会把每一个字符都单独作为一个元素放到新的列表中 如果 ...
- C语言(苏小红)——第二章基本数据类型
C语言程序设计 第二章基本数据类型 文章目录 C语言程序设计 2.1 常量与变量 2.1.1 常量 (Constant) 2.1.2 变量(Variable) 2.2 简单屏幕输出 2.3 计算变量或 ...
- python如何强制转换数据类型,python数据类型强制转换的方法
python数据类型强制转换的方法 发布时间:2020-06-22 16:43:25 来源:亿速云 阅读:101 作者:清晨 这篇文章将为大家详细讲解有关python数据类型强制转换案例,小编觉得挺实 ...
- Java第二章:数据类型和运算符
今天刚上课,杨老师讲了进制之间的相互转换:16进制:1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.已经掌握,就一笔带过! 十进制整数,如:99, -500, 0 八进制整数,要求以 0 ...
- js数据类型强制转换--转换为String
强制类型转换 -指的是将一个数据类型转换为其他数据类型 -类型转换主要是指,将其他的数据类型,转换为 String Number Boolean 将其他数据转换为S ...
- JAVA 数据类型强制转换详解
JAVA 数据类型转换(强制类型转换) 强制类型转换 将 取值范围大的类型 强制转换成 取值范围小的类型 特点 : 代码需要进行特殊的格式处理, 不能自动完成 转换格式 // 范围小的类型 范围小的变 ...
- Java中数据类型 + 强制转换
数据类型有: 数据类型 字节数 默认值 包装类 案例 byte 1字节 0 Byte byte b =10; short 2字节 0 Short short s=10; int 4字节 ...
- java2实用教程--第二章基本数据类型与数组
基本数据类型--浮点类型 public class Example2_1 {public static void main (String args[]) {char chinaWord = '好', ...
- 第二章 变量 数据类型 运算符
一. 1.Java常用数据类型 整型 int int i=1; 双精度浮点型 double double n=1.0; 字符型 char char g='女'; 字符串 ...
最新文章
- shell awk实战
- Datawhale厦门大学分享记录!
- JAVA wait(), notify(),sleep具体解释
- 使用Pycharm创建一个Django项目
- DataTables中给某列添加样式
- 通过计算机二级考试的计划,如何轻松通过国家计算机二级考试
- SCCM 2007 R2部署、操作详解系列之部署篇
- 董明珠炮轰国产车的创始人不开自己生产的车,事实果真如此吗?
- 使用logminer分析日志文件
- Xamarin组件包 Xamarin.ToolKit
- 【代码笔记】iOS-播放从网络上下载的语音
- java之代理设计模式
- AKKA HTTP 简单示例
- 毕业设计之时钟模块设计DS1302
- python qq群聊机器人_群聊太多?三步教你用 Python 自动监听转发群消息
- C++ 侯捷系列视频汇总
- Android程序反破解技术
- 开发者的拯救者还是掘墓人?解密低代码开发平台
- 简述计算机主板的主要品牌,(品牌管理)计算机主板品牌介绍(9页)-原创力文档...
- Campus Talking 小记(3)
热门文章
- 本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?
- 在StackBlitz上进行rxjs编程练习
- rxjs of操作符生成的Observable对象的执行详细分析
- Angular应用里的Template Reference变量
- Reuse library debug in Chrome - phase2 handle success response (2)
- why in GM0 the extAddTo Controller is not loaded
- Mock server的实现 - run Fiori application using mock data in offline mode
- sales organization mapping logic debug
- Text determination debug
- github image标签转markdown工具源代码