2020.7.26 Java基础

发布于 2020-07-26  74 次阅读


Table of Contents


bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。
conf 该路径下存放了JDK的相关配置文件。
include 该路径下存放了一些平台特定的头文件。
jmods 该路径下存放了JDK的各种模块。
legal 该路径下存放了JDK各模块的授权文档。
lib 该路径下存放了JDK工具的一些补充JAR包。

  • 计算机存储单位

    • 我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)” ,我们又称之为“比特位”,通常用小写的字母”b”表示。而计算机中最小的存储单元叫“字节(byte)”, 通常用大写字母”B”表示,字节是由连续的8个位组成。 除了字节外还有一些常用的存储单位,
    • 大家比较熟悉,我们一起来看看: 1B(字节)=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
  • Java算数运算符

    • 运算符和表达式
      • 运算符:运算的符号
      • 表达式:表达一个操作
    • 算术运算符
      • 加 减 乘 除 取于
    • 字符(加 +)
      • 不同数据类型做加法,会做变量提升
      • byte,short,char --> int --> long --> float --> double
      • 一般不使用byte,short定义整数,不适用char定义字符
  • 赋值运算符(应用)

    • = 赋值 a=10,将10赋值给变量a
    • += 加后赋值 a+=b,将a+b的值给a
    • -= 减后赋值 a-=b,将a-b的值给a
    • *= 乘后赋值 a*=b,将a×b的值给a
    • /= 除后赋值 a/=b,将a÷b的商给a
    • %= 取余后赋值 a%=b,将a÷b的余数给a
  • 自增自减运算符(理解)

    • 单独使用 放前放后都一样
    • 参与运算 ++a 先自增 a++ 先运算
  • 关系运算符(应用)关系运算都是bool类型

    • ==
      • a==b,判断a和b的值是否相等,成立为true,不成立为false
    • !=
      • a!=b,判断a和b的值是否不相等,成立为true,不成立为false
    • >
      • a>b,判断a是否大于b,成立为true,不成立为false
    • =
      • a>=b,判断a是否大于等于b,成立为true,不成立为false
    • <
      • a<b,判断a是否小于b,成立为true,不成立为false
    • <=
      • a<=b,判断a是否小于等于b,成立为true,不成立为false
  • 逻辑运算符(应用)

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

    • 短路逻辑就是满足条件之后,后面的就不参与运算了
    • && 短路与 作用和&相同,但是有短路效果
    • || 短路或 作用和|相同,但是有短路效果
  • 三元运算符(理解)

    • 关系表达式 ? 表达式1 : 表达式2;
  • 流程控制语句(应用)

    • if结构
      • if(){}else if(){} else{}
      • 关键字 if ,esle if
    • switch结构
      • switch(表达式){ case 1:break; case2:break;}
      • 关键字:switch,case,default,break
  • for循环结构(掌握)

    • 格式:
      • for (初始化语句;条件判断语句;条件控制语句) {
        循环体语句;
        }

      • 初始化语句,和条件判断语句,都可以有多个,逗号分隔
      • 条件判断语句,也可以有多个,需要&或|连接
  • while循环

    • 格式
      • 初始化语句;
        while (条件判断语句) {
        循环体语句;
        条件控制语句;
        }
        // 先执行一遍,不常用
        初始化语句;
        do {
        循环体语句;
        条件控制语句;
        }while(条件判断语句);

  • 跳转控制语句(掌握)

    • 跳转控制语句(break)
      • 跳出循环,结束循环
    • 跳转控制语句(continue)
      • 跳过本次循环,继续下次循环
    • 注意: continue只能在循环中进行使用!
  • 数组

    • 长度固定,数据类型一致
    • 定义方式:数据类型[] 数组名 && 数据类型 数组名[]
    • 数组动态初始化【应用】
      • 数据类型[] 数组名 = new 数据类型[数组长度];
    • 数组经常出现的问题
      • 下标越界
      • 空指针异常
  • java中的内存分配

    • 寄存器 给CPU使用,和我们开发无关。
    • 本地方法栈 JVM在使用操作系统功能的时候使用,和我们开发无关。
    • 方法区 存储可以运行的class文件。
    • 堆内存 存储对象或者数组,new来创建的,都存储在堆内存。
    • 方法栈 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。
  • 数组静态初始化

    • 完整版格式
      • 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
    • 简化版格式
      • 数据类型[] 数组名 = {元素1,元素2,...};
  • 方法的概念(理解)

    • 将一些代码拆分,写到一起,封装使用
      • 方法需要定义,需要调用,才可以执行使用
  • Java类和对象

    • 类和对象的理解

      • 类的理解:模板,例如人
        • 共同事物抽象
        • 类是数据类型,相同属性和行为的一组对象的集合
      • 对象的理解:实例,张三李四王五,都是根据人
        • 属性:事物的特征
        • 行为:对事物执行操作
      • 类和对象的关系
        • 类:对事物的抽象
        • 对象:类的具体化
      • 类(类(成员)变量,方法(局部)变量,属性,行为)
        • 属性:类方法外定义的变量(类下定义的变量)
        • 行为:类中定义的方法
        • 成员变量
    • 类的应用

      • 定义属性,定义行为
      • 对象使用 new 对象();
    • 类在内存中存放

      • 1.类方法单独存在栈(多个对象共用一个类方法定义)
      • 2.对象的属性,变量存在堆(每个对象都有自己的属性)
    • 成员变量和局部变量的区别

      • 类中的位置不同:
        • 成员变量 类方法外定义
        • 局部变量 类方法内定义
      • 内存中的位置不同
        • 成员变量 堆内存
        • 局部变量 栈内存
      • 声明周期不同:
        • 成员变量:依赖类的存在
        • 局部变量:依赖类方法的存在
      • 初始化值不同
        • 成员变量有默认初始化值
        • 局部变量没有默认初始化值
    • private关键字

      • private是一个修饰符,可以用来修饰成员(成员变量,成员方法)
      • 被private修饰的成员,只能在本类进行访问
      • 可以使用getxx(),setxx(参数) 设置返回private方法
    • this关键字

      • this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)
      • this代表当前对象
    • 封装思想

      • 将一些信息隐藏在类的内部,通过方法提供访问
      • 提高代码的安全性,可以复用代码
    • 构造方法

      • 构造方法是一种特殊的方法
      • 注意:
        • 如果类没有定义构造方法,将使用默认无参的构造方法
        • 如果要使用构造方法和有参构造方法,就用到了函数重载
        • 带参数的构造方法,可以为类提供初始化操作
    • Java常用API

      • String类

        • 创建String字符串
          • 使用new 创建一个字符串
            • 对象创建的字符串,地址不一样
          • 使用“” 双引号创建一个字符串
            • 字符串在常量池中,内容一样,地址就一样
            • ”“ 双引号创建的,内容一样 ,地址就一样
        • String构造方法
          • String()
          • String(char[]) String(byte[])
          • String = “abc”;
        • String理解
          • String类代表字符串,底层其实是char数组,“” 双引号内的都是字符串
          • String 类在 java.lang 包下
          • “” 装箱机制,所以可以调用方法
        • String特点
          • 字符串不可改变,值一旦创建就不能更改
          • 字符串的值可以被共享
          • 字符串效果相当于char[] 底层实现是 btye[]
        • ==
          • 基本类型: 比较数据值是否相同
          • 引用类型: 比较地址值是否相投
        • equals
          • 引用类型比较值是否相等
      • StringBuilder类

        • StringBuilder和String的区别
          • Sting不可变
          • StringBuilder 是一个可变的字符串类
          • StringBuilder 对象中的内容是可变的
        • 构造方法
          • StringBuilder()
          • StringBuilder(string)
        • 常用方法
          • append(任意类型)
          • reverse() 翻转字符串
        • StringBuilder和String互相转换
          • StringBuilder 使用toString() 转换为String
          • String 使用 new StringBuilder(String) 转换为StringBuilder
    • ArrayList

      • ArrayList简介
        • 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
      • ArrayList集合的特点
        • 底层是数组实现的,长度可以变化
      • 泛型的使用
        • 用于约束集合中存储元素的数据类型
  • 2.扩展延伸知识

    • java终端数据输入(应用)

      • import java.util.Scanner;
      • Scanner sc = new Scanner(System.in);// 创建Scanner对象,sc表示变量名,其他均不可变
      • int i = sc.nextInt(); // 表示将键盘录入的值作为int数返回。
    • Random产生随机数(掌握)

      • 使用步骤:
        1. 导入包
          import java.util.Random;
        2. 创建对象
          Random r = new Random();
        3. 产生随机数
          int num = r.nextInt(10);
          解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9
    • Java为什么要有静态和非静态之分

      • 站在“bai面向对象”的角度,static,也就是你说的静态,是du为了保zhi持共性,大家伙都用一个,而非静态就是dao为了保持个性,这个个性需要使用实例来完成。例如

    3.灵感代办

    4.复习内容

    5.学习成果&问题