javase基础

JavaSe基础篇

一、java开发环境搭建

1.1 知识框架

1.2 了解java语言

  1. 简单性
  2. 面向对象
  3. 健壮性:自动垃圾回收机制(GC机制)
  4. 可移植/跨平台:JVM
  5. 多线程

1.3 JDK、JRE、JVM关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZIaFITYs-1635209228348)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211021154246249.png)]

1.4 开发第一个java程序

1.4.1 初步了解java加载与执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ycSUtoRn-1635209228355)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211021154555886.png)]

1.4.2 JDK安装

安装包下载地址:https://www.oracle.com

配置变量环境 path classpath

测试:javac -version

1.4.3 第一个java代码
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

1.5 注解

  1. 单行注解://
  2. 多行注解:/* * * */
  3. javadoc注解:/** * * */

1.6 public class、class区别

  • 同一个java文件中只能声明一个public class 类名必须和文件名一致
    • 但是却能声明多个class
  • 一个java文件可以生成多个字节码文件

二、标识符、关键字

2.1 知识框架

标识符:程序员有权限修改名字

2.2 标识符命名规则

  1. 由下划线、美元符合、字母、数字组成 汉字可以不建议使用

  2. 不可用数字开头 中间有空格

  3. 不可用关键字和保留字

  4. 严格区分大小写字母

  5. 理论上没有长度限制

2.3 标识符的命名规范

  1. 见名知意
  2. 驼峰命名
  3. 类名 接口名 首字母大写 后面每个单词首字母大写
  4. 方法名 变量名 首字母小写 后面每个单词首字母大写
  5. 常量名 全部大写 单词以‘_’衔接

2.4 关键字

  • java自己使用的标识符 全部小写

三、变量

  • 变量:给一个内存取名字

3.1 知识框架

3.2 字面量

  • 字面量:数据、数值
  • 分类:
    1. 整型
    2. 浮点型
    3. 字符型:单引号 只能存一个字符
    4. 布尔型:true、false
    5. 字符串型:双引号

3.3 使用变量

数据类型 变量名 = 值;

3.4 变量分类

  1. 实例变量
  2. 静态变量
  3. 局部变量(方法参数)

3.5 变量作用域

  • 声明位置不同 作用域不同
  • 出大括号就不认识
  • 就近原则 会访问离它最近的数据

四、数据类型

4.1 知识框架

4.2 数据类型

  1. 整型:byte、short、int、long
  2. 浮点型:float、double
  3. 布尔型:boolean
  4. 字符型:char
  • 十进制转二进制:除二取余 取反

  • 十进制、八进制 0、二进制 0b、十六进制 0x

  • A:65、a:97、0:48

  • 默认整型 int 浮点型 double

  • 正码 反码 补码 【正数 三个一样】【负数 正 反符号位不变 补反加1】

  • float加f/F long加L/l

4.3 基本数据类型转换

  1. 除了boolean其他七种 可以转换
  2. 没有超过byte、short、char取值范围 可以直接赋值
  3. 自动类型转换
  4. 强制类型转换
  5. byte、short、char运算会转换int 再运算
  6. 混合运算会转换成最大容量 再运算

五、运算符

5.1 知识框架

  • 算数运算符:+、-、*、/、++、–、%

  • 关系运算符:<、>、==、>=、<=、!=

  • 逻辑运算符:&、|、!、&&、||

  • 赋值运算符:+=、-=、*=、/=、%=、^=、&=、|=、>>=、<<=

  • 位运算符:>>、<<、>>>(带符号位移)、^、&、|

  • 条件运算符:布尔表达式?表达式1:表达式2;

  • 字符串连接运算符:+

六、控制语句

6.1 知识框架

七、方法

7.1 知识框架

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c6KYSp49-1635209228359)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211021211014755.png)]

  • 代码复用性

7.2 方法定义、调用

  • 定义:[修饰符] 返回类型 方法名(形式参数列表){方法体}
  • 调用:静态方法 用类名调用 同一个类中省略类名
    • 实例方法需要创建对象调用

