java常见题3

news2024/11/16 11:33:16

11.二分查找的次数

image-20221213114829016

奇数取 中间那一个作为中值

偶数个取 中间靠左

然后不断模拟这个算法

image-20221213160632427

查找的最多次数:n个元素里最多查找log二N

个元素Log2 128 = 7

12.equals和hashCode

java.lang.Object类中有两个非常重要的方法:

public boolean equals(Object obj)
public int hashCode()

equals()方法是用来判断其他的对象是否和该对象相等

默认在object的实现是return (this == obj);

但是我们知道,String 、Math、Integer、Double等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法。从而进行的是内容的比较。

需要注意的是当equals()方法被override时,hashCode()也要被override。按照一般hashCode()方法的实现来说,相等的对象,它们的hash code一定相等。

1、相等(相同)的对象必须具有相等的哈希码(或者散列码)。

2、如果两个对象的hashCode相同,它们并不一定相同。

hashMap相关的:

当集合要添加新的元素时,先调用这个元素的hashCode方法,如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。所以这里存在一个冲突解决的问题。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次。

参考

java异常体系

img

两个子类:Exception(异常)和Error(错误)

Error(错误):是程序中无法处理的错误,表示运行应用程序中出现了严重的错误。此类错误一般表示代码运行时JVM出现问题

Exception(异常):程序本身可以捕获并且可以处理的异常。

Exception异常又分为两类:运行时异常和编译异常。

运行时异常(不受检异常)此类异常属于不可查异常,一般是由程序逻辑错误引起的,在程序中可以选择捕获处理,也可以不处理

编译异常(受检异常):Exception中除RuntimeException极其子类之外的异常。如果程序中出现此类异常,比如说IOException,必须对该异常进行处理,否则编译不通过。在程序中,通常不会自定义该类异常,而是直接使用系统提供的异常类。

除RuntimeException及其子类外,其他的Exception异常都属于可查异常。编译器会检查此类异常,也就是说当编译器检查到应用中的某处可能会此类异常时,将会提示你处理本异常——要么使用try-catch捕获,要么使用throws语句抛出,否则编译不通过。

在开发中用的是?to do

13.jre 判断程序是否执行结束的标准是所有的前台线程执行完毕

后台线程就是守护线程,前台线程就是用户线程。

14. mysql主键为啥自增主键比uuid好

MySQL默认的索引结构是B+Tree,代表着索引节点的数据是有序的。

不过一张表中只能存在一个聚簇索引,一般都会选用主键作为聚簇索引

聚簇索引中,索引数据和表数据在磁盘中的位置是一起的

如果使用UUID作为主键,那么每当插入一条新数据,都有可能破坏原本的树结构。但使用自增ID就不会有这个问题,所有新插入的数据都会放到最后。

15.什么是跨域?

  1. 协议不同:如 http 和 https;
  2. 域名不同
  3. 端口不同

