Java基础

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

1.1 重载与重写的区别

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

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

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

1.2String,StringBuilder 和StringBuffer 的区别

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

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

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

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

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

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

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

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

相关文章
|
5月前
|
存储 SQL 关系型数据库
什么是回表查询
MySQL中InnoDB引擎的聚簇索引将数据与索引存储在一起,叶子节点存整行数据,每表仅一个;二级索引则分离存储,叶子节点存主键值。回表查询需先查二级索引再查聚簇索引,性能较低。优化方式包括:优先主键查询、使用联合索引实现覆盖索引、利用MySQL 5.6+的索引下推功能,在存储引擎层提前过滤,减少回表次数,提升查询效率。(238字)
|
5月前
|
JavaScript
1.2 NodeJS安装
本节介绍Node.js的安装方法,可通过官网或本地安装包进行。安装时需选择无空格的英文路径,并参考手册完成。安装后通过“win+R→cmd→node -v”命令验证环境,能输出版本号即成功,版本无需与示例一致。
|
5月前
|
存储 算法 搜索推荐
线性结构检索:从数组和链表的原理初窥检索本质
本节深入解析数组与链表的存储特性及其对检索效率的影响。数组支持随机访问,适合二分查找,检索效率为O(log n);链表虽检索较慢,但插入删除高效,适用于频繁动态调整场景。通过改造链表结构,如结合数组提升检索性能,揭示了数据组织方式对检索的核心作用,帮助理解“快速缩小查询范围”这一检索本质。
|
5月前
|
程序员 API
7、Lambda表达式
Lambda表达式又称匿名函数,语法为(参数)->表达式,本质是函数对象,用于行为参数化,如Stream API、QueryWrapper等场景。相比匿名内部类,Lambda更简洁,需配合函数式接口使用,且在运行时动态生成类,其this指向也与匿名内部类不同。
|
5月前
|
SQL 弹性计算 安全
选购阿里云活动中的云服务器之后,后续购买并挂载云盘,设置密码及安全组教程参考
如果我们通过阿里云的活动购买云服务器,在选择配置参数的时候会发现通常情况下默认配置下只有系统盘,而没有数据盘。另外,还需要我们设置好云服务器的密码,配置安全组等基本操作之后才能使用。本文为大家展示当我们通过阿里云的活动购买完云服务器之后,后续购买挂载云盘及设置云服务器密码和安全组的相关流程,以供参考。
|
5月前
|
存储 缓存 Java
SpringBoot自动装配机制
SpringBoot通过@SpringBootApplication实现自动装配,其核心为@AutoConfigurationPackage与@AutoConfigurationImportSelector。前者注册主包路径,后者加载spring.factories中配置的自动配置类,结合@ComponentScan与过滤机制,实现Bean的自动扫描、去重与注入,简化开发配置。
475 1
|
5月前
|
缓存 Java 关系型数据库
微服务原理篇(XXLJOB-幂等-MySQL)
本课程深入讲解微服务架构下的任务调度与数据一致性方案,涵盖XXL-JOB分布式调度原理、幂等性设计、MySQL存储引擎对比、索引优化及SQL调优策略。通过实战掌握热点数据缓存预热、分片广播任务处理、避免重复执行等核心技能,提升系统性能与可靠性。(238字)
|
5月前
|
Java Maven Spring
SpringBoot中如何自定义starter
自定义Spring Boot Starter通常包含两个模块:starter负责依赖管理,autoconfigure实现自动配置。前者引入后者。在autoconfigure中,通过@Configuration和@Bean定义配置类与Bean,并结合@Conditional条件注解控制Bean的创建;最后在META-INF/spring.factories(或Spring Boot 3的xxx.imports文件)中注册自动配置类全名,完成自动化配置。
|
5月前
|
存储 弹性计算 人工智能
大模型应用开发
大模型应用开发需通过API与模型交互,企业可选择开放API、云平台或本地服务器部署。开放API使用便捷但存在安全与成本问题;云部署易维护但仍有隐私风险;本地部署安全性高、长期成本低,适合企业级应用,不建议个人电脑部署。
|
5月前
|
Java Maven Spring
SpringBoot中如何自定义starter
自定义Spring Boot Starter通常包含两个模块:starter负责依赖管理,autoconfigure实现自动配置。前者引入后者,并通过@Configuration和@Conditional定义配置类,在spring.factories或SpringAutoConfiguration.imports中注册,实现按需自动装配,便于多项目复用。

热门文章

最新文章