2-1、基本语法


1、关键字和保留字

  • 1、关键字:被Java语言赋予了特殊含义,用作专门用途的字符串,特点是所有字母小写。
    Java 关键字

volatile:保证变量的内存可见性、禁止指令重排序

  • 2、保留字:现有 Java 版本未使用的关键字。

2、标识符

  • 1、标识符:凡是自己可以起名字的地方都叫标识符。例如:类名、变量名、方法名、包名、接口名等。
  • 2、命名规则
    • 由 26 个英文字母大小写,0-9 ,_或 $ 组成 数字不可以开头。
    • 不可以使用关键字和保留字,但能包含关键字和保留字。
    • Java 中严格区分大小写,长度无限制。
    • 标识符不能包含空格。
  • 3、命名习惯
    • 包名:多单词组成时所有字母都小写:xxxyyyzzz。
    • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz。
    • 变量名、方法名(驼峰法):多单词组成时,第一个单词首字母小写,第二个单词开始-每个单词首字母大写:xxxYyyZzz。
    • 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ。

3、变量

  • 1、变量的分类

1)存在的位置的不同:

  • 成员变量:(属性、Field)(存在于类内部,方法体的外部) 。
  • 局部变量:(方法体的内部、构造器的内部、代码块的内部、方法体或构造器的形参部分)。
    2)数据类型的不同:
    Java 数据类型
  • 2、基本数据类型

数值型:

  • 整型:byte(1 个字节)、short、int(默认值类型)、long(后缀是 l 或 L)。
  • 浮点型:float(后缀是 f 或 F)和 double(默认值类型)。
  • 布尔型:boolean (只有两个值:true 和 false,绝对不会取值为 null)。
  • 字符型:char(1 个字符)。
  • 3、引用数据类型

    • 类(比如:String 字符串类型)。
    • 接口。
    • 数组。
  • 4、变量的声明
    变量的类型 变量的名字 初始化值(显式的初始化、默认初始化)

    int i;
    i = j + 12;
    boolean b = false;
    String str = "atguigu";
    Customer c = new Customer();

注:变量必须先声明后使用,变量的作用域:一对{ }之间有效 初始化值。

  • 5、自动类型转化&强制类型转化(不包含 boolean 型,及 String 型)
    强制类型转化时,可能会损失精度。

4、进制转换

十进制、二进制、八进制、十六进制

  • 1、进制之间的转化:

会将-128 到 127 范围内的十进制转化为二进制 & 能将一个二进制数转换为十进制数(延伸:十进制、二进制、八进制、十六进制)。 对于几类基本类型的数据的某个具体值,能够用二进制来表示。同时,如果给出一个数据的二进制,要能够会转化为十进制!

  • 2、原码、反码、补码

正数:原码、反码、补码三码合一。
负数:原码、反码、补码的关系。负数在计算机底层是以补码的形式存储的。


5、运算符

  • 算术运算符&赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
    “&”和“&&”的区别:&:当左端为 false 时,右端继续执行&&:当左端为 false 时,右端不再执行。
    “|”和“||”的区别:|:当左端为 true 时,右端继续执行 ||:当左端为 true 时,右端不再执行
  • 2、位运算符
    << >> >>> & | ^ ~
  • 3、三元运算符
    三元运算符

6、流程控制

  • 1、if...else...
    f(表达式 1){
    //执行语句
    }else if(表达式 2){
    //执行语句
    }else{
    //执行语句
    }

    1.一旦执行条件判断语句,有且仅有一个选择“路径”里的代码块被执行。
    2.如果多条表达式间是“互斥”关系,彼此是可以调换顺序。如果多条表达式间存在“包含”关系,一定要将范围小的表达式写在范围大的表达式对应的语句的上面。
    3.选择判断语句可以“嵌套”。若执行语句只有一句,那么对应的一对{}可以省略。

  • 2、选择结构:switch-case
    1.结构
    2.表达式可以存放的数据类型:int byte short char String 枚举
    3.表达式存放是数值或者说是离散的点所代表的常量,绝对不是取值范围。
    3.default 是可选的。default 的位置也不是固定的,当没有匹配的 case 时,执行 default
    4.break 在 switch-case 中的使用。当执行到某条 case 语句后,使用 break 可以跳出当前的 switch 语句。
    如果此 case 中没有 break,那么,程序将依次执行下面的 case 语句,直至程序结束或者遇到 break。

  • 3、【switch-case 与 if-else if-else 的联系】
    - 1.表达式是一些离散的点,并且取值范围不是很大,要求是 int byte short char String 枚举类型之一。建议使用 switch-case。执行效率更高
    - 2.如果表达式表示的是范围(或区间)、取值范围很大,建议使用 if-else if-else

  • 4、循环结构:
    ①初始化条件②循环条件部分③循环体部分④迭代部分
    1.for 循环 for(①;②;④){

    }
    执行顺序:①-②-③-④-②-③-④-…-②-③-④-②截止
    //死循环:
    for(;;){
    //要循环执行的代码。
    }

  • 5、break & continue
    break
    1.使用范围:循环结构或 switch-case 结构中。
    2.在循环结构中:一旦执行到 break,代表结束当前循环。
    continue
    1.使用范围:循环结构
    2.在循环结构中:一旦执行到 continue,代表结束当次循环。

相同点:如果 break 或 continue 后面还有代码,那么这些代码将不会被执行。所以当有代码,编译会出错!


7、数组

  • 1、如何创建一维数组

    • 1)数组的声明: int[] i ; String[] str; Animal[] animal;
    • 2 ) 数组的初始化:

    ①动态初始化
    ②静态初始化:str = new String[]{"北京","尚硅谷","java0715 班"};
    //也是先有默认初始化赋值,然后显示的初始化,替换原来的默认初始化值 //对于引用数据类型来说,默认初始化值为 null。
    //对于基本数据类型来说: byte、short、int :0 long :0L float : 0.0F double :
    0.0 char :'u0000' boolean : false 引用类型:null

  • 2、数组元素的下角标从 0 开始。

  • 3、数组的长度: .length。

  • 4、数组的遍历:(习惯使用 for 循环)

for(int i = 0 ;i < f.length;i++){
	System.out.print(f[i] + "	");
}
  • 5、常见的异常:

1)ArrayIndexOutOfBoundsException :数组下标越界异常 下标从 0 开始,到 length-1 结束。如果下角标的取值不在此范围内,将报此异常
2)空指针异常(NullPointerException)

  • 6、二维数组

1)二维数组的初始化
①动态初始化:
② 静态初始化:

  • 7、 数组常用的算法:
    最大值、最小值、和、平均数、
    排序(涉及数据结构中各种排序算法)、
    复制、反转。
  • 8、 Array:操作数组的工具类
    Array.sort(数组类型形参); 可以对形参部分的数组进行排序,默认是从小到大的顺序。
  • 9、垃圾回收机制

其他的语言需要程序员去负责回收分配的内存。
显示回收内存缺点:
忘记及时回收,会导致内存泄露、降低系统性能。
错误的回收程序核心类库的内存,从而导致系统崩溃。

Java 语言不需要程序员去负责回收已经分配的内存,JRE 在后台自动进行回收那些不用的内存,这种机制被称为垃圾回收。

原文地址:https://www.cnblogs.com/pengguozhen/p/14779525.html