Java基础


一. 注释

  • 什么是注释?

    • 注释是对代码进行解释说明的文字,方便自己与其他人对程序理解、查看。不会影响代码的正常执行。
  • 注释的分类:

    //  第一种:单行注释
    /**
        第二种:多行注释
    */
    /**
        第三种:多行注释
    **/
    
  • 快捷键:

    • Ctrl + / 单行注释
    • Ctrl + Shift + / 选中代码进行多行注释

二. 字面量

  • 什么是字面量?

    • 字面量就是数据在程序中的书写格式。
  • 字面量类型:

    字面量类型 说明 示例
    整数 不带小数的数字 666, 99
    小数 带小数的数字 15.6, -58.01
    字符串 必须使用双引号,内容可有可无 "你好呀"
    字符 必须使用单引号,有且仅能一个字符 '你' , 'A'
    布尔值 布尔值,表示真假 只有这两个值:true 、false
    空值 一个特殊的值,空值 值是:null

三. 变量

  • 什么是变量
    • 变量顾名思义,就是可以改变的量。
  • 变量的定义格式
    • 数据类型 变量名称 = 初始值;
    • 例: int age = 18;
  • 变定义有哪些特点?
    • 什么类型变量存储什么类型的字面值
    • 同一个范围变量名不能重复
    • 变量在使用时要有初始值
    • 变量存在访问范围

四. 数据类型

  • 数据类型的作用:

    • 数据类型就是约束变量存储数据的形式
  • 数据类型的分类?

    • 数据类型分为 基本数据类型引用数据类型
  • 基本数据类型:4大类8种

    • 整数
      • byte
        • 取值范围:-128~127 占用字节数:1
      • short
        • 取值范围:-32768~32767 占用字节数:2
      • int(默认)
        • 取值范围:-2147483648~2147483647 (10位数) 占用字节数:4
      • long
        • 取值范围:-9223372036854775808 ~ 9223372036854775807 (19位数) 占用字节数:8
    • 浮点数
      • float
        • 取值范围:1.401298e-45到3.402823e+38 占用字节数:4
      • double(默认)
        • 取值范围:4.9000000e-324 到1.797693e+308 占用字节数:8
    • 字符
      • char
      • 取值范围:0-65535 占用字节数:2
    • 布尔
      • boolean
      • 取值范围:true,false 占用字节数:1
  • 注意:

    • 如果希望随便写一个整数默认是long型的必须在数据后加L或者l表示
    • 如果希望随便写个小数是float类型的,必须在数据后加F或者f表示

五. ASCII 编码

  • ASCII (American Standard Code for Information Interchange) 美国信息交换标准编码,就是一套现代英语、数字、和其他西欧字符(不含中文)的编号规则。对如英文字符进行编号的规则,规定英文等字符在底层存储的二进制形式
  • 字符在计算机底层就是存储其编号的二进制形式
  • 常用字符对应十进制ASCII码
    • A => 65
    • a => 97
    • 0 => 48

五.关键字

  • Java自己保留的一些单词,作为特殊功能的,例如:public、class、byte、short....

六. 标识符

  • 标志符就是由一些字符、符号组合起来的名称,用于给类,方法,变量等起名字的规矩
  • 标识符要求
    • 基本要求:由数字、字母、下划线(_)和美元符($)等组成
    • 强制要求:不能以数字开头、不能是关键字、区分大小写
  • 命名规范
    • 变量名称:满足标识符规则,建议全英文、有意义、首字母小写,满足“驼峰模式”,例如:int schoolName = "开心小学"。
    • 类名称: 满足标识符规则,建议全英文、有意义、首字母大写,满足“驼峰模式”,例如:HelloWorld.java。

