Java基础

Java基础

快速入门

Java背景知识

使用Java/开发环境

HelloWorld

常见Bug

Intellij IDEA使用

创建Java程序

其他操作

基础语法

注释

字面量

变量

变量注意事项

关键字、标识符

变量详解

数据类型

数据转换

运算符

API/Scanner

程序流控制

几种结构

分支

循环

循环嵌套

死循环

break、continue

Random随机数

方法

定义方法

使用注意事项

参数传递机制

方法重载

一个类中出现多个方法名称相同,但是形参列表(个数、类型、顺序)不同的方法

return

案例

面向对象编程

入门

深刻认识

对象执行原理

类和对象执行原理

This

构造器

方法名与所在类名一样,没有返回值类型
创建对象同时帮助完成属性初始化
无参、有参
默认无参构造,一旦写了有参构造,要手动写一个无参构造

封装

对象处理事物时包含的数据、方法设计在一个类
合理隐藏、合理暴露
get、set + private隐藏直接访问变量score,同时可以在get、set中设置校验信息
方法,外界需要交互public,不交互private

JavaBean

成员变量私有,对外有get和set,有公共无参构造
实体类只负责数据存储,其他类负责操作数据,实现数据和数据业务分离

成员变量、局部变量

       // 目标:搞清楚成员变量和局部变量的区别。
        // 1、类中位置不同:成员变量(类中,方法外)、 局部变量(常见于方法中)
        int a = 20;
        // 2、初始化值不同: 成员变量(有默认值, 不需要初始化赋值),局部变量(没有默认值,使用之前必须完成赋值)
        int b = 20;
        System.out.println(b);
        // 3、内存位置不同:成员变量(存在于堆内存),局部变量(栈内存)
        // 4、作用域不同:  成员变量(整个对象),局部变量(在所归属的大括号中)
        String name = "黑马";
        // 5、生命周期不同: 成员变量 (与对象同生共死),局部变量(方法调用而生,方法结束而亡)

案例

常用API基础

1、同一个包下的程序,可以直接访问
2、访问其他包下的程序,必须导包才可以访问
3、自己的程序中调用Java提供的程序,也需要先导包才可以使用;注意:Java.lang包下的程序是不需要我们导包的,可以直接使用。
4、访问多个其他包下的程序,这些程序名又一样的情况下,默认只能导入一个程序,另一个程序必须带包名和类名来访问。

API

String

        String string = new String();
        int length = string.length();
        char c3 = string.charAt();
        char[] charArray = string.toCharArray();
        boolean equals = string.equals();
        boolean b1 = string.equalsIgnoreCase();
        String substring = string.substring();
        String replace = string.replace();
        boolean contains = string.contains();
        boolean b = string.startsWith();
        String[] split = string.split();

1、String的对象是不可变的(每次修改时指向了新的String对象)
2、只要是以双引号给出的字符串对象,存储在常量池中,而且内容相同时只会存储一份
3、new String创建字符串对象,每次new出来的都是一个新对象,放在堆内存中

ArrayList

数组长度固定,不便增删

        ArrayList<String> l = new ArrayList<>();
        l.add();
        l.get();
        l.size();
        l.remove();
        l.set();

面向对象高级1

static

类变量:static修饰,保存一份,所有对象共享
类名.类变量(推荐)
对象.类变量(不推荐)
实例变量:每个对象的
对象.实例变量

类方法
类名.类方法(推荐)
对象.类方法(不推荐)
实例方法
对象.实例方法

static应用

静态代码块:类加载,执行,执行一次
static{}
实例代码块:创建对象,执行,执行多次
{}

单例设计模式:确保类只有一个对象
饿汉式
懒汉式

继承

this 指向当前子对象
super 指向子对象继承的父
构造器,先调父,再调子(子类中抽象的共性在父类中,子构造访问不到那些变量)
在构造器中可以通过this(),调用类的其他构造器

面向对象高级2

权限修饰符

final

修饰:类、方法、变量
类,不能被继承
方法,不能被重写
变量,不能被赋值

基本类型,值不能改
引用类型,地址不变,值可以改

常量

static final来修饰

枚举

抽象类

接口

面向对象3

多态

对象多态:人有不同身份
行为多态:不同身份的行为不同

多态,编译看左边,运行看右边
成员变量,编译看左边,运行看左边

        People p1 = new Teacher();
        System.out.println(p1.name);
        p1.run();

        People p2 = new Student();
        System.out.println(p2.name);
        p2.run();

好处:
1.解耦,对象不好用,换对象

People p1 = new Student();
//更换对象new Student()

2.扩展性,参数用父,可接受所有子对象

public static void go(People p)
    public static void go(People p){
        System.out.println("开始------------------------");
        p.run();
        if(p instanceof Student){
        	//强制转换时要先用instanceof判断
            Student s = (Student) p;
            s.study();
        }else if(p instanceof Teacher){
            Teacher t = (Teacher) p;
            t.teach();
        }
        System.out.println("结束------------------------");
    }

坏处:多态下不能使用子类独有的功能

        People p = new Student();
        p.study

内部类

常用API

常用API、算法、Lambda

Math

System

BigDecimal

日期与时间

JDK8新增日期类

正则表达式

包装类

Array

常见算法

Lambda

集合1

集合

Collection常用方法

Collection遍历方式

集合存储自定义类型的对象

常见数据结构

List系列集合

集合并发修改异常

泛型深入

集合2

Set集合

Collection体系的特点、使用场景总结

可变参数

集合工具类Collections

Collection体系案例

Map集合

集合嵌套

日志技术总结

日志技术

日志技术体系、Logback概述

Logback快速入门

Logback配置

多线程

多线程概述

创建方式

常用方法

线程安全

线程同步

线程通信

线程池

定时器

并发、并行

线程的生命周期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值