• Java基础--基本规则、语法


      1、关键字:使用某种语言赋予特殊含义的单词。

      2、保留字:没有赋予特殊含义,但以后可能会使用的单词。

      3、标识符:自定义的单词,以数字、字母、下划线以及$符组成,且首字母不能以数字开头,不能以关键字命名标识符。

      4、常量:程序中不会变化的数据。

      5、变量:用于存储数据,实质指的是内存的一段存储空间。

    二、数据类型以及相关包装类

      1、基本数据类型:

        (1)整型:byte, short, int, long(数字后加 L 或 l)。

        (2)浮点型:float(数字后加 F 或 f), double(默认为double型)。

        (3)文本型(字符型):char。

        (4)逻辑型(布尔型):boolean。

      

      2、引用数据类型:数组、类、接口。

      3、基本类型对应的包装类:

        (1)整型:Byte, Short, Integer, Long。

        (2)浮点型:Float, Double。

        (3)字符型:Character。

        (4)布尔型:Boolean。

      

      4、类型的级别(低到高): byte, short, char -> int  -> long -> float -> double。

      5、类型转换:

        低到高: 自动转换。

          比如:     

            long a = 1;
            float b = a;

        高到低:手动转换。

           比如:     

            float a = 1;
            long b = (long) a;

      6、自动拆装箱

        (1)自动装箱:就是将基本数据类型自动转换成对应的包装类。即Integer integer=1; 等价于Integer integer = Integer.valueOf(1);。

        (2)自动拆箱:就是将包装类自动转换成对应的基本数据类型。即int i=integer; 等价于int i = integer.intValue();。

        (3)装箱时,若数据在byte范围(-128~127)内,且数值相同,则不会产生新对象,即相同数值的引用指向同一个对象,否则会重新创建一个对象。

    三、运算符

      1、算数运算符: +, -, *, /, %,++(自增),--(自减)。
      2、赋值运算符:=,+=,-=,*=,/=,%=。
      3、比较运算符:>, <, >=, <=, ==, !=
      4、逻辑运算符:&(逻辑与),|(逻辑或),^(异或), &&, ||, !
      5、连接运算符:+(用于字符串连接)。

      6、三目运算符:?=。

    四、if-else,for,while,do-while,switch语句

      1、if-else。

        比如;

          if (boolean型条件表达式) {

            ...

          } else {

            ...

          }

      2、for。

        比如:

        for(初始值; 条件表达式; 表达式){
          ...
        }

        for(类型 : 数组/集合){
          ...
        }

      3、while。

        比如:

          while(boolean型条件表达式){

            ...

          }

        

      4、do-while。

        比如:

          do {

            ...

          } while (boolean型条件表达式);

      5、switch。

        比如:   

          switch(值){
          case 值1: ...;break;
          case 值2: ...;break;
          default:...;break;
          }

      6、break、continue。

        break 跳出当前循环,执行下一条语句。

        continue 结束本次循环,执行下一个循环。

    五、数组

      1、定义:可以理解为用于存储同一类型数据的一个容器。

      2、格式:

        (1)元素类型[] 变量名 = new 元素类型[元素个数];

        (2)元素类型[] 变量名 ={元素1, 元素2,……};

        (3)元素类型[] 变量名 = new 元素类型[]{元素1,元素2,……};

      3、Arrays工具类:

        (1)Arrays.toString(arr); 输出数组
        (2)Arrays.sort(arr); 给数组排序
        (3)Arrays.equals(arr1, arr2); 比较两个数组的元素是否相同
        (4)Arrays.binarySearch(arr, key); 在有序序列中查找key的位置。
        (5)Arrays.copyOf(arr, arr.length+1); 给数组增加一个元素。(扩容)

    六、函数

      1、提高代码复用性,将一段重复使用的代码包装成一个函数,令其实现一个功能。

      2、主函数(main):是程序的入口,被jvm调用,所以需保证该类独立运行。

      3、函数名的命名规范:采用小写字母开头的驼峰命名,命名需用有意义的单词。

        格式如下:
          修饰符 返回值类型 函数名 (参数类型1 参数1, 参数类型2, 参数2){
            执行的语句;
            return 返回值;(若返回值类型为void, 则无需写return)
          }

    七、原码、反码、补码

      1、java是强类型语言,变量在使用前需声明且赋值(由编译器检测)。

      2、java采用Unicode字符集编码,每个字符用16位无符号整数表示。
      3、java中整数均为有符号数,且用补码表示整数。

        正数的原码、反码、补码均相同。
        负数的反码为其原码符号位不变,其余各位取反。
        负数的补码为其反码加1.

      4、补码的规则:
        (1)若二进制每位全为0,则表示 数0.
        (2)若最高位(符号位)为0,则表示正数。
        (3)若最高位(符号位)为1,则表示负数。负数的绝对值为 每个二进制位(包括符号位)取反,然后加1,所得到的二进制数 。
        比如:

          10000000 的最高位为1, 所以它表示的是负数,我们将其七位全部取反,得到1111111, 然后加1,得到10000000。将该数看作无符号数,值为128,所以补码10000000的真值是-128。
          short a = (short)128; short为两个字节,即 0000 0000 1000 0000,所以a为128.
          byte b = (byte)128; byte为一个字节,即1000 0000,所以b为 -128.

    八、左移(<<)、逻辑右移(>>>),算数右移(>>)

      1、左移(<<),在其末尾补0,相当于乘2.
        举例:
          11010011经左移1位后,得到10100110

      2、逻辑右移/无符号右移(>>>),在其左边补0。
        举例:
          11010011经逻辑右移1位后,得到01101001

      3、算数右移(>>),若为正数则左侧补0,若为负数左侧补1,相当于除2

        举例:
          11010011经算数右移后,得到11101001

  • 相关阅读:
    观察者模式
    工厂模式
    单例模式
    关于状态机
    关于memset的错误使用
    关于STL容器
    关于内存及其相关
    python学习手册:第十一章——赋值表达式及打印
    python学习手册:第九章——元组、文件及其他
    python学习手册:第七章——字符串
  • 原文地址:https://www.cnblogs.com/huoyz/p/14380643.html
Copyright © 2020-2023  润新知