• 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 在后台自动进行回收那些不用的内存,这种机制被称为垃圾回收。

  • 相关阅读:
    Android零基础入门第34节:Android中基于监听的事件处理
    【洛谷】3953:逛公园【反向最短路】【记忆化搜索(DP)统计方案】
    【洛谷】1608:路径统计 1144:最短路计数
    【洛谷】1081:跑路【倍增】【最短路】
    照着例子学习protobuf-python
    NodeJs与ActionScript的GET和POST通讯
    编程语言应用领域(转)
    我是C#上层转到嵌入式和单片机的
    转发一位老师的文章,希望能给你带来帮助
    沈逸的IT专栏博客记录
  • 原文地址:https://www.cnblogs.com/pengguozhen/p/14779525.html
Copyright © 2020-2023  润新知