zoukankan      html  css  js  c++  java
  • JAVA学习笔记

    一.标识符

      • 在程序中自定义的一些名称
      • 由26个英文字母的大小写,数字,_$组成
      • 定义合法标识符的规则:
      1. 不能以数字开头
      2. 不能使用关键字
      • java严格区分大小写
      • 注意:在起名字时,为了提高阅读性,必须得起得有意义。

    二.关键字

    被赋予了特殊java含义的单词。

    • 关键字全都是小写

    捕获

    三.注释

    1.行注释:使用 // 来注释一行文字或代码。

    //这是行注释的内容

    2.块注释: 块前使用 /* ,块后使用 */ 包裹住要注释的块内容

    /*
    这是块注释
    这是块注释
    */

    3.文档注释:文档前使用 /** ,文档后使用 */ 包裹文档注释的内容。

    /**
    这是文档注释
    */

    注释的作用:

    • 注解说明程序
    • 调试程序

    四.常量和变量

    1.常量:

    • 常量表示不能改变的数值。代码中直接出现的值。
    • java中常量的分类:
    1. 整数常量。所有整数
    2. 小数常量。所有小数
    3. 布尔常量,true或false
    4. 字符常量。将一个符号,数字或字母用单引号(’’)标识
    5. 字符串常量。将一个或多个数字,符号或字母用双引号(””)标识
    6. null常量,只有一个值 即 null,表示空

    2.变量:

      • 变量的概念:
      1. 内容中的一个存储区域
      2. 该区域有自己的名称(变量名)和类型(数据类型)
      3. 该区域的数据可以在用一类型范围内不断变化
      • 为什么要定义变量:

                          用来不断的存放同一类型的常量,并可以重复利用

      • 使用变量应注意的问题:
      1. 变量的作用范围(一对{}之间)
      2. 初始化值
      • 定义变量的格式:
      1. 数据类型  变量名 = 初始化值
      2. 注意:格式是固定的

    java是强类型语言,对每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的区域。

    捕获

    整数默认:int  小数默认:double

    取值范围:

    byte : -128~127   , 1个字节

    short: -2^15~2^15-1 ,2个字节

    int : -2^31~2^31-1  ,4个字节

    long:-2^63~2^63-1  , 8个字节

    float : 4个字节

    double: 8个字节

    char: 0~65535, 2个字节

    变量的定义:

    复制代码
    复制代码
    byte b = 3;
    short s = 4000;
    int x = 12;
    long l = 1234567890123l;
    
    float f = 2.3f;
    double d = 2.3;
    
    char ch = 'a';
     
    boolean bl = true;
    复制代码
    复制代码

    3.类型提升和强制类型转换

    整数的类型提升和强制类型转换:

    类型提升,如:

    int a = 12;
    byte b = 3;
    
    a = a + b;

    运算过程:a+b时,由于a为4个字节,b为1个字节,在运算时,java会自动类型提升,并且以a为主,即把b转换为4个字节,前三个字节全为0,再进行相加,结果为4个字节,最后我结果赋值给a。

    强制类型转换,如:

    int a = 12;
    byte b = 3;
    
    b = (byte)(a + b);

    运算过程:和上面一样,a+b的结果为4个字节,不能直接赋值给byte类型的b,需要进行强制类型转换,将结果的第一个字节保留后赋值给byte类型的b。要对整数进行强制类型转换,必须确保要转换的值在byte范围之内,否则后丢失数据。

    注意:字符型数据和int类型数据运算时,取字符类型数据的Ascii码再和这个int数据运算,结果为int数据。


    左侧拥抱到这里,我有了一个疑问:在定义和初始化byte类型数据时,byte b = 4; 4不是int类型数据吗?怎么不用强制类型转换,就可以把4赋值给byte类型的变量b。

    原因:java在运行byte b = 4这句代码时,编译器会自动判断4这个int型数据是否超过byte型数据所能表示的范围(-128~127)之内,如果4这个数在这个范围内,自动类型转换为byte数据,没有丢失数据;如果4这个数超出这个范围,编译就会报 可能丢失精度的错误。

    面试题:下面两个代码为什么出现不同的结果。

    1.

    byte b = 4;
    b = 3+7;
    
    System.out.println(b);

    2.

    复制代码
    复制代码
    byte b = 4;
    
    byte b1 = 3;
    byte b2 = 7;
    
    b = b1 + b2;
    
    System.out.println(b);
    复制代码
    复制代码

    结果:第一个代码运行不会报错,第二个会报b = b1 + b2 这句可能损失精度的错误。

    原因分析:第一个代码分析同上面疑问的原因,第二个,由于b1和b2是变量,编译器不确定它们的值会不会超出byte表示数据的范围。所以也就检查不了。第一个为常量,可以判断和检查3+7的结果有没有超出byte类型所表示的范围。

    联想:以下代码不会报错:

    复制代码
    复制代码
    int x ;
    
    int x1 = 100;
    int x2 = 98;
    
    x = x1 + x2;
    
    System.out.println(x);
    复制代码
    复制代码

    原因:int是整数的默认类型。就算这个结果超出了int数据表示的范围,底层也会进行强制类型转换,不管是不是损失精度。

  • 相关阅读:
    OCP-1Z0-053-V12.02-541题
    OCP-1Z0-053-V12.02-544题
    OCP-1Z0-053-V12.02-545题
    OCP-1Z0-053-V13.02-711题
    OCP-1Z0-053-V12.02-493题
    OCP-1Z0-053-V13.02-696题
    OCP-1Z0-053-V12.02-522题
    OCP-1Z0-053-V12.02-523题
    OCP-1Z0-053-V12.02-534题
    OCP-1Z0-053-V13.02-692题
  • 原文地址:https://www.cnblogs.com/WLCYSYS/p/9704335.html
Copyright © 2011-2022 走看看