JAVA SE学习笔记(三):Java基础语法记录

        Java继承了C和C++大部分的基础语法,简单举例记录一下Java的基础语法中需要注意的地方和与C/C++中不交叉的零散知识点,方便以后梳理知识点和复习。

零、注释方法
  1.一行注释符 //
  2.一行或多行注释符 /*     */
     /*
   需要注释的内容
     */
  3.Java文档注释符 /**     */
    /**
    需要注释的内容
     */

一、数据类型

  1. 变量:必须初始化
  2. 8种数据类型:byte, short, int, long, float, double, char, boolean 
  3. long类型和float类型在定义时,值后面要加l或L,f或F。e.g.  long a = 3l;  float b = 1.22f;
  4. boolean类型用0或非0的数值来代替,这里和其他语言不同。e.g.  boolean b1 = true;  boolean b2 = false;
  5. 换行输出语句:System.out.println(str);
  6. 引用类型:String类。String str = "Hello  world";
  7. 引用类型都可以用null作为值,也就是说可以在初始化的时候赋值为null,所以String 可以使用null作为值。
  8. 此外Srting 与其他类型还有一个不同点:其值是不变的。
    e.g.
    int i0 =1;
    int i1 = 1;
    以上这种情况会在内存中存储2个1的值
    String s0 = "Hello";
    String s1 = "Hello";
    因为String是引用类型,所以只存在一个"Hello",变量名去引用"Hello".
  9. String可以用加法进行拼接
  10. 基本数据类型转换:
    (1)char,byte,short三者同级,不可互相转换,<int <long <float < double
    (2)多种数据类型同时计算时,统一成最大容量的类型进行计算
    (3)多个相同类型变量运算时,先要转换为相对应的数据类型的默认类型(比如:两个byte类型的变量相加,会把两个byte类型转换为默认的int类型之后再计算,得到的结果是int类型)这种情况适用于变量类型的容量小于默认变量类型。
  11. *当把任何基本类型的值和字符串值进行连接运算时(+),基本数据类型自动转换为字符串类型。
  12. 强制类型转换:
    e.g. int k = 7
           byte a = (byte) k;
         通常字符串不能直接转换为基本类型,但可以通过基本类型对应的包装类来实现:
    String a = "43"; 
    int i = Integer.parselnt(a);
  13. boolean类型不可以转换为其他的数据类型

二、运算符

  1. 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。
  2. 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数
  3. 整数之间做除法时,只保留整数部分而舍弃小数部分。
  4. “+”除字符串相加功能外,还能把非字符串转换成字符串。e.g.  System.out.println("5+5="+5+5); //打印结果是5+5=55
  5. 以下二者的区别:
    System.out.println(‘*’ + ‘\t’ +‘*’); 输出:93
    System.out.println(“*” + ‘\t’ +‘*’);输出:*        *
  6. 赋值运算符:
    支持连续赋值
    思考1: short s = 3; 
                            s=s+2;  ①
                            s+=2;    ②
                         ①和②有什么区别?
    ①会报错,因为在运算s+2时会转换为int型,s != int型变量,这里应该手动强制类型转换:s = (short) s + 2; 
    ②可以正常运行,使用扩展赋值运算符时,会自动将变量类型强制转换为当前类型把变量类型。
  7. 思考2:
    int i = 1;
    i *= 0.1;
    System.out.println(i);// 输出 0,因为i = i * 0.1会强制转换为int型,0.1变成0.
  8. 逻辑运算符:
    与&、或|、非!、异或^
    异或运算:一个true,一个false则为true 同为true或同为false则为false

    单&时,为逻辑与,左边无论真假,右边都进行运算;
    双&时,为短路与,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
    “|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。

  9. 位运算符:转换为2进制,各个位置进行运算(面试可能会有用,编程优化可能有用,但是基本的程序设计用不太到)。

  10. 三目运算符:(条件表达式)?表达式1:表达式2;  条件表达式为true,则运算后的结果为表达式1,否则为表达式2。

  11. 运算符的优先级:常识就够了,有不会的再查阅。

三、程序流程控制

  1. 顺序结构:按顺序执行
  2. 分支结构:
    (1)    if(条件){
            语句;
        }
        else if(条件){
            语句;
        }
        else{
            语句;
        }
    (2) int i = 1;
        switch(i){
        case 1:
            语句;
            break;
        case 2:
            语句;
            break;
        default:
            语句;
            break;
        }
       //注:①switch(表达式)中表达式的返回值必须是下述几种类型之一:byte, short, char, int, 枚举,String;
                ②case子句中的值必须是常量,且其值应该不同,语句块中没有break程序会执行到switch结尾
  3. 循环结构
    语法:和C语言相同:for;while;do-while.
    循环嵌套
  4. 特殊流程控制语句:
            break:结束当前所处的整个循环 
            continue:跳出当前循环,直接进去下一循环
            return:并非专门用于结束循环,执行到return语句时,不管出于几层循环内,将结束整个方法

四、数组

数组为引用类型,分配空间时要new

(一)一维数组:   

  1.   声明方式:type name[];或者 type[] name1;
  2. 初始化:
        动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
                int[] arr = new int[3];        //声明时要传入数组长度;如果没有给数组元素赋值,
                                            则数组元素会默认初始化,数字类型默认为0,对象类型默认为null
                arr[0] = 3;
                arr[1] = 9;
                arr[2] = 8;
        静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
                int a[] = new int[]{ 3, 9, 8};
                int[] a = {3,9,8};
  3. 引用:和c相同。
  4. 数组长度:Java使用  array_name.length 方法直接获取数组长度

(二)多维数组:

  1. (静态)
        int  a[][] = new int[][]{
            {1, 2},
            {3, 4}
        };
  2. (动态)
        int a[][] = new int[2][3];
        int a[][] = new int[2][];    //只定义第一维,第二维为空{ {}, {} }
  3. 注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。
  4. Java中多维数组不必都是规则矩阵形式

下节传送门:《Java SE学习笔记(四):面向对象编程-a》

https://blog.csdn.net/qq_43617268/article/details/104230112

发布了27 篇原创文章 · 获赞 19 · 访问量 4542

猜你喜欢

转载自blog.csdn.net/qq_43617268/article/details/104176460
今日推荐