Java基础

简介: 重载指方法名相同但参数不同,发生在编译期;重写指父子类中同名同参方法,发生在运行期。String不可变,StringBuilder非线程安全,StringBuffer线程安全,适用于多线程场景。

1.1 重载与重写的区别

·重载是对象的方法之间,它们方法名相同,但方法的参数列表不同

重写是父子类(包括接口与实现类)中两个同名方法,它们方法名相同,且方法的参数列表相同重载在编译阶段,由编译器根据传递给方法的参数来区分方法,例如

·而重写是在运行阶段,由虚拟机解释器去获取引用对象的实际类型,根据类型才能确定该调用哪个方法,例如有没有发生重写,可以使用 @Override 来检查

1.2String,StringBuilder 和StringBuffer 的区别

它们都可以用来表示字符串对象

·String 表示的字符串是不可变的,而后两者表示的字符串是内容可变的(可以增、删、改字符串里的内容)·StringBuilder 不是线程安全的,StringBuffer 是线程安全的,而 String 也算是线程安全的适用场景

·大部分场景下使用 String 就足够了

如果有大量字符串拼接的需求,建议用后两者,此时

此字符串对象需要被多线程同时访问,用 StringBuffer 保证安全

此字符串对象只在线程内被使用,用 StringBuilder 足够了另外针对 String 类是 final 修饰会提一些问题,把握下面几点

·本质是因为 String 要设计成不可变的,final 只是条件之一

·不可变的好处有很多:线程安全、可以缓存等

相关文章
|
2天前
|
存储 SQL 关系型数据库
什么是回表查询
MySQL中InnoDB引擎的聚簇索引将数据与索引存储在一起,叶子节点存整行数据,每表仅一个;二级索引则分离存储,叶子节点存主键值。回表查询需先查二级索引再查聚簇索引,性能较低。优化方式包括:优先主键查询、使用联合索引实现覆盖索引、利用MySQL 5.6+的索引下推功能,在存储引擎层提前过滤,减少回表次数,提升查询效率。(238字)
|
2天前
|
存储 算法 搜索推荐
线性结构检索:从数组和链表的原理初窥检索本质
本节深入解析数组与链表的存储特性及其对检索效率的影响。数组支持随机访问,适合二分查找,检索效率为O(log n);链表虽检索较慢,但插入删除高效,适用于频繁动态调整场景。通过改造链表结构,如结合数组提升检索性能,揭示了数据组织方式对检索的核心作用,帮助理解“快速缩小查询范围”这一检索本质。
|
2天前
|
程序员 API
7、Lambda表达式
Lambda表达式又称匿名函数,语法为(参数)->表达式,本质是函数对象,用于行为参数化,如Stream API、QueryWrapper等场景。相比匿名内部类,Lambda更简洁,需配合函数式接口使用,且在运行时动态生成类,其this指向也与匿名内部类不同。
|
2天前
|
运维 Kubernetes Java
物理部署图
物理部署图描述系统运行时的硬件配置与软件部署结构,展现节点、构件、物件及连接关系,常用于理解分布式系统。通过UML元素如节点(ECS、K8s Node)、构件(Pod)、Artifact(jar包)和网络连接,呈现应用如何在真实环境中部署运行,是开发与运维协同的重要工具。
|
2天前
|
JSON 缓存 前端开发
什么是跨域
跨域是指浏览器限制脚本向不同源服务器发起请求的安全策略。CORS(跨域资源共享)是W3C标准,通过服务器设置响应头,允许浏览器安全地进行跨域请求。支持简单请求与需预检的复杂请求,兼容现代浏览器,较JSONP更灵活强大。
11 0
|
2天前
|
存储 算法 关系型数据库
06丨数据库检索:如何使用 B+ 树对海量磁盘数据建立索引?
本节深入探讨磁盘环境下大规模数据检索的挑战与解决方案,重点讲解B+树如何通过索引与数据分离、多阶平衡树结构及双向链表优化,实现高效磁盘I/O和范围查询,广泛应用于数据库等工业级系统。
|
2天前
|
Java Maven Docker
12-Docker发布微服务
本文介绍如何搭建SpringBoot项目并发布至Docker容器。包括创建Maven工程、编写主类与Controller、打包成jar,并通过Dockerfile构建镜像,最终运行容器部署微服务,实现快速交付与运行。
14 3
|
2天前
|
存储 算法 Java
链表(链式存储)基本原理
链表是一种通过指针串联节点的线性结构,无需连续内存,支持高效增删。单链表仅有next指针,双链表增加prev指针以支持双向遍历。相比数组,链表插入删除灵活,无扩容负担,但不支持随机访问,查找需从头遍历。实际开发中常用双链表,配合虚拟头结点简化操作。
|
2天前
|
Linux Shell 虚拟化
-Docker网络
Docker网络通过虚拟网桥docker0实现容器间通信与隔离。默认采用bridge模式,为容器分配IP并连接至docker0网桥,支持通过服务名互访。借助Linux namespace和cgroup特性实现网络隔离,提供bridge、host、none、container四种网络模式,灵活满足不同场景需求。
|
2天前
|
SQL 弹性计算 安全
选购阿里云活动中的云服务器之后,后续购买并挂载云盘,设置密码及安全组教程参考
如果我们通过阿里云的活动购买云服务器,在选择配置参数的时候会发现通常情况下默认配置下只有系统盘,而没有数据盘。另外,还需要我们设置好云服务器的密码,配置安全组等基本操作之后才能使用。本文为大家展示当我们通过阿里云的活动购买完云服务器之后,后续购买挂载云盘及设置云服务器密码和安全组的相关流程,以供参考。