Java基础(一周汇总8.3--8.7)

Java基础:

声明:

   1)仅作为个人学习,如有冒犯,告知速删!

   2)不想误导,如有错误,不吝指教!

基础概念:

  1. 注释

    1. “//” 这是单行注释文字

    2. /*
      这是多行注释文字
      这是多行注释文字
      这是多行注释文字
      */
      注意:多行注释不能嵌套使用。
      
  2. 关键字

    1. 特点:关键字的字母全部小写。
  3. 常量

    • - 	整数常量  整数,例如:-10、0、88等
      
      ​	小数常量  小数,例如:-5.5、1.0、88.88等
      
      ​	字符常量  用单引号括起来的一个字符,例如:'a'、'5'、'B'、'中'等
      
      ​	布尔常量  布尔值,表示真假,只有两个值true和false
      
      ​	空常量  一个特殊的值,空值,值为null
      
    • 除空常量外,其他常量均可使用输出语句直接输出。

数据类型:

  1. 计算机存储单元

    请查看计算机基础

  2. java中的数据类型

  3. 数据类型 关键字 内存占用 取值范围
    整数类型 byte 1 -128~127
    short 2 -32768~32767
    int(默认) 4 -2的31次方到2的31次方-1
    long 8 -2的63次方到2的63次方-1
    浮点类型 float 4 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38
    double(默认) 8 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308
    字符类型 char 2 0-65535
    布尔类型 boolean 1 true,false

    说明:

    ​ e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。

    ​ 在java中整数默认是int类型,浮点数默认是double类型。

变量:

  1. 变量的定义

    在程序运行过程中,其值可以发生改变的量。从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。

    • 定义格式:

      • 数据类型 变量名 = 初始化值; // 声明变量并赋值
        int age = 18;
        System.out.println(age);
        
        ---------------------
        // 先声明,后赋值(使用前赋值即可)
        数据类型 变量名;
        变量名 = 初始化值;
        double money;
        money = 55.5;
        System.out.println(money);
        
  2. 变量的注意事项:

    1. 在同一对花括号中,变量名不能重复。
    2. 变量在使用之前,必须初始化(赋值)。
    3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。
    4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。

标识符:

标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。

Java中标识符的组成规则:

  1. 由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。

    • 不能使用java中的关键字作为标识符。
  2. 标识符对大小写敏感(区分大小写)。

Java中标识符的命名约定:

  1. 小驼峰式命名:变量名、方法名

    • 首字母小写,从第二个单词开始每个单词的首字母大写。
  2. 大驼峰式命名:类名

    • 每个单词的首字母都大写。
  3. 另外,标识符的命名最好可以做到见名知意

    • 例如:username、studentNumber等。

类型转换:

  1. 自动类型转换
  2. 强制类型转换

运算符:

  1. 算数运算符

    • 运算符和表达式

    • 算术运算符

    • 字符的+操作

    • 字符串的+操作

  2. 赋值运算符

  3. 自增自减运算符

    注意事项:

    • ++和-- 既可以放在变量的后边,也可以放在变量的前边。

    • 单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。

    • 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。

    • 参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。

  4. 关系运算符

    • 自行百度
  5. 逻辑运算符

    • 基础逻辑运算符

      • 符号 作用 			说明
        & 	逻辑与 	 a&b,a和b都是true,结果为true,否则为false
        | 	逻辑或 	 a|b,a和b都是false,结果为false,否则为true
        ^ 	逻辑异或 	a^b,a和b结果不同为true,相同为false
        ! 	逻辑非 	 !a,结果和a的结果正好相反
        
    • 短路逻辑运算符

  6. 三元运算符:

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/Relationship.java

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/countSum.java

数据输入:

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/inputDate.java

流程控制语句:

  1. 流程控制语句分类
  2. 顺序结构
  3. 分支结构if语句
    1. if语句格式1
    2. if语句格式2
    3. if语句格式3

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/Process_control.java

switch语句:

  1. switch语句结构
  2. 练习

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/switchCycle.java

for循环:

  1. for循环结构
  2. for循环练习

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/forCycle.java

while循环:

  1. while结构
  2. while循环练习

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/whileCycle.java

循环细节:

  1. do-while循环结构
  2. 三种循环的区别
    1. 三种循环的区别
      • for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
      • do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
    2. for循环和while的区别
      • 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
      • 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
    3. 死循环(无限循环)的三种格式
      1. for(;;){}
      2. while(true){}
      3. do {} while(true);
  3. 跳转控制语句
  4. 循环嵌套

Random:

  1. Random产生随机数
  2. Random练习

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/random.java

数组:

  1. 数组的定义以及格式

    1. 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致
    2. 格式:数据类型[] 数组名;数据类型 数组名[]
  2. 数组动态初始化,静态初始化

    1. 动态初始化:就是只给定数组的长度,由系统给出默认初始化的值

    2. 格式:数据类型[] 数组名 = new 数据类型[数组长度]

    3. int[] arr = new int[3];
      arr[0] = 赋值0
      arr[1] = 赋值1
      arr[2] = 赋值2
      
    4. 解释:等号左边:int:数组的数据类型;[]:代表这是一个数组;arr:代表数组的名称

      等号右边:new:为数组开辟内存空间;int:数组的数据类型;[]:代表这是一个数组;3:代表数组的长度

    5. 静态初始化:

      1. 完整版:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
      2. 简化版:数据类型[] 数组名 = {元素1,元素2,...};
  3. 数组元素访问

    1. 索引:每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
    2. 格式:数组名[索引];
  4. 内存分配 ----具体详看链接内容

  5. 单数组、多数组内存图以及多数组指向相同内存图 ----具体详看链接内容

  6. 数组操作的小问题

    1. 索引越界异常
    2. 空指针异常
  7. 数组遍历、最值

    1. 数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。
    2. 最大值获取:从数组的所有元素中找出最大值

