Java 中关于基本数字类型的注意事项
局部变量需初始化才能访问
public void test() {
float n;
n = n + 1;
}
窄化导致自增异常
short i = 3;
i += 1; // 不提升 short i = 3;
i = i + 1; //错误,short 提升为 int
隐藏的窄化异常
float n =5; //5.0
float n =5.0; //报错,类型转换异常 (对于浮点数,默认为 double
提升不会发生自增异常,
float n = 3;
n = n + 1; //4.0
Math 的 round 方法并不是完全四舍五入。它的实现相当于
(int)Math.floor(a + 0.5f)
示例:
public void test() {
double f1 = Math.round(3.5);
double f2 = Math.round(-3.5);
System.out.println(f1);
System.out.println(f2);
}
// output:
4.0
-3.0
局部变量问题(方法栈空间的变量所指向的值会被复制一份到栈空间)
case class Person(name: String)
class MyClass {
var field: Person = Person("lisi")
def p1(): Unit = {
val field_ = field
println(field_)
changeField()
println(field_)
}
def p2(): Unit = {
println(field)
changeField()
println(field)
}
def changeField(): Unit = {
this.field = Person("wu")
}
}
object Test {
/**
* 单独运行 p1,输出:
* Person(lisi)
* Person(lisi)
*
* 单独运行 p2,输出
* Person(lisi)
* Person(wu)
*/
def main(args: Array[String]): Unit = {
val myClass = new MyClass()
// myClass.p1()
myClass.p2()
}
}
233
Java 中关于基本数字类型的注意事项的更多相关文章
- Java 中要将 String 类型转化为 int 类型
在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换. 例1: 1 2 3 4 5 6 S ...
- java操作Excel处理数字类型的精度损失问题验证
java操作Excel处理数字类型的精度损失问题验证: 场景: CELL_TYPE_NUMERIC-->CELL_TYPE_STRING--->CELL_TYPE_NUMERIC POI版 ...
- Java中String转换Double类型 Java小数点后留两位
Java中String转换Double类型 double num1 = 0.0; String qq = "19.987"; num1 = Double.valueOf(qq.to ...
- 在JAVA中怎么比较Double类型数据的大小
在JAVA中怎么比较Double类型数据的大小 我来答 浏览 33044 次 3个回答 #活动# “双11”答题活动,奖励加码!最高得2000元购物礼金! pollutedair 2015- ...
- java 中使用ajax调用后台方法注意事项
java 中使用ajax调用后台方法注意事项,后台方法一定要加@ResponseBody jQuery.validator.addMethod("checkRuleName",fu ...
- JAVA中的基本数类型据
一.基本类型 byte: java中最小的数据类型.1字节/8位.-128(2^7)~127(2^7-1),默认值0. short: 短整型,2字节/16位,取值范围-32768(--2^15)~3 ...
- java中字符串与数字的互相转换
import java.text.DecimalFormat; /* * String类中本身提供方法可以将几乎所有的基本类型转换为String类型 * sysout alt+/ 可以直接显示Syst ...
- Java中包装类型和基本类型的使用场景(什么时候使用包装类型)(转)
说明:最简单的理解,基本类型有默认值,而包装类型初始为null.然后再根据这两个特性进行分业务使用,在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型. Java语言提供 ...
- java 中的resultset的类型
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...
随机推荐
- Node.js实战项目学习系列(1) 初识Node.js
前言 一直想好好学习node.js都是半途而废的状态,这次沉下心来,想好好的学习下node.js.打算写一个系列的文章大概10几篇文章,会一直以实际案例作为贯穿的学习. 什么是node Node.js ...
- 报文段、协议、MAC地址
- WPF 窗口去除顶部边框(正宗无边框)
最近在做一个大屏展示视频图片的项目,功能并不复杂,半天的工作量吧,一开始同事采用的Unity3D进行开发,但是里面要播放4K视频,Unity 的短板就是视频的播放了,今晚就要交付了,我一早就来公司,决 ...
- Python爬虫基础之认识爬虫
一.前言 爬虫Spider什么的,老早就听别人说过,感觉挺高大上的东西,爬网页,爬链接~~~dos黑屏的数据刷刷刷不断地往上冒,看着就爽,漂亮的校花照片,音乐网站的歌曲,笑话.段子应有尽有,全部都过来 ...
- 【原创】Linux基础之iptables
iptables 1.4.21 官方:https://www.netfilter.org/projects/iptables/index.html iptables is the userspace ...
- 【原创】大数据基础之Hadoop(3)yarn数据收集与监控
yarn常用rest api 1 metrics # curl http://localhost:8088/ws/v1/cluster/metrics The cluster metrics reso ...
- springboot ****使用经验*******
目录 1. 返回时间格式化问题 2. springboot 中获取属性 3. SpringBoot中启动是忽略某项检测 4. 启动不开启安全校验 一返回时间格式化问题 在Spring Boot项目中 ...
- nginx+iis使用
一.nginx的介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 Nginx相关地址 源码:http ...
- iOS -- Effective Objective-C 阅读笔记 (6)
1: 在 既有类中使用 关联对象存放自定义数据 有时候需要在对象中存放相关信息, 这是我们经常会从对象所属的类中继承一个子类, 然后改用这个子类对象, 然而并非所有的情况下都能这么做, 有时候类的实 ...
- 克隆虚拟机+Linux互相登录+秘钥认证(四)
1.虚拟机右键管理_克隆 修改虚拟机名称后完成! 2.开机启动虚拟机 随时保存快照 3.开启两台虚拟机,进行互相登录切换!(W命令查看系统负载) 补充: IP登录: ssh IP: 例如:ssh 19 ...