第一次写博客,有点陌生,哈哈。(本次博客取材于java核心技术卷(一))

(1)关于浮点数的问题。

        java中所有浮点数值计算都遵循IEEE754标准。有三种表示溢出和出错情况,分别为:

1 Double.POSITIVE_INFINITY 表示整无穷大。

2 Double.NEGATIVE_INFINITY表示负无穷大

3 Double.NaN

javase基础零碎杂集(一)

javase基础零碎杂集(一)

判断一个数是否等于NaN不能用==,只能用Double.isNaN(),而其他两个可以。

javase基础零碎杂集(一)

javase基础零碎杂集(一)

       整数被0除会产生一个异常,而浮点数被0除会得到NaN或无穷大。

javase基础零碎杂集(一)

javase基础零碎杂集(一)

浮点数在计算时会有舍入误差,如果不允许任何舍入误差,用BigDecimal。

javase基础零碎杂集(一)

javase基础零碎杂集(一)

(二)关于转义字符的问题

        Unicode转义序列会在解析代码前得到处理。所以注意每次\u的出现。

1.\u0022表示";所有"\u0022+\u0022"会被解析成""+"";

javase基础零碎杂集(一)

javase基础零碎杂集(一)

2.注释里\u后面一定要跟4个16进制数,否者会产生一个语法错误。

javase基础零碎杂集(一)

javase基础零碎杂集(一)

(三)关于switch case

case标签可以是

1  char byte short int 以及他们对应的封装类的引用类型。

2 枚举常量

3 从javase7开始,可以是String引用。

注意:第一点其实隐含了java的自动装箱/拆箱     

javase基础零碎杂集(一)

这里用到一个.class文件转.java文件的工具:Java Decompiler

反编译后:

javase基础零碎杂集(一)

枚举类型其实在编译时也转成整型来处理

javase基础零碎杂集(一)

反编译后:

javase基础零碎杂集(一)

(四)一些其他事项:

1 从javase7开始,可以用0b或者0B当前缀表示二进制数。

2 数字可以写成1_000_000形式,编译器会自动去掉这些下划线。

3 byte short char在运算时会自动转换成int

4 浮点型强制转换成整型会去掉小数部分,Math.round()会得到最接近给定浮点的整数,返回类型是long。

5 int x = 1;x+=3.5是合法的,相当于x=(int)(x+3.5);

6 >>会用符号位填充高位,>>>会用0填充高位,没有<<<

7 块(即复合语句)是指用一对大括号括起来的若干条简单的java语句,块确定了变量的作用域。

8 java的break可以带标签,比如

label:

  break label;

只能用来跳出语句块,不能用来跳入语句块。

9 java数组允许长度为0

javase基础零碎杂集(一)

javase基础零碎杂集(一)




相关文章:

  • 2021-04-23
  • 2021-12-31
  • 2021-09-02
  • 2021-07-06
  • 2022-01-19
  • 2021-05-26
  • 2021-11-30
猜你喜欢
  • 2021-12-18
  • 2021-09-18
  • 2021-12-13
  • 2021-08-24
  • 2021-11-02
  • 2021-12-25
  • 2021-08-09
相关资源
相似解决方案