Java 知识点总结篇(3)

简介: Java 知识点总结篇(3)

抽象类

使用规则

abstract定义抽象类;

abstract定义抽象方法,只有声明,不需要实现;

包含抽象方法的类是抽象类;

抽象类中可以包含普通方法,也可以没有抽象方法;

抽象类不能直接创建,可以定义引用变量;

接口

定义:一种特殊的类,由全局常量和公共的抽象方法所组成;

类是一种具体实现体,而接口定义了某一批类所要遵守的规范,接口不关心这些类的内部数据,也不关心这些类中方法的实现细节,它只规定这些类中必须提供某些方法;


image.pngUML

定义:统一建模语言或标准建模语言,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持;

异常

处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理;

在多重catch块后面,可以加一个catch(Exception)来处理可能被遗漏的异常;

对于不确定的代码,也可以加上try-catc,处理潜在的异常;

尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出;

具体如何处理异常,要根据不用的业务需求和异常类型去决定;

尽量天剑finally语句块去释放占用的资源;

字符串

String对象创建后不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同;

每次new一个字符串就是产生了一个新对象,即便两个字符串的内容相同,使用"=="比较时也为false,若只需比较内容是否相同,应使用eauals()方法;

image.png==和equals()的区别

==判断两个字符串在内存中首地址是否相同,即判断是否同一个字符串对象;

equals:比较存储在两个字符串对象中的内容是否一致;

StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能更高;

包装类

基本类型和包装类之间的对应关系:


image.png包装类提供的两大类


将本类型和其他基本类型进行转换的方法;

将字符串和本类型及包装类互相装换的方法;

装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱;


拆箱:把包装类对象转换程基本类型的值,分为手动拆箱和自动拆箱;


基本类型转换为字符串的三种方法:


使用包装类的toString()方法;

使用String类的valueof()方法;

用一个空字符串加上基本类型,得到的就是基本数据类型对应的字符串;

将字符串转换为基本类型的两种方法:


调用包装类的parseXxx静态方法;

调用包装类的valueOf()方法转换为基本类型的包装类,会自动拆箱;

时间

调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException,因此需要进行异常处理;

使用Date类时需要导入java.util包,使用SimpleDateFormat时需要导入java.text包;

调用Calendar获取月份时,月份是从0开始的;


image.png集合框架

定义:一种工具类,就像是容器,储存任意数量的具有共同属性的对象;

作用

在类的内部,对数据进行组织;

简单而快速的搜索大数量的条目;

有的集合接口,提供一系列排列有序的元素,且可以在序列中间快速插入或者删除有关元素;

有的集合接口,提供映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型;

数组与集合区别

数组长度固定,集合长度可变;

数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象;


image.pngCollection接口

是List、Set、Queue接口的父接口;

定义了可用于操作List、Set、Queue的方法–增删改查;

List接口及其实现类–ArrayList

List是元素有序且可重复的集合,被称为序列;

List可以精确控制每个元素的插入位置,或删除某个位置元素;

ArrayList–数组序列,是List的一个重要实现类;

ArrayList底层由数组实现;

Map接口

Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value;

Map中的键值对以Entry类型的对象实例形式存在;

键(key)不可以重复,value可以;

每个键最多只能映射到一个值;

Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法;

Map支持泛型,形如:Map<K,V>;

HashMap类

HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;

HashMap中的Entry对象时无序排列的;

Key值和value值都可以为null,但是一个HashMap只能有一个key值为null的映射(key值不可重复);


目录
相关文章
|
2天前
|
云安全 人工智能 自然语言处理
|
9天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
662 56
Meta SAM3开源:让图像分割,听懂你的话
|
6天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
320 116
|
6天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
|
21天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
AgentEvolver:让智能体系统学会「自我进化」
AgentEvolver 是一个自进化智能体系统,通过自我任务生成、经验导航与反思归因三大机制,推动AI从“被动执行”迈向“主动学习”。它显著提升强化学习效率,在更少参数下实现更强性能,助力智能体持续自我迭代。开源地址:https://github.com/modelscope/AgentEvolver
447 32
|
5天前
|
弹性计算 人工智能 Cloud Native
阿里云无门槛和有门槛优惠券解析:学生券,满减券,补贴券等优惠券领取与使用介绍
为了回馈用户与助力更多用户节省上云成本,阿里云会经常推出各种优惠券相关的活动,包括无门槛优惠券和有门槛优惠券。本文将详细介绍阿里云无门槛优惠券的领取与使用方式,同时也会概述几种常见的有门槛优惠券,帮助用户更好地利用这些优惠,降低云服务的成本。
278 133

热门文章

最新文章