基础面试题整理2

1.抽象类与接口区别

语法:

  • 抽象类用abstract定义;接口用interface定义
  • 抽象类被子类继承extends(不可用final修饰);接口被类实现implements
  • 抽象类的属性访问无限制,方法不可用private修饰;接口中的方法只能用public修饰,变量用public static final

语义:

是什么用抽象类(名词),能做什么用接口(动词)

 2.hashcode与equals使用

hashcode用于获取对象的唯一的散列码(整数int)

equals用于比较对象的地址

hashmap是一对一对由key-value组成的数据,hashmap底层是哈希表结构(数组+链表/红黑树),若单一链表的长度大于8个,数组长度大于64个则自动将链表转换为红黑树存储;反之会将红黑树转换为链表存储;

Entry[]数组,Entry对象由hashcode、key、value、下一节点指针组成

put(key,value)原理

  1. key,value封装为node节点
  2. 根据key值生成hashcode
  3. 根据哈希算法算出hashcode在数组中的存放位置(下标),若下标没有数据,则直接将该node节点放在该位置;若下标有链表,则对key与链表的key节点进行比较,若与链表的key都不同,则将该节点放在链表末尾;否则数据value覆盖

get(key)原理 

  1. 根据key值生成hashcode
  2. 根据哈希算法计算出数组的下标,定位到数组位置,若下标没有数据,则返回null;若下标有链表,则拿着key与链表的key节点一一比较,若与链表的key都不同,则返回null;若与链表的某一节点的key值相同,则返回其value值

 哈希表结构如图所示:

3.Java代理方式

 动态代理分为 jdk代理和cglib代理,详情可见 jdk代理 及 cglib代理

jdk代理

代理对象通过实现目标类接口利用反射机制来获取其对应的所有方法,并通过invocationHandler的invoke方法进行调用原生方法及方法增强

cglib代理

代理对象通过继承目标类重写其方法,并通过methodInterceptor的intercept方法进行调用原生方法及方法增强

4.==与equals区别

equals是方法,==是运算符,都是判断是否相等

==:比较的对象若是基本数据类型,则判断数值;若是引用数据类型,则判断对象的地址

equals():判断两个对象的内容是否相等,不可用于基本数据类型变量的比较

5.异常处理机制

异常有抛出异常 throw(方法内部,抛出异常对象)、throws(方法声明);捕获异常try-catch-finally

常见异常

编译异常:ClassNotFoundException、SQLException、IOException

运行异常:NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException

系统错误:OutOfMerroyError

6. 重载与重写

重载与重写都体现了多态性,重载体现了编译多态性,重写是运行时多态性

重载发生在一个类中,只是参数不同

重写发生在父类与子类,只是内容不同

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

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

相关文章

BRC20 技术分析

文章目录 什么是 BRC20 ?brc20 白皮书。重点基于链上数据解析获取交易详情返回值如何将 16 进制转换为 字符串没有节点,如何获取数据?见证隔离如何解析出 BRC20 数据?最后如何快速搭建节点BRC20 Indexer