代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day4/array.java

方法:

  1. 方法概述、定义以及调用

    1. 概述:方法是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集
      1. 注意:
        • 方法必须先创建才能使用---定义方法
        • 方法创建后并不是直接可以运行,需要手动使用后,才执行---方法的调用
  2. 无参数方法的定义和调用

    1. 定义格式:

      1. public static void 方法名(){
          //方法体
        }
        //范例
        public static void method(){
            //方法体
        }
        
        //调用格式
        方法名()----method()
        //方法的调用需要在main下使用
        
      2. 总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。

  3. 带参数方法的定义和调用

    1. 定义格式:

      1. 参数:有数据类型和变量名-数据类型 变量名

      2. public static void 方法名 (参数1) {
            方法体; 
        }
        public static void 方法名 (参数1, 参数2, 参数3...) {
            方法体; 
        }
        
    2. 注意:方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错,方法定义时,多个参数之间使用逗号( ,)分隔 ;

    3. 方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错;

    4. 形参和实参

      1. 形参:方法中定义的参数
      2. 实参:方法调用中的参数
  4. 带返回值方法的定义和调用

    1. 定义格式:

      • public static 数据类型 方法名 ( 参数 ) {
            return 数据 ; 
        }
        
        //范例:
        public static boolean isEvenNumber( int number ) {
            return true ; 
        }
        public static int getMax( int a, int b ) {
            return 100 ; 
        }
        
    2. 方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错

    3. 调用格式:

      1. 数据类型 变量名 = 方法名 ( 参数 ) ;

      2. isEvenNumber ( 5 ) ;    //没有意义
        boolean flag = isEvenNumber ( 5 );  //有意义
        
      3. 方法的返回值通常会使用变量接收,否则该返回值将无意义

  5. 方法的注意事项

    1. 不能嵌套定义

      • public class MethodDemo {
            public static void main(String[] args) {
        
            }
        
            public static void methodOne() {
              public static void methodTwo() {
                      // 这里会引发编译错误!!!
               }
            }
        }
        
    2. void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据

      • public class MethodDemo {
            public static void main(String[] args) {
        
            }
            public static void methodTwo() {
                //return 100; 编译错误,因为没有具体返回值类型
                return;    
                //System.out.println(100); return语句后面不能跟数据或代码
            }
        }
        
  6. 通用格式

    1. 格式:

      public static 返回值类型 方法名(参数) {
         方法体; 
         return 数据 ;
      }
      
    2. 解释:

      • public static 修饰符,目前先记住这个格式

        返回值类型 方法操作完毕之后返回的数据的数据类型

        ​ 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return

        方法名 调用方法时候使用的标识

        参数 由数据类型和变量名组成,多个参数之间用逗号隔开

        方法体 完成功能的代码块

        return 如果方法操作完毕,有数据返回,用于把数据返回给调用者

    3. 定义方法时,要做到两个明确

      • 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
      • 明确参数:主要是明确参数的类型和数量
    4. 调用方法时的注意:

      • void类型的方法,直接调用即可
      • 非void类型的方法,推荐用变量接收调用

    代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day5/methodview.java

  7. 方法重载

    1. 概念:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

      • 多个方法在同一个类中

      • 多个方法具有相同的方法名

      • 多个方法的参数不相同,类型不同或者数量不同

    2. 注意:

      • 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式

      • 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载

  8. 方法的参数传递(具体的详看代码链接)

    1. 基本数据类型的参数,形式参数的改变,不影响实际参数
    2. 对于引用类型的参数,形式参数的改变,影响实际参数的值

    代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day5/MethodOverloading.java

  9. 练习:

    1. 数组遍历:

      1. 需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]

        思路:

        • 因为要求结果在一行上输出,所以这里需要在学习一个新的输出语句System.out.print(“内容”);

          System.out.println(“内容”); 输出内容并换行

          System.out.print(“内容”); 输出内容不换行

          System.out.println(); 起到换行的作用

        • 定义一个数组,用静态初始化完成数组元素初始化

        • 定义一个方法,用数组遍历通用格式对数组进行遍历

        • 用新的输出语句修改遍历操作

        • 调用遍历方法

    2. 数组最大值:

      1. 需求:设计一个方法用于获取数组中元素的最大值

        思路:

        • 定义一个数组,用静态初始化完成数组元素初始化

        • 定义一个方法,用来获取数组中的最大值,最值的认知和讲解我们在数组中已经讲解过了

        • 调用获取最大值方法,用变量接收返回结果

        • 把结果输出在控制台

    代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day5/ArrTraveMax.java

完整项目代码:

Github:https://github.com/xbhog/JavaBasis
致谢:如果对您有帮助,希望随手一个star,感谢!!

原文地址:https://www.cnblogs.com/xbhog/p/13454021.html