7.3 JVM初内存结构图

7.4 方法重载

  • 同一个类中 方法名相同
  • 形参列表不同
    • 个数不同 顺序不同 类型不同

7.5 方法递归

  • 方法调用本身

八、认识面向对象

8.1 知识框架

  • OP面向过程
  • OO面向对象 OOA面向对象分析 OOD面向对象设计 OOP面向对象编程

8.2 三大特征

  • 封装、继承、多态

8.3 类、对象概念

  • 类:具有共同特征的事务的模板
  • 对象:现实存在的个体

九、对象创建、使用

9.1 知识框架

9.2 对象创建、使用

  • 对象创建:class定义的类为 引用类型 变量名 = new 引用类型();
  • 使用:用创建的对象调用属性、方法
  • 系统默认赋值:

9.3 对象创建、使用深层次

在这里插入图片描述

9.4 构造方法

  1. 方法名与类名一致
  2. 不能写返回类型 void也不能 返回实际上是当前类类型
  3. 一个类可定义多个构造 方法重载
  4. 创建对象 属性初始化操作
  5. 系统默认提供无参构造 如若提供有参 系统则不提供无参构造 自己提供
  6. new调用构造

9.5 空指针异常

  • 空引用去调用实例属性、实例方法会报异常

9.6 方法参数传递

  • 会将值复制一份传递
  • 但引用是地址 复制地址 会再次指向该对象

十、封装

10.1 知识框架

10.2 封装

  • 封装:信息隐藏 包装
  • 好处:保护信息安全、隐藏复杂、暴露简单

10.3 封装实现

  • private修饰属性 提供set get方法

十一、this、static

11.1 知识框架

11.2 this

  • 看成变量 引用 存储在堆中对象内部 保存当前对象的地址
  • 不能在static方法中
  • 语法this.属性/方法; this(参数列表); 大多数省略不写
    • 可以直接调用实例变量和实例方法
    • 构造方法只能出现在首行

11.3 static

  • 可修饰 变量 方法 代码块
  • 使用static都是与类相关的 无需创建对象 以类名直接访问
  • 静态在类加载时初始化 存在方法区
  • 用对象访问静态 实际在运行时还是通过类去访问的

11.4 静态代码块

  • 类加载时执行一次
  • 一个类中可以有多个静态代码块 自上而下执行

11.5 静态方法

  • 实际开发 工具类 一般定义静态方法

十二、继承

12.1 知识框架

​

12.2 继承

  • 继承解决了代码复用的问题
  • 不能继承私有属性、方法 构造方法
  • 支持单继承 不支持多继承 但支持间接继承
  • 默认继承Object
  • 缺点:继承后 耦合度非常高

12.3 实现

  • class XX extends

十三、方法覆盖和多态

13.1 知识框架

13.2 方法覆盖

  • 当父类方法不够子类业务需求时
  • 继承关系
  • 相同的返回值类型、方法名、形式参数列表
  • 注意:
    1. 私有方法 构造方法不能继承 不能被覆盖
    2. 不能抛出比原方法更多的异常
    3. 不能比原方法更低的权限
    4. 与属性 静态方法无关

13.3 多态

  • 同一个行为在不同对象有不同的表现结果

  • 父类引用指向子类对象

  • 向上转型 自动类型转换

  • 向下转型 强制类型转换 instanceof

静态绑定:在编译时 去父类寻找属性方法

动态绑定:在运行时 去对象中寻找属性方法

13.4 OCP开闭原则

  • 对扩展开放 对修改关闭

十四、super

14.1 知识框架

14.2 super

  • 不是引用 是一个关键字 标识当前对象那部分继承父类的特征

  • 使用在实例方法

  • 使用在构造方法中 super(形参列表)是调用父类的构造方法

    • 只能在首行 与this冲突 不能并存
    • 每个构造方法系统默认首行super();调用父类空参构造方法
  • 子类属性和父类属性同名时 使用super.区分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值