• Java碎片化学习语法基础


    最后更新于:2022-01-24

    1. Java数据类型

    Java的数据类型分为2大类:

    • 基本数据类型
    • 引用数据类型

    1.1 Java 8种基本数据类型

    Java 8种基本数据类型可以分为3类:

    • 数字型:short,int,long,float,double
    • 字符:byte,char
    • 布尔:boolean

    数据类型根据【存储字节数】和【是否含有符号】,具有不同的取值范围

    类型 存储字节大小 最小值 最大值 默认值
    byte 8 -128 +127 0
    char 16 0 +65535 '\u0000'
    short 16 -32768 +32787 0
    int 32 -2147483648 +214783647 0
    long 64 -9,223,372,036,854,775,808 +9,223,372,036,854,775,807 0L
    float 32 1.4 E-45 3.402,823,5 E+38 0.0f
    double 64 4.9 E-324 1.797,693,134,862,315,7 E+308 0.0d
    boolean - - - false

    使用Java基本数据类型的常见错误:

    • 内存溢出错误
    • 赋值类型错误

    1.2 Java引用数据类型

    1.2.1 字符串

    Java字符串属于引用数据类型。

    字符串是由【零个】或者【多个字符】组成的【有限序列】。

    创建字符串

    String类型引导的变量,对变量记性字符串引用类型赋值,如

    String name = "";
    

    创建多行字符串

    使用三引号来创建多行字符串,也叫【文本块】,如:

    String str = """
        你好
        我好
        大家好
        """
    

    三引号引导的文本块时,三引号要与所包裹的字符串分行书写,否则语法错误

    字符串拼接

    使用加法符号+对字符串进行拼接操作

    只读特性

    字符串属于只读的量,拼接出来的字符串,也属于创建了新的字符串对象,而非改变原有的对象

    1.2.2 数组

    数组是相同类型的数据,按照顺序组成的一种引用数据类型。

    数组的声明

    两种方式声明一个Java数组:

    1. 方括号在数据类型后,DataType[] arrayName;
    2. 方括号在数组名称后,DataType arrayName[];

    DataType是数组要存放元素的数据类型,比如基本数据类型,arrayName是数组名称,遵守变量命名规范

    数组的创建

    数组的创建,需要先声明数组变量 ,然后用new关键字创建数组

    DataType[] arrayName;
    arrayName = new DataType[数组长度];
    

    也可以

    DataType[] arrayName = new DataType[数组长度];
    

    数组的初始化

    数组创建后,所有元素都初始化为元素类型的默认值。

    也可以通过【静态初始化】和【动态初始化】的方式,对数组元素进行初始化

    数组元素的索引

    通过数组名[下标]的方式,对数组元素进行索引。

    下标从0开始计数,且下标不能超过下标最大值

    数组元素修改

    通过索引数组元素,【动态初始化】的方式就能够修改数组元素

    数组长度

    数组对象内置属性length可以获取数组长度

    arrayName.length //数组长度
    

    因为数组具有一组元素,元素操作又基本相同,所以可以跟循环结构结合使用,使用循环对数组进行各种操作

    多维数组

    跟一维数组基本相同,只是下标数多了

    2.Java运算符

    运算表达式 由【操作数】和【操作符】组成。操作符也叫做运算符。

    Java的运算符号有6大类:

    • 算术运算符
    • 关系运算符
    • 逻辑运算符
    • 赋值运算符
    • 位运算符
    • 其他运算符

    2.1 算术运算符

    算术运算符包括5类运算,7个运算符

    • 加: + ++
    • 减:- --
    • 乘:*
    • 除:/
    • 余:%

    2.2 关系运算符

    关系运算,也是比较运算,包括3类运算,6个运算符

    • 等于/不等于 ==/!=
    • 大于/大于等于 >/>=
    • 小于/小于等于 </<=

    大于、大于等于,小于,小于等于,比较的只能是基本数据类型,而等于,不等于既可以比较基本数据类型,也可以比较引用数据类型

    2.3 逻辑运算符

    逻辑运算就是【与】【或】【非】的计算

    • 逻辑【与】:&&,当且仅当两个操作数都为真,条件才为真
    • 逻辑【或】:||,有一个为真,条件就为真
    • 逻辑【非】:!,反转逻辑状态

    逻辑运算有个短路运算行为,也就是只有在需要的时候才会进行第二个操作数的真假判断

    2.4 赋值运算符

    赋值运算有5个运算符:

    • =
    • +=
    • -=
    • *=
    • /=

    =是直接赋值,其他操作是左边操作数和右边操作数,先进行算术运算,然后赋值给左边操作数

    2.5 位运算符

    Java提供位运算符,主要有7个运算符

    • 按位【与】:&,相对应位都是1,结果是1;否则结果是0
    • 按位【或】:|,相对应位都是0,结果为0;否则结果是1
    • 按位【异或】:,相对应位值相同,结果位0,否则位1
    • 按位【取反】:~,按位反转操作数的每一位,0变为1,1变为0
    • 左位移:<<,左操作数按位左移右操作数指定的位数
    • 右位移:>>,左操作数按位右移右操作数指定的位数
    • 零填充右移:>>>,左操作数按右操作数指定的位数右移,移动得到的空位补零

    2.6 其他运算符

    2.6.1 条件运算符

    也叫三元运算符。

    变量 = (布尔表达式)?值1:值2
    

    如果布尔表达式为真,就把值1赋值给变量;如果布尔表达式为假,就把值2赋值给变量

    2.6.2 instanceof运算符

    类型比较运算。检查对象是否是一个特定的类型(类,接口)

    boolean VarBoolean = Var instanceof Type(class,interface)
    

    如果instanceof左侧的变量Var所指向的对象,是intanceof右侧的类或者接口的一个对象,那么结果VarBoolean为真,否则VarBoolean为假

    2.7 运算符优先级

    类别 操作数 关联性
    后缀操作 () [] . 左到右
    一元操作 ++ - ! ~ 右到左
    乘除余 */% 左到右
    加减 +- 左到右
    移位 >> >>> << 左到右
    关系 大于> 大于等于>= 小于< 小于等于<= 左到右
    相等不等 等于== 不等于!= 左到右
    位与 & 左到右
    位异或 ^ 左到右
    位或 | 左到右
    && 左到右
    | 左到右
    条件 ?: 右到左
    赋值 = += -= *= /= %= >>= <<= &= ^=

    3.Java表达式,返回值,语句块

    程序源码由多条语句或者多个语句块组成。而语句由表达式和语句分隔符组成。

    表达式由数字,运算符,数字分组符号(括号),自有变量,约束变量等能求得数值的有意义的排列组合构成。

    约束变量是表达式中已经被指定的数值,而自有变量则可以在表达式之外另行指定数值

    4.语句控制结构

    4.1 条件语句

    条件语句通过判断给定的条件的真假,来控制程序的执行。

    4.1.1 if引导条件语句

    由if引导的条件语句,实际上的逻辑是:对if后面括号内部的表达式进行计算,得到的表达式的结构如果不为0,或者不为false,就执行花括号内部的语句

    这个表达式可以是:布尔值,布尔运算,条件表达式,最后返回一个真值,if对这个真值进行判断,不为0或者不为false,则执行花括号内部语句

    if (表达式){
        当条件成立时,要执行的语句
    }
    

    if语句根据【特殊情况】【互斥情况】【多种情况】分为几种结构,包括if语句的嵌套

    //特殊情况
    if (表达式){
    	要执行语句
    }
    //互斥情况
    if (表达式){
        要执行的语句
    }
    else {
        要执行的语句
    }
    //多种情况
    if (表达式) {
        要执行的语句
    }
    else if (表达式) {
        要执行的语句
    }
    else {
        要执行的语句
    }
    //嵌套情况
    if (表达式){
        if (表达式) {
            要执行的语句
        }
        else {
            要执行的语句
        }
    }
    

    4.1.2 switch引导条件语句

    switch效果等同于if引导的【多种情况】,其结构如下:

    switch (变量) {
            case 值1:
                要执行的语句
                break;
            case 值2:
                要执行的语句
                break;
            default:
            	要执行的语句;
    }
    

    switch后面的变量,其类型可以为:byte,short,int,char,或者String

    4.2 循环语句

    4.2.1 while循环

    while (表达式){
        要执行的语句
    }
    

    while首先判断表达式的计算结果是否为true,如果是true,就执行花括号内部的语句,否则不执行语句

    4.2.2 do...while循环

    do{
        要执行的语句
    }while(表达式)
    

    无论while后面的表达式是否为true,都要先执行一下do花括号内部的语句

    4.2.3 for循环

    for (变量声明;条件表达式;迭代语句){
        要执行的语句
    }
    

    for循环属于一种遍历。在for后面的括号内部,由三个语句:

    • 变量声明语句
    • 条件表达式
    • 迭代语句

    for无条件遍历

    fot(;;){
        要执行的语句
    }
    

    4.2.4 for each循环

    4.2.5 break和continue打破循环

    两者都可以用来打破循环,区别在于:

    • break 跳出循环语句块,执行循环语句块以后的语句
    • continue跳过当次循环要执行的语句,继续执行下一次循环
  • 相关阅读:
    吴裕雄--天生自然C++语言学习笔记:C++ 引用
    吴裕雄--天生自然C++语言学习笔记:C++ 指针
    吴裕雄--天生自然C++语言学习笔记:C++ 字符串
    吴裕雄--天生自然C++语言学习笔记:C++ 数组
    吴裕雄--天生自然C++语言学习笔记:C++ 数字
    吴裕雄--天生自然C++语言学习笔记:C++ 函数
    吴裕雄--天生自然C++语言学习笔记:C++ 判断
    HiHoCoder1671 : 反转子串([Offer收割]编程练习赛41)(占位)
    HihoCoder1670 : 比赛日程安排([Offer收割]编程练习赛41)(模拟)
    POJ3417Network(LCA+树上查分||树剖+线段树)
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/15838981.html
Copyright © 2020-2023  润新知