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)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...
随机推荐
- 【转载】C++ vector的用法
http://www.cnblogs.com/Nonono-nw/p/3462183.html
- 小程序图片转Base64
在小程序中,有些业务要用到 图片的 base64 wx.chooseImage({ success: res => { wx.getFileSystemManager().readFile({ ...
- [物理学与PDEs]第3章第1节 等离子体
1. 磁流体力学研究等离子体这种导电流体在电磁场中的运动. 2. 任何物质由于 $T, p$ 等条件的不同而可以处于固态.液态.气态 (常见的三种聚集态) 或等离子体. 3. 等离子体就是电离气 ...
- tangent space与object space
3d渲染每个网格(Mesh)的面都可配一个材质(Material),要想在一个面上显示出更多的细节,除了模型做的更精致,还可以使用法线贴图(Normal Texture). 法线向量(Normal V ...
- sql 发送邮件
一.启用Database Mail XPs功能. 查看Database Mail XPs功能是否打开,从返回结果来看,value为0说明没有打开,注意SQL Mail XPs是SQL Server早期 ...
- 线程的start方法和run方法的区别
run方法及结果 public class MyThread extends Thread { @Override public void run() { System.out.println(&qu ...
- FTP:mget匹配文件名后下载
需求:从FTP某目录取每日构建的apk下载到本地 难点:文件名中有构建时间,而这个时间不算固定值,因此文件名不固定 解决方案:mget匹配文件名后下载 BAT版本: :: Filename:Proje ...
- bzoj2733 永无乡 splay树的启发式合并
https://vjudge.net/problem/HYSBZ-2733 给一些带权点,有些点是互相连通的, 然后给出2种操作,在两点间加一条边,或者询问一个点所在的连通块内的第k小值的编号 并查集 ...
- MariaDB:SSL配置
参考文章:https://blog.csdn.net/johnhill_/article/details/72831932 ,谢谢! 1.安装openssl 下载地址:http://slproweb. ...
- java接口自动化基础知识(一)
一.TestNG+MySQL+MyBatis实现对测试用例数据的读取 本篇文章讲解TestNG+MySQL+MyBatis+ExtentReports实现对测试用例数据的读取,下面放出所有配置文件的目 ...