zoukankan      html  css  js  c++  java
  • 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,感谢!!

  • 相关阅读:
    LOJ #6669 Nauuo and Binary Tree (交互题、树链剖分)
    BZOJ 4734 UOJ #269 [清华集训2016]如何优雅地求和 (多项式)
    UOJ #268 BZOJ 4732 [清华集训2016]数据交互 (树链剖分、线段树)
    Codeforces 1276C/1277F/1259F Beautiful Rectangle (构造)
    UOJ #164 [清华集训2015]V (线段树)
    python – time.sleep – 睡眠线程
    GIL(全局解释器锁)与互斥锁
    python theading线程开发与加锁、信号量、事件等详解
    python装饰器概念与应用
    python中for循环的底层实现机制 迭代
  • 原文地址:https://www.cnblogs.com/xbhog/p/13454021.html
Copyright © 2011-2022 走看看