2.Java SE 基础语法

Java SE 基础语法

  • 访问修饰符
  • 关键字
  • 保留字
  • 标识符的使用
  • 数据类型
    • 基本数据类型间的运算规则(除了 Boolean 之外的七种)
    • 大数值
    • 包装类的使用
  • 进制
  • 控制流程语句
  • 运算符
  • 相关面试题:
    • switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
    • 用最有效率的方法计算 2 乘以 8
    • Math.round(11.5) 等于多少?Math.round(-11.5)等于多少
    • float f=3.4;是否正确
    • short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗
    • 在 Java 中,如何跳出当前的多重嵌套循环

访问修饰符

2.Java SE 基础语法_第1张图片

关键字

  1. 定义:被 Java 语言赋予特殊含义,用做专门用途的字符串(单词)
  2. 特点:所有字母都是小写
  3. 全部关键字:网上搜

保留字

  1. 现Java 版本尚未使用,但后面的版本可能会作为关键字用。
  2. 具体那些保留字:goto 、const
  3. 注意:自己命名标识符时要避免使用。

标识符的使用

  1. 由26个英文字母大小写,0-9,_ 或 $ 组成。
  2. 数字不可以开头
  3. 不能使用关键字和保留字,但是可以包含。
  4. Java 严格区分大小写,长度无限制,不能有空格。

数据类型

  1. 定义:Java 是强类型语言,对于每一种数据都定义了具体的数据类型,在内存分配了不同大小的内存空间。
  2. 分类:按数据类型分类2.Java SE 基础语法_第2张图片
  3. 取值范围计算:2^(多少byte*8bit - 1) - 1 === 2^(多少位-1)- 1
  4. 基本数据类型图:long 、 float 和 double 必须要有后缀2.Java SE 基础语法_第3张图片

基本数据类型间的运算规则(除了 Boolean 之外的七种)

  1. 自动转换类型:当容量小的数据类型转换为容量打的数据类型做运算时,结果自动提升为容量大的数据类型。
  2. 自动转换方式:byte、char、short - - > int - - > long - - > float - - > double。此时的容量大小是指表示数的范围的大和小。
  3. 强制转换:自动类型提升运算的逆运算。需要使用强转符:();注意:可能导致精度损失。
  4. 特别的 String:String 和 其他 种(包括 boolean)数据类型变量做运算,结果都是 String 类型,且只能用 ‘+’ 运算。
  5. 关于变量赋值:
    ① 如果变量是基本数据类型,此时赋值的是变量保存的数据值
    ② 如果变量是引用数据类型,此时赋值的是变量保存的地址值

大数值

如果基本的整型和浮点型精度不能满足要求,则可以使用 java.math 中的 BigInteger 和 BigDecimal;
BigInteger 实现了任意精度的整数运算。
BigDecimal 实现了任意精度的浮点数运算。
可以使用 BigInteger.valueOf 将整数类型转为 BigInteger。

int a = 100;
BigInteger test = BigInteger.valueOf(a);

BigInteger中不能使用+、-、*、/,只能使用add。

包装类的使用

  1. 引入包装类,为了使基本数据类型的变量具有类的特征。
  2. 基本数据类型 与 对应的包装类 :2.Java SE 基础语法_第4张图片
  3. 需要掌握的类型间的装换:(基本数据类型、String、包装类)
    2.Java SE 基础语法_第5张图片

进制

  1. 二进制:Ob/oB 开头;八进制:以数字 0 开头;十六进制:以Ox/oX 开头。
  2. 二进制的使用说明:
    ① 所有数字在计算机底层都以二进制形式存在。所有数值,不管正负,底层都以补码形式存在。
    ② 原码、反码、补码的说明:
    1)整数:三码合一:
    2)负数:
    原码:直接将一个数转换成二进制数。最高位是符号位。
    负数的反码:对原码按位取反,只有最高位(符号位)确定为1。
    负数的补码:其反码+1。
    3.进制之间的转换:2.Java SE 基础语法_第6张图片

控制流程语句

  1. break:跳出总上一层循环,结束当前循环体。
  2. continue:跳出本次循环,进入下一个循环条件。
  3. return:程序返回,不再执行下面的代码。

运算符

  1. 比较运算符:>== 和 != ,不仅可以用于基础数据之间,也可用在引用类型变量之间。还有instanceof,左边是对象,右边是类,对象是类本身或子类创造的对象,则返回 true,否则返回 false
  2. 逻辑运算符:& && | ||,前者都要比完,后者不用。
  3. 位运算:
    1)& 按位与,任何二进制位和0进行&运算,结果是0;和1进行&运算结果是原值。
    0&0=0; 0&1=0; 1&0=0; 1&1=1
    2)| 按位或,参加运算的两个数只要两个数中的一个为1,结果就为1。
    3)^ 按位异或,任何相同二进制位进行运算,结果是0;不相同二进制位运算结果是1。
    4)~ 取反,对位求反 1变0, 0变1
    5)>> 右移,被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,最高位补1。
    在一定范围内,每向右移1位,相当于 / 2
    6)<< 左移,空位补0,被移除的高位丢弃。在一定范围内,每向左移1位,相当于 * 2
    7)>>>,无符号右移

相关面试题:

switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上

在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从 Java5 开始,Java 中引入了枚举类型,expr 也可以是 enum 类型,从 Java 7 开始,expr 还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

用最有效率的方法计算 2 乘以 8

2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)。

Math.round(11.5) 等于多少?Math.round(-11.5)等于多少

Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加 0.5 然后进行下取整。

float f=3.4;是否正确

不正确。3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成 float f =3.4F;。

short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗

对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结果也是 int型,需要强制转换类型才能赋值给 short 型。

而 short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当于 s1 = (short(s1 + 1);其中有隐含的强制类型转换。

在 Java 中,如何跳出当前的多重嵌套循环

在循环语句前面定义一个符号,循环里面的 break 符号,即可跳出循环。

public static void main(String[] args) {
    ok:
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++) {
            System.out.println("i=" + i + ",j=" + j);
            if (j == 5) {
                break ok;
            }

        }
    }
}

参考:https://thinkwon.blog.csdn.net/article/details/104390612,https://www.bilibili.com/video/BV1Kb411W75N?from=search&seid=12153546638638215026&spm_id_from=333.337.0.0

你可能感兴趣的:(JavaSE,学习,java,开发语言,后端)