【115天】尚学堂高琪Java300集视频精华笔记(7-8)

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【115天】尚学堂高琪Java300集视频精华笔记(7-8)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

【115天】尚学堂高琪Java300集视频精华(7-8)

第7集:基本数据类型、整数类型、进制转换、编程中的L问题

基本数据类型

  1. Java是强类型语言,每个变量都必须声明其类型。

  2. Java数据类型分两大类:基本数据类型(PRimITive data tyPE)和引用数据类型(reference data type)

  3. Java定义了3类8种基本数据类型

    1. 逻辑型——boolean

    2. 文本型——char

    3. 数值型——byteshortint、longfloatdouble

  4. Java引用数据类型的大小统一为4个字节,记录的是其引用对象地址。

    【115天】尚学堂高琪Java300集视频精华笔记(7-8)

    @H_406_42@

整数类型

  1. 整数用于表示没有小数点的数,它可以是负数。

    【115天】尚学堂高琪Java300集视频精华笔记(7-8)

  2. Java整型常量三种表示形式:

    1. 十进制

    2. 八进制:0开头

    3. 十六进制:0x或者0X开头

  3. 【拓展】区分整型变量和整型常量

    int a = 3;//a是整型变量,3是整型常量。 byte b = 3//b是整型变量,3是整型常量。

    参考资料1

    参考资料2

编程中的L问题

  1. Java语言的整型常量默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ ,如:

    long a = 55555555;//不出错,在int表示的范围内(21亿内)。 long b = 55555555555;//不加l出错,已经超过int表示的范围。报错。
  2. L问题:小写L容易与1混淆,尽量用大写。

  3. BigInteger、BigDecimal可分别用来算超出long、double的数。

  4. 转换二进制——Integer.toBinaryString(a);

  5. 十进制——Integer.parseint(a);

  6. 八进制——Integer.toOctalString(a);

  7. 十六进制的方法——Integer.toHexString(a);

     package com.test007;  public class TestDataType {     public static void main(String[] args){         int a = 10;         int a2 = 010;         int a3 = 0xf;         //byte b =200;// 报错:Type mismatch:cannot convert From int to byte         System.out.println(a);         System.out.println(a2);         System.out.println(a3);         System.out.println(Integer.toBinaryString(a));         System.out.println(Integer.toOctalString(a));         System.out.println(Integer.toHexString(a));         int a5 = 10;         long a6 = 200;         byte b2 = 100;//如果数据的大小没有超过byte/short/char的表述范围,则可以自动转型         long a7 = 11132311111L;         long l = 3;         long l2 = l+3;    //L问题     } } 

第8集:浮点数、浮点数误差问题

浮点数

  1. float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。

  2. double表示这种类型的数值精度是float类型的两倍,又被称作双精度,绝大部分应用程序都采用double类型。

  3. Java 浮点类型常量有两种表示形式:

    十进制数形式,例如: 3.14       314.0      0.314  科学记数法形式,如 314e2      314E2      314E-2   double f = 314e2; //314*10^2-->31400.0 double f2 = 314e-2; //314*10^(-2)-->3.14
  4. Float类型的数值有一个后缀F/f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D/d, 以明确其为double类型:

    【115天】尚学堂高琪Java300集视频精华笔记(7-8)

  5. 【拓展】数值型中byteshort、double、int声明时不用加后缀,不超过值范围即可,float和long需要。参考资料

浮点数误差问题

  1. 浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。

  2. 如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

    由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。

  3. 二进制浮点数不能精确的表示0.1,0.01,0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。

  4. 最好完全避免使用浮点数比较:

    float f = 0.1f; double d = 1.0/10; System.out.println(f==d);   //false   float d1 = 423432423f; float d2 = d1+1; if(d1==d2){     System.out.println("d1==d2"); }else{     System.out.println("d1!=d2"); } //输出结果为d1==d2,明显错误。
  5. 大数值:Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。

    package test008;  public class test008 {     public static void main(String[] args){                  double a = 3.14;         float b = 3.14F;//这个要加F,否则报错         byte c = 3;         short d = 3;         int e = 3;         long f = 3;         long g = 3333333333333L;//这个要加L,否则报错                  double a2 = 314e-2;         System.out.println(a2);                  float b2 = 0.1f;         double a3 = 1.0/10;         System.out.println(b2);         System.out.println(a3);         System.out.println(b2==a3);//false;         //输出结果:b2、a3均为0.1,但是b2不等于a3。     } }     

脚本宝典总结

以上是脚本宝典为你收集整理的【115天】尚学堂高琪Java300集视频精华笔记(7-8)全部内容,希望文章能够帮你解决【115天】尚学堂高琪Java300集视频精华笔记(7-8)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。