zoukankan      html  css  js  c++  java
  • JavaSE总结(二)——语言基础

    一、注释

    在java中,有3种标记注释的方式。

    1.1 单行注释

    //单行注释内容
    

    1.2 多行注释

    /*
    多行注释内容
    多行注释内容
    多行注释内容
    多行注释内容
    */ 
    

    1.3 文档注释

    /**
     * 类注释
     *
     * @author vivfeng
     */
    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello World");
        }
    }
    

    二、关键字

    2.1 总览

    访问控制

    private

    protected

    public

               

    类,方法和变量修饰符

    abstract

    class

    extends

    final

    implements

    interface

    native

    new

    static

    strictfp

    synchronized

    transient

    volatile

             

    程序控制

    break

    continue

    return

    do

    while

    if

    else

    for

    instanceof

    switch

    case

    default

               

    错误处理

    try

    catch

    throw

    throws

             

    包相关

    import

    package

                 

    基本类型

    boolean

    byte

    char

    double

    float

    int

    long

    short

    null

    true

    false

                 

    变量引用

    super

    this

    void

               

    保留字

    goto

    const
     

                 
    ### 2.2 含义
    关键字 含义
    abstract 表明类或者成员方法具有抽象属性
    assert 用来进行程序调试
    boolean 基本数据类型之一,布尔类型
    break 提前跳出一个块
    byte 基本数据类型之一,字节类型
    case 用在switch语句之中,表示其中的一个分支
      
    catch 用在异常处理中,用来捕捉异常
    char 基本数据类型之一,字符类型
    class
    const 保留关键字,没有具体含义
    continue 回到一个块的开始处
    default 默认,例如,用在switch语句中,表明一个默认的分支
    do 用在do-while循环结构中
    double 基本数据类型之一,双精度浮点数类型
    else 用在条件语句中,表明当条件不成立时的分支
    enum 枚举
    extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
    final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
    finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
    float 基本数据类型之一,单精度浮点数类型
    for 一种循环结构的引导词
    goto 保留关键字,没有具体含义
    if 条件语句的引导词
    implements 表明一个类实现了给定的接口
    import 表明要访问指定的类或包
    instanceof 用来测试一个对象是否是指定类型的实例对象
    int 基本数据类型之一,整数类型
    interface 接口
    long 基本数据类型之一,长整数类型
    native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
    new 用来创建新实例对象
    package
    private 一种访问控制方式:私用模式
    protected 一种访问控制方式:保护模式
    public 一种访问控制方式:共用模式
    return 从成员方法中返回数据
    short 基本数据类型之一,短整数类型
    static 表明具有静态属性
    strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
    super 表明当前对象的父类型的引用或者父类型的构造方法
    switch 分支语句结构的引导词
    synchronized 表明一段代码需要同步执行
    this 指向当前实例对象的引用
    throw 抛出一个异常
    throws 声明在当前定义的成员方法中所有需要抛出的异常
    transient 声明不用序列化的成员域
    try 尝试一个可能抛出异常的程序块
    void 声明当前成员方法没有返回值
    volatile
      
    表明两个或者多个变量必须同步地发生变化
    while
      
    用在循环结构中 

    三、常量与变量

    3.1 常量

    在 Java中,利用关键字 final指示常量。例如:

    final int A = 1;
    

    关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上, 常量名使用全大写。

    3.2 变量

    在 Java中,每个变量都有一个类型。在声明变量时,变量的类型位于变量名之前。例如:

    int a;
    long b;
    String s;
    

    变量名必须是一个以字母开头并由字母或数字构成的序列。另外,不能使用 Java 保留字作为变量名。

    四、运算符

    4.1 算术运算符

    运算符 描述 例子
    + 加法:相加运算符两侧的值 A + B 等于 30
    - 减法:左操作数减去右操作数 A – B 等于 -10
    * 乘法:相乘操作符两侧的值 A * B等于200
    / 除法:左操作数除以右操作数 B / A等于2
    取余:左操作数除以右操作数的余数 B%A等于0
    ++ 自增:操作数的值增加1 B++ 或 ++B 等于 21
    -- 自减:操作数的值减少1 B-- 或 --B 等于 19

    4.2 关系运算符

    运算符 描述 例子
    == 检查如果两个操作数的值是否相等,如果相等则条件为真。 (A == B)为假。
    != 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) 为真。

    |检查左操作数的值是否大于右操作数的值,如果是那么条件为真。| (A > B)为假。
    < |检查左操作数的值是否小于右操作数的值,如果是那么条件为真。| (A <B)为真。
    = |检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 |(A >= B)为假。
    <= |检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 |(A <= B)为真。

    4.3 位运算符

    运算符 描述 例子
    如果相对应位都是1,则结果为1,否则为0 (A&B)得到12,即 0000 1100
    | 如果相对应位都是0,则结果为0,否则为1 (A | B)得到61,即 0011 1101
    ^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
    按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即 1100 0011
    << 按位左移运算符。左操作数按位左移右操作数指定的位数。 (A << 2)得到240,即 1111 0000

    |按位右移运算符。左操作数按位右移右操作数指定的位数。 |(A >> 2)得到15,即 0000 1111

    |按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 |(A>>>2)得到15,即 0000 1111

    4.4 逻辑运算符

    运算符 描述 例子
    && 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
    || 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A || B)为真。
    称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B) 为真。

    4.4 赋值运算符

    运算符 描述 例子
    = 赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
    += 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C += A等价于C = C + A
    -= 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C -= A等价于C = C - A
    *= 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C *= A等价于C = C * A
    /= 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C /= A等价于C = C / A
    %= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C %= A等价于C = C%A
    <<= 左移位赋值运算符 C <<= 2等价于C = C << 2

    = |右移位赋值运算符| C >>= 2等价于C = C >> 2
    &= |按位与赋值运算符| C&= 2等价于C = C&2
    ^= |按位异或赋值操作符| C ^= 2等价于C = C ^ 2
    |= |按位或赋值操作符| C |= 2等价于C = C | 2

    4.5 条件运算符(?:)

    条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

    int a = 1;
    int b = 2;
    boolean f = a >= b ? true : false;//f为false
    

    五、数据类型

    5.1 基本数据类型

    /* byte
     * 存储需求:1字节
     * 取值范围:-128 ~ 127
     * 默认值:0
     * */
    byte num1 = 100;
    
    /* short
     * 存储需求:2字节
     * 取值范围:-32,768 ~ 32,767
     * 默认值:0
     * */
    short num2 = 10000;
    
    /* int
     * 存储需求:4字节
     * 取值范围:-2,147,483,648 ~ 2,147,483,647
     * 默认值:0
     * */
    int num3 = 1_000_000_000;
    
    /* long
     * 存储需求:8字节
     * 取值范围:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
     * 默认值:0L
     * */
    long num4 = 1_000_000_000_000_000_000L;
    
    /* float
     * 存储需求:4字节
     * 有效位数:6 ~ 7位
     * 默认值:0.0F
     * */
    float num5 = 1.1F;
    
    /* double
     * 存储需求:8字节
     * 有效位数:15位
     * 默认值:0.0D
     * */
    double num6 = 2.0D;
    
    /* boolean
     * 存储需求:JVM规范中,boolean变量作为int处理,也就是4字节
     * 取值范围:只有两个取值,即 true 和 false
     * 默认值:false
     * */
    boolean k = true;
    
    /* char
     * 存储需求:2字节
     * 取值范围:0~65535
     * */
    char c = 'a';
    

    5.2 引用数据类型

    /*
     * 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。
     * 这些变量在声明时被指定为一个特定的类型,比如 String 等。
     * 变量一旦声明后,类型就不能被改变了。
     * 对象、数组都是引用数据类型。
     * 所有引用类型的默认值都是 null。
     */
    String string = null;
    string = new String("aaaaa");
    

    六、大数值

    如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:Biglnteger和 BigDecimaL,这两个类可以处理包含任意长度数字序列的数值。
    BigInteger类实现了任意精度的整数运算,BigDecimal类实现了任意精度的浮点数运算。

    //使用静态的 valueOf方法可以将普通的数值转换为大数值
    BigInteger bigA = BigInteger.valueOf(5L);
    BigInteger bigB = BigInteger.valueOf(10L);
    BigInteger bigC = null;
    //加
    bigC = bigA.add(bigB);
    //减
    bigC = bigA.subtract(bigB);
    //乘
    bigC = bigA.multiply(bigB);
    //除
    bigC = bigA.divide(bigB);
    //取余
    bigC = bigA.mod(bigB);
    

    七、数组

    数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。在声明数组变量时, 需要指出数组类型 (数据元素类型紧跟 [] ) 和数组变量的名字。一旦创建了数组,就不能再改变它的大小。

    7.1 一维数组

    //静态初始化
    //静态初始化的同时就为数组元素分配空间并赋值
    int[] array1 = {1, 2, 3, 4};
    
    //动态初始化
    int[] array2 = new int[4];
    array2[0] = 1;
    array2[1] = 2;
    array2[2] = 3;
    array2[3] = 4;
    

    7.2 二维数组

    //静态初始化
    int[][] array3 = {{1, 2}, {2, 3}, {4, 5}};
    
    //动态初始化
    int[][] array4 = new int[2][3];
    array4[0][0] = 12;
    array4[0][1] = 34;
    array4[0][2] = 93;
    array4[1][0] = 12;
    array4[1][1] = 34;
    array4[1][2] = 93;
    

    7.3 遍历数组

    //for循环
    for (int i = 0; i < array1.length; i++) {
        System.out.println(array1[i]);
    }
    //for each循环
    for (int i : array1) {
        System.out.println(i);
    }
    

    八、控制流程

    8.1 条件分支

    int n = 19;
    if (n < 10) {
        System.out.println(n + " < 10");
    } else if (n < 50) {
        System.out.println("10 < " + n + " < 50");
    } else {
        System.out.println("50 < " + n);
    }
    

    8.2 开关分支

    int n = 1;
    switch (n) {
        case 1:
            System.out.println("n = 1");
            break;
        case 2:
            System.out.println("n = 2");
            break;
        case 3:
            System.out.println("n = 3");
            break;
        default:
            System.out.println("n未知");
            break;
    }
    

    8.3 循环

    Integer[] integers = new Integer[5];
    integers[0] = 0;
    integers[1] = 1;
    integers[2] = 2;
    integers[3] = 3;
    integers[4] = 4;
    //for循环
    for (int i = 0; i < integers.length; i++) {
        System.out.println(integers[i]);
    }
    //for each循环
    for (Integer integer : integers) {
        System.out.println(integer);
    }
    //while循环
    int j = 0;
    while (j < integers.length) {
        System.out.println(integers[j]);
        j++;
    }
    //do while循环
    int m = 0;
    do {
        System.out.println(integers[m]);
        m++;
    } while (m < integers.length);
    
  • 相关阅读:
    使用树莓派打造一个音乐播放器
    关于ESP8266 NodeCMU固件无法刷入新代码的解决方法
    推荐一个好用的免费开源的笔记本软件CherryTree
    忘记数据库密码?通过Navicat找回!!
    Kettle删除日志文件
    windows下解决10点前生成时间命名的文件无效问题
    windows下备份Linux服务器上的MySQL
    Windows下安装mysql
    【EXCEL】按天计算,分摊到每年的费用金额,只用内置函数 无需编写VB
    windows 7 安装visual studio 2019 闪退问题解决
  • 原文地址:https://www.cnblogs.com/vivfeng/p/10048363.html
Copyright © 2011-2022 走看看