java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换
java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换
一、字符串与其他类型连接
public class DemoString{
public static void main(String[] args){
System.out.println(5 + 5 + " 5 + 5 = " + 5 +5 );
}
}
输出
out: 105 + 5 55
why?
自左向右运算,+号有字符串参与的话就是连接的作用,因为他没法直接运算. 任何类型和字符串相加都会变成字符串类型 字符串就相当于生化危机中的僵尸,碰到谁就把谁感染成僵尸
二、类型转换之自增自减和赋值
1. 类型转换易错点:
public class Demo01{
public static void main(String[] args){
short s = 1;
s = s + 1;
System.out.println(s);
}
}
输出:
out:
Demo01.java:4: 错误: 不兼容的类型: 从int转换到short可能会有损失
s = s + 1;
^
1 个错误
why?
char/ short/byte类型的数,参与运算时,自动转换为int类型
2. 自增自减类型不发生转换:
public class Demo01{
public static void main(String[] args){
short s = 1;
s++;
System.out.println(s);
}
}
输出:
out:
2
3. 赋值运算类型内部转换:
public class Demo01{
public static void main(String[] args){
short s = 1;
s+=1;
System.out.println(s);
}
}
输出:
out:
2
why?
s += 1; ===> s = short(s+1)
分析: s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围
大的类型赋值到取值范围小的类型。但是, s=s+1进行两次运算 , += 是一个运算符,只运算一次,并带有强制转换的特点,
也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过,运行结果是2.
对右侧的变量表达式,整体进行强制类型转换
java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换的更多相关文章
- 关于java中Stream理解
关于java中Stream理解 Stream是什么 Stream:Java 8新增的接口,Stream可以认为是一个高级版本的Iterator.它代表着数据流,流中的数据元素的数量可以是有限的, 也可 ...
- 在JAVA中怎么比较Double类型数据的大小
在JAVA中怎么比较Double类型数据的大小 我来答 浏览 33044 次 3个回答 #活动# “双11”答题活动,奖励加码!最高得2000元购物礼金! pollutedair 2015- ...
- 理解Java中的协变返回类型
在面向对象程序设计中,协变返回类型指的是子类中的成员函数的返回值类型不必严格等同于父类中被重写的成员函数的返回值类型,而可以是更 "狭窄" 的类型. Java 5.0添加了对协变返 ...
- 从源代码的角度聊聊java中StringBuffer、StringBuilder、String中的字符串拼接
长久以来,我们被教导字符串的连接最好用StringBuffer.StringBuilder,但是我们却不知道这两者之间的区别.跟字符串相关的一些方法中总是有CharSequence.StringBuf ...
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...
- java中public static void main(String[] args)中String[] args代表什么意思?
这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解为 ...
- Java中equal和==区别及String创建过程
Java中equal和==区别 1.起因 在一段Java代码中,使用了两种实现方式. //第一种命令行输入 int main (String[] args) { if(args[0] == " ...
- JAVA中Integer.valueOf, parsetInt() String.valueOf的区别和结果
先来看段代码 public class IntegerDemo { public static void main(String[] args) { String num = null; System ...
- Java中包装类型和基本类型的使用场景(什么时候使用包装类型)(转)
说明:最简单的理解,基本类型有默认值,而包装类型初始为null.然后再根据这两个特性进行分业务使用,在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型. Java语言提供 ...
随机推荐
- IdentityServer4源码解析_4_令牌发放接口
目录 identityserver4源码解析_1_项目结构 identityserver4源码解析_2_元数据接口 identityserver4源码解析_3_认证接口 identityserver4 ...
- JDBC(四)----数据库连接池
## 数据库连接池 * 概念:其实就是一个容器(集合) * 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后会将连接对象归还给容 ...
- 【翻译】如何使用 OpenVINO 来优化 OpenCV
本文翻译自 Vishwesh Shrimali 的 "Using OpenVINO with OpenCV" 原文链接: https://www.learnopencv.com/ ...
- 强化学习之四:基于策略的Agents (Policy-based Agents)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- go语言系列-从零到数据类型的基本介绍
视频资源:b站UP主v若水若水的尚硅谷go视频 不动笔墨不读书 ,虽然我有全套视频和笔记 还是自己动点笔墨 因为在19年下半年大致学过go语言 所以这么计划:一个星期拿下基础 一个星期拿下框架 两个星 ...
- .NET Core技术研究-配置读取
升级ASP.NET Core后,配置的读取是第一个要明确的技术.原先的App.Config.Web.Config.自定义Config在ASP.NET Core中如何正常使用.有必要好好总结整理一下,相 ...
- OpenCV-Python 模板匹配 | 三十一
目标 在本章中,您将学习 使用模板匹配在图像中查找对象 你将看到以下功能:cv.matchTemplate(),cv.minMaxLoc() 理论 模板匹配是一种用于在较大图像中搜索和查找模板图像位置 ...
- coding++:Spring IOC/DI 实现原理
什么是 SpringIOC: spring ioc 指的是控制反转,IOC容器负责实例化.定位.配置应用程序中的对象及建立这些对象间的依赖.交由Spring容器统一进行管理,从而实现松耦合. “控制反 ...
- 添加属于自己的python模块空间
在我们学习python的过程中会遇到很多时候,我们需要自己曾经写过的模块,它可能是一个函数或者其他的东西,,,, 下面是我的解决过程,如果你像将自己建立的文件夹当作你存放自己写的模块的地方,你需要将你 ...
- 白话web安全
伤心往事 梦回大二,那时候沉迷于毒奶粉,甚至国庆都在宿舍与毒奶粉共同度过,但是却发生了一件让我迄今难忘的事情~ 我新练的黑暗武士被盗了!!!干干净净!!! 虽然过了好久了,但是记忆犹新啊,仿佛发生在昨 ...