[C#]使用sdcb.paddleocr部署v4版本ocr识别模型

【官方框架地址】 https://github.com/sdcb/PaddleSharp 【算法介绍】 PaddleOCR,全称为PaddlePaddle OCR,是PaddlePaddle深度学习平台下的一款强大的光学字符识别工具。它利用深度学习技术,实现了高精度的文字识别,可以帮助用户…

计数器的LED显示控制电路图

如图所示,图a中采用十进制七段存储-译码-驱动单元74143,此单元对所有段都有恒流输出。在电压为5V时每段电流约为15~22mA.七段译码器的BCD数据可以由脚17~20上取出。脚22用于进位,即当计数值到9后就为低电平,其余为高电平。利用这个信号可以控…

Eureka工作原理及代码实例

Eureka是Netflix开源的一个服务发现框架,它的作用是让分布式系统中的服务实例能够自动注册和发现。本篇博客将详细介绍Eureka的工作原理及其组件。 1、Eureka的基础组件 Eureka包含两个基本组件:Eureka Server和Eureka Client。Eureka Server为服务注册…

测试:Fuzz测试

简介 Fuzz测试(Fuzz Testing)是一种软件测试技术,其核心思想是向系统输入大量异常、随机生成的数据(称为“模糊数据”或“fuzz”),以此触发系统潜在的错误或漏洞,如崩溃、安全漏洞、性能问题等…

Python:isalpha() 和 isalnum() 区别

isalpha() 和 isalnum() 是 Python 中的字符串方法,用于判断字符串是否仅包含特定类型的字符。下面我会逐个介绍这两个函数的语法结构、参数含义、使用举例和适用场景,并解释它们之间的区别。 一、isalpha() 语法结构:string.isalpha() 参数…

Matlab:遗传算法,模拟退火算法练习题

1、遗传算法 (1)遗传算法是一种基于自然选择原理和自然遗传机 制的搜索(寻优)算法,它是模拟自然界中的生命进化机制,在人工系统中实现特定目 标的优化。遗传算法的实质是通过群体搜索技术,根据…

神经网络中的重要概念

神经网络是一种模拟生物神经网络结构和功能的计算模型,由许多节点(或称为神经元)和它们之间的连接构成。以下是一些神经网络中的重要概念,并对它们进行细致的讲解: 神经元(Neuron):神…

捕捉“五彩斑斓的黑”:锗基短波红外相机的多种成像应用

红外处于人眼可观察范围以外,为我们了解未知领域提供了新的途径。红外又可以根据波段范围,分为短波红外、中波红外与长波红外。较短的SWIR波长——大约900nm-1700nm——与可见光范围内的光子表现相似。虽然在SWIR中目标的光谱含量不同,但所产…

Debezium发布历史51

原文地址: https://debezium.io/blog/2019/03/14/debezium-meets-quarkus/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Debezium 遇见 Quarkus 三月 14, 2019 作者: Jiri Pechanec qu…

瓢虫目标检测数据集VOC格式400张

瓢虫,一种小巧玲珑、色彩鲜艳的昆虫,因其独特的形态和生态习性而受到广泛欢迎。 瓢虫的体型小巧,一般为圆球形,体色鲜艳,有红、黄、黑等多种颜色。它们通常有一个坚硬的外壳,可以保护自己不受天敌的侵害。…

Spark回归分析与特征工程

回归分析是统计学和机器学习中的一个重要分支,用于建立因变量与自变量之间的关系模型。在大数据领域,Apache Spark为回归分析提供了强大的工具和库,以处理大规模数据集。本文将深入探讨如何使用Spark进行回归分析以及如何进行特征工程&#x…

AtomicReference自旋加CAS保证对象引用原子性

AtomicReference类提供了对象引用的非阻塞原子性读写操作,并且提供了其他一些高级的用法,对象的引用其实是一个4字节的数字,代表着在JVM堆内存中的引用地址,对一个4字节数字的读取操作和写入操作本身就是原子性的 package Atomic…

【微服务合集】

文章目录 MyBatisPlusMyBatisPlus 注解WrapperMybatisPlus批量插入(saveBatch)MyBatisPlus 分页插件 DockerDockerfileDocker网络Docker部署项目 黑马微服务文档尚硅谷SpringBoot2尚硅谷SpringBoot3 MyBatisPlus MyBatisPlus 注解 TableName TableId TableField MyBatisPlu…

冬天夺去的清爽,可爱,春天都会还给你

这款外套上身可太时尚好看了 春天日常穿着或者出行游玩 应对早晚温差,兼具时尚和温度两不误 干净率性闲适的洒脱范整件衣服干净不失细节 下摆有橡筋收紧更加保暖了工艺方面也毫不逊色,防水拉链 四合扣、猪鼻扣一应俱全简直就是一件实用与时尚并存的…

Embedded-Project项目介绍

Embedded-Project项目介绍 Server后端项目后端启动连接数据库启动时可能遇到的问题架构介绍 web前端项目前端启动启动时可能遇到的问题架构介绍 前后端分离开发流程 项目地址: https://github.com/Catxiaobai/Embedded-Project Server后端项目 系统后端项目&#…

字符编码类型有哪些mysql中编码类型的定义

字符编码类型有很多种,以下是一些常见的字符编码类型: ASCII码:这是最常用的字符编码,它用7位二进制数表示一个字符,总共可以表示128种不同的字符。 ISO/IEC 8859-1码:这是一种8位字符编码,也被…

Unity中URP下的线性雾

文章目录 前言一、线性雾 雾效因子二、MixFog1、ComputeFogIntensity 雾效强度计算2、雾效颜色混合 lerp(fogColor, fragColor, fogIntensity); 前言 在之前的文章中,我们实现了URP下的雾效支持。 Unity中URP下的添加雾效支持 在上一篇文章中,我们解析了 URP 下统…

【读书】《白帽子讲web安全》个人笔记Ⅱ-1

目录 第二篇 客户端脚本安全 第2章 浏览器安全 2.1同源策略 2.2浏览器沙箱 2.3恶意网址拦截 2.4高速发展的浏览器安全 第二篇 客户端脚本安全 第2章 浏览器安全 近年来随着互联网的发展,人们发现浏览器才是互联网最大的入口,绝大多数用户使用互联…

[Flutter]WebPlatform上运行遇到的问题总结

[Flutter]WebPlatform上运行遇到的问题总结 目录 [Flutter]WebPlatform上运行遇到的问题总结 写在开头 正文 Q1、file_version_info.dart Q2、不兼容判断 Q3、跨域问题 Q4、flutter clean ,无法删除build文件夹 其他 写在结尾 写在开头 Flutter项目已能在…