springboot 的解决方法

  1. **使用 @CrossOrigin 注解实现跨域 **修饰类,也可以修饰方法

  2. 通过配置文件实现跨域;

    添加 @Configuration 注解,实现 WebMvcConfigurer 接口;

    重写 addCorsMappings 方法,设置允许跨域的代码。

  3. 通过 CorsFilter 对象实现跨域;

    和上一种实现方式类似,它也可以实现全局跨域

    @Configuration // 一定不能忽略此注解

    public class MyCorsFilter {

    @Bean

    public CorsFilter corsFilter() {

    // 1.创建 CORS 配置对象

    ​ CorsConfiguration config = new CorsConfiguration();

  4. 通过 Response 对象实现跨域;

    response.setHeader(“Access-Control-Allow-Origin”, “*”); return new HashMap<String, Object>() {{ put(“state”, 200); put(“data”, “success”); put(“msg”, “”); }};

  5. 通过实现 ResponseBodyAdvice 实现跨域。(过滤器来实现跨域)

是对返回结果进行处理 切面编程!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOV5模型训练

之前在博文中讲到了YOLOV5的运行,以及转tensorrt. 但是, 一个模型通常需要结合数据训练,才能得到更好的结果. 因此,我们有必要熟悉yolov5的训练过程. 执行训练的过程 Yolov5的github提供了官方的训练脚本. 第一次运行,会自动下载数据集,然后会检测到你的gpu配置,如果不对,…

【数据结构】树

树(Tree) 知识框架 树的定义 树和图一样都是非线性结构&#xff0c;树是n个结点的有限集合&#xff0c;当n0时&#xff0c;称这棵树为空树。 非空树有以下特征&#xff1a; 有且仅有一个称为根的结点。如果n>1, 除根结点以外其它结点可以分为m(m>0)个不相交的集合T1,T…

E4445A频谱分析仪

18320918653 E4445A 名称&#xff1a;E4445A 频谱分析仪&#xff0c; 3 Hz - 13.2 GHz 详细&#xff1a;主要技术指标 性能 /-0.24 dB幅度精度 -155 dBm/Hz显示的平均噪声电平&#xff08;DNAL&#xff09; 10 kHz偏置时的相噪&#xff1a;-118 dBc/Hz 81 dB W-CDMA AC…

春节倒计时,让我来秀一手:用Python制作一个对联生成器

前言 跨年跨完了&#xff0c;马上就要迎来春节了&#xff0c;这不得秀一手&#xff1f; 那就直接开始春节的表演呗 勉勉强强来用python制作对联生成器吧 效果展示 这里的话&#xff0c;你自己想要啥春联主题是可以搜索滴&#xff0c;有些地方也是可以看着改的&#xff0c;…

FPGA知识汇集-FPGA的低功耗设计方法总结

精确的热分析在很多电子产品设计中都有着举足轻重的作用&#xff0c;在高端的PCB设计中尤为突出。热分析的结果常常会影响PCB的机械层设计和产品的外壳设计:是否需要安装散热片、散热风扇等。如果安装散热风扇&#xff0c;往往需要降低其噪音&#xff0c;这将使得机械层设计变得…

【OpenAI】What Is ChatGPT

文章目录介绍注册介绍 OpenAI发布了一个全新的聊天机器人模型—— ChatGPT&#xff0c;同时这也是继GPT-3.5 系列的主力模型之一 ChatGPT 测试地址&#xff1a; https://chat.openai.com/auth/login https://gpt.chatapi.art/ ChatGPT官方说明&#xff1a; Optimizing Langua…

【自学Java】Java语言数组遍历

Java语言数组遍历 Java语言数组遍历教程 Java 语言 中如果我们定义好了数组&#xff0c;并且给数组设置了值&#xff0c;那么怎么样访问数组呢&#xff1f;怎么样获取数组里面的数据值呢&#xff1f;我们可以使用 for 来遍历数组&#xff0c;获取每个位置上的值。 Java语言数…

谷粒学院——第十四章、微信扫码登录

准备工作 注册开发者资质 官网&#xff1a;https://open.weixin.qq.com/ 尚硅谷分享 wx:open:# 微信开放平台 appidappid: wxed9954c01bb89b47# 微信开放平台 appsecretappsecret: a7482517235173ddb4083788de60b90e# 微信开放平台 重定向url&#xff08;guli.shop需要在微…

腾讯云存储

文章目录一、开通腾讯云存储1.注册腾讯云账号&#xff0c;开通对象服务2. 创建存储桶3.获取SecretId 和 SecretKey提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、开通腾讯云存储 在项目钟的图片以及文件需要归档存储。如果归档文件只保存到服务器…

WebRTC学习总结

WebRTC (Web Real-Time Communications) 是一项实时通讯技术&#xff0c;它允许网络应用或者站点&#xff0c;在不借助中间媒介的情况下&#xff0c;建立浏览器之间点对点&#xff08;Peer-to-Peer&#xff09;的连接&#xff0c;实现视频流和&#xff08;或&#xff09;音频流…

二十五、Docker (1)

&#x1f33b;&#x1f33b; 目录一、Docker的概述1.1 为什么要去学习Docker1.2 Docker 概述1.3 Docker的历史1.4 Docker 官网1.5 Docker能做什么1.6 DevOps(开发、运维)二、Docker安装启动&#xff08;官网&#xff09;2.1 Docker 架构2.1.1 镜像&#xff08;image)2.1.2 容器…

DICOM 图像传输:使用 LeadTools 实现 C-Store SCP 服务

文章目录开发环境创建 Qt Widgets 程序设计界面配置 LeadTools 路径编写代码使用 LDicomNet 实现 SCP 的步骤日志输出编写 SCP Server 类编写 SCP Client 类启动 LDicomNet 及启动监听编译程序运行程序发布与部署测试程序界面美化参考开发环境 LeadTools 17Qt 5.15.2 MSVC2019…

【Linux】进程间通信(万字详解) —— 上篇

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…

谷粒学院——第九章、阿里云视频点播

阿里云视频点播 开通 地址&#xff1a; 上传测试 开通以后&#xff0c;点击控制台&#xff0c;然后选择音/视频&#xff1a; 注意&#xff1a;先点击启用存储地址再上传。 添加转码模版&#xff1a; 开发文档 官方地址&#xff1a;https://help.aliyun.com/p…

批量统计不同块的数量

CAD收集块的数量一般采用FI等命令&#xff0c;或者使用天正等软件&#xff0c;这些方法或多或少都存在某些问题。这时就可以编写插件满足不同场景的使用。已应用到实际工作中。 一、界面及其功能 采用c#制作cad插件&#xff0c;框选待统计范围&#xff0c;直接输出到表格中&…

数据库连接超时的处理

报错信息&#xff1a;Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)at com.zaxxer.hikari.pool.H…

Java高手速成 | 数据库实训:图书馆管理系统建模

图书馆管理系统是常见的管理信息系统&#xff0c;考虑到系统的推广性&#xff0c;本系统采用SQL SERVER2000作为数据库。并且采用PowerDesigner进行数据建模&#xff0c;从而自动生成sql脚本。 01、数据库概念设计 1. 数据库表设计 管理员表admin&#xff1a;管理员编号&am…

[JavaEE] volatile与wait和notify

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 一.volatile 关键字. 1.volatile 能保证内存可见性…

12个爆款 Java 开源项目

1JavaGuidehttps://github.com/Snailclimb/JavaGuide Star 10503【Java学习面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。2symphonyhttps://github.com/b3log/symphony Star 6664一款用 Java 实现的现代化社区&#xff08;论坛/BBS/社交网络/博客&#xff09;平台…

17-Golang中的包

Golang中的包基本介绍包的三大作用相关说明包的注意事项和细节说明基本介绍 1.在实际的开发中&#xff0c;我们往往需要在不同的文件中&#xff0c;去调用其他文件的定义的幻术&#xff0c;比如main.go中&#xff0c;去使用utils.go文件中的函数2.包的本质就是创建不同的文件夹…