JavaSe复习(下)

简介: JavaSe复习(下)

🔎继承和多态

🌻继承

作用:对共性的抽取,实现代码的复用

🌼一个简单的继承

class A {
    public String color;
    public int age;
    public static int size;//静态
}
class B extends A {
    public String type;
}

子类继承了父类的所有非静态成员(变量/方法)


🌼super关键字

代表父类对象的引用

❀用法

🌼super与this的区别

super()和this()都只能在构造方法的第一行使用,所以只能选择其中一个

super只能出现在子类方法或构造方法中

this没有父类也可以使用,super只能在含有父类情况下使用


🌼执行顺序

在继承关系上存在静态代码块,非静态代码块和构造方法


🌼访问修饰限定符

privatedefault(默认)protectedpublic

访问权限:public>protected>default>private


🌼final关键字

❀修饰变量(表示该变量不能修改)

final int a = 0;
        //a = 1;//修饰变量,表示为常量(不能修改)

❀修饰类(表示该类不能被继承)

final class A {
}
/*class B extends A {
}*/

❀修饰方法(表示该方法不能被重写)

class C {
    public final void func() {
    }
}
class D extends C {
    /*@Override
    public void func() {//该方法不能被重写,因为父类的方法被final修饰
        System.out.println("hello");
    }*/
}

🌻多态

🌼向上转型

只能访问父类自己的成员(属性/方法),不能访问子类的成员(属性/方法)

class C {
}
class D extends C {
}
public class Test {
    public static C method() {
        return new D();//向上转型
    }
    public static void main3(String[] args) {
        method();
    }
    public static void func(C c) {//向上转型
    }
    public static void main2(String[] args) {
        D d = new D();
        func(d);//向上转型
    }
    public static void main1(String[] args) {
        C c = new D();//向上转型
    }
}

🌼向下转型

class C {
}
class D extends C {
}
class E extends C {
}
public class Test {
    public static void main(String[] args) {
        C c = new D();
        //E e = (E)c;//向下转型--不建议使用
        if(c instanceof E) {
            E e = (E)c;//一定要使用建议搭配instance of 关键字
        }
    }
} 

🔎抽象类和接口

🌻抽象类

特性

不能被实例化,被用于继承

包含抽象方法和非抽象方法

当一个非抽象类继承这个抽象类时,必须重写这个抽象类的抽象方法

抽象方法不能被private,final,static修饰


🌻接口

特性

成员变量默认是public static final修饰

成员方法默认是public abstract修饰


🔎String类

🌻字符串的不可变性

String是一种不可变对象

final表示String不可被继承,但仍可以修改字符串里的内容
那为什么String是一种不可变对象呢?
因为里面的字符是被private修饰的,是封装的(不能被访问)


🌻StringBuilder和StringBuffer

因为String的不可变性,为了方便字符串进行修改,可以使用StringBuilder和StringBuffer

StringBuilder和StringBuffer修改字符串内容时均不会创创建一个新的对象

String和StringBuilder类转换

String变为StringBuilder: 利用StringBuilder的构造方法或append()方法

StringBuilder变为String: 调用toString()方法


🔎异常

🌻异常的简单分类

🌼编译时异常/受查异常(IOException)


🌼运行时异常/非受查异常(RuntimeException)

public static void main(String[] args) {
        char[] arr = null;
        System.out.println(arr);
        System.out.println("运行时异常--空指针异常");
    }


🌻throw和throws的区别

throw代表抛出异常

throws代表声明异常,可用于编译(受查)异常,使其编译正常


🌻自定义异常

1.自定义异常类,然后继承自Exception 或者 RunTimeException

2.实现一个带有String类型参数的构造方法,参数含义:出现异常的原因

class WrokException extends RuntimeException{
    public WrokException(String s) {
        super(s);
    }
}

🔎总结

相关文章
|
4天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
10天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
1天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
9天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
5天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
454 11
|
3天前
|
编解码 文字识别 算法
一张图能装下“千言万语”?DeepSeek-OCR 用视觉压缩长文本,效率提升10倍!
一张图能装下“千言万语”?DeepSeek-OCR 用视觉压缩长文本,效率提升10倍!
356 10
|
9天前
|
编解码 自然语言处理 文字识别
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
凌晨,Qwen3-VL系列再添新成员——Dense架构的Qwen3-VL-8B、Qwen3-VL-4B 模型,本地部署友好,并完整保留了Qwen3-VL的全部表现,评测指标表现优秀。
673 7
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
|
12天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
798 2