七. 类型转换

  • 自动类型转换

    • 什么是自动类型转换?

      • 类型范围小的变量,可以直接赋值给类型范围大的变量
    • 为什么要进行自动类型转换?

      • 如果要让不同类型的数据一起参与运算,就需要这些数据类型之间相互转换
    • 如何进行自动类型转换?

      • 把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。例:

        double money = 15;
        System.out.println(money);  // 15.0
        
        byte a = 12 ;
        int b = a;
        System.out.println(b); // 12 
        
    • 表达式中的自动类型转换

      • 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算
      • 在表达式中,byte、short、char 是直接转换成int类型参与运算的
      • 表达式的最终结果类型由表达式中的最高类型决定
  • 强制类型转换

    • 为什么要进行强制类型转换?

      • 类型范围大的数据或者变量,不能直接 赋值类型范围小 的变量,会报错,所以比喻要进行强制类型转换
    • 如何进行强制类型转换?

      • 目标数据类型 变量名 = (目标数据类型) 值或者变量; 例:

        double num1 = 5.5;
        int num2 = (int) num1; // 将double类型的num1强制转换为int类型
        System.out.println(num2); // 输出5(小数位直接舍弃)
        
        
        // 注意:
        // 1. char类型转为int类型是按照ASCII码表对应的int值计算的。
        int a = 'a';
        System.out.println(a); // 将输出97
        
        // 2.整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
        byte a1 = 10;
        short a2 = 20;
        char a3 = 'a';
        int b = a1 +a2 +a3;
        System.out.println(b);   // 将输出 127
        
        // 3. boolean类型不能与其他基本数据类型相互转换
        
        

八. 运算符与表达式

  • 运算符就是对常量或者变量进行操作的符号

  • 用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式

  • 算术运算符

    符号 作用
    +
    -
    *
    /
    % 取余

    注意:整数操作只能得到整数,要想得到小数,必须有浮点数参与运算

  • 赋值运算符

    • 赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量

      符号 作用 说明
      = 赋值 a=10,将10赋值给变量a
      += 加后赋值 a+=b,将a+b的值给a
      -= 减后赋值 a-=b,将a-b的值给a
      *= 乘后赋值 a*=b,将a×b的值给a
      /= 除后赋值 a/=b,将a÷b的商给a
      %= 取余后赋值 a%=b,将a÷b的余数给a

      注意:扩展的赋值运算符隐含了强制类型转换

      short s = 10;
      // s = s + 10; //此行代码报错,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度
      
      s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);
      
  • 自增自减运算符

    符号 作用 说明
    ++ 自增 变量的值加1
    -- 自减 变量的值减1注意:
    • 注意:

      • ++和-- 既可以放在变量的后边,也可以放在变量的前边。

      • 单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。

      • 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。

      • 参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。

        int i = 10;
        i++; // 单独使用
        System.out.println("i:" + i); // i:11
        
        int j = 10;
        ++j; // 单独使用
        System.out.println("j:" + j); // j:11
        
        int x = 10;
        int y = x++; // 赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1
        System.out.println("x:" + x + ", y:" + y); // x:11,y:10
        
        int m = 10;
        int n = ++m; // 赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1
        System.out.println("m:" + m + ", m:" + m); // m:11,m:11
        
  • 关系运算符

    • 关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。关系运算符的结果都是boolean类型,要么是true,要么是false。

      符号 说明
      == a==b,判断a和b的值是否相等,成立为true,不成立为false
      != a!=b,判断a和b的值是否不相等,成立为true,不成立为false
      > a>b,判断a是否大于b,成立为true,不成立为false
      >= a>=b,判断a是否大于等于b,成立为true,不成立为false
      < a
      <= a<=b,判断a是否小于等于b,成立为true,不成立为false
  • 逻辑运算符

    • 逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。

      符号 作用 说明
      & 逻辑与 a&b,a和b都是true,结果为true,否则为false
      | 逻辑或 a|b,a和b都是false,结果为false,否则为true
      ^ 逻辑异或 a^b,a和b结果不同为true,相同为false
      ! 逻辑非 !a,结果和a的结果正好相反
  • 短路逻辑运算符

    • 在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算。

      符号 作用 说明
      && 短路与 作用和&相同,但是有短路效果
      || 短路或 作用和|相同,但是有短路效果
    • 逻辑与&,无论左边真假,右边都要执行。

    • 短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。

    • 逻辑或|,无论左边真假,右边都要执行。

    • 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。

    int x = 3;
    int y = 4;
    System.out.println((x++ > 4) & (y++ > 5)); // 两个表达都会运算
    System.out.println(x); // 4
    System.out.println(y); // 5
    
    System.out.println((x++ > 4) && (y++ > 5)); // 左边已经可以确定结果为false,右边不参与运算
    System.out.println(x); // 4
    System.out.println(y); // 4
    
  • 三元运算符

    • 语法格式: 关系表达式 ? 表达式1 : 表达式2;

    • 解释:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。

      举例:

      int a = 10;
      int b = 20;
      int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值
      

相关