网站上上传图片 怎么做/适合推广的app有哪些
七、异常
- throw 和 throws 的区别?
throw
用来显式地抛出一个异常,而throws
则用于在方法声明中指明该方法可能抛出的异常。简单来说,throw
是抛出异常的实际动作,throws
是告知调用者这个方法可能会抛出哪些异常的声明。
- final、finally、finalize 有什么区别?
final
是一个修饰符,用来表示不可改变的,比如常量、无法被继承的类、不可重写的方法。finally
是用于捕获异常时,保证一定会执行的代码块,即使捕获的异常没有处理。finalize
是一个方法,它会在垃圾回收器确定没有引用指向对象后,自动调用,用于清理资源。
- try-catch-finally 中哪个部分可以省略?
- 你可以省略
catch
部分,仅保留try
和finally
。在这种情况下,即使没有捕捉到异常,finally块中的代码依然会执行。
- try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
- 是的,不管
catch
中有没有return
语句,finally
块中的代码都一定会执行。即使在catch
中抛出异常或者return
,finally
块都会执行。
- 常见的异常类有哪些?
- 常见异常类包括:
NullPointerException
:空指针异常。ArrayIndexOutOfBoundsException
:数组越界异常。ClassCastException
:类型转换异常。IOException
:输入输出异常。SQLException
:数据库访问异常。IllegalArgumentException
:非法参数异常。
八、网络
- http 响应码 301 和 302 代表的是什么?有什么区别?
301
表示永久重定向,告诉客户端所请求的资源已被永久移动到新 URL。302
表示临时重定向,资源临时在新位置,客户端仍应使用原有 URL。因此,301在SEO上更有利,因为它告知搜索引擎新地址是永久的。
- forward 和 redirect 的区别?
forward
是服务器内部的转发,客户端只会看到一个请求,URL不变;而redirect
是客户端收到回应后会发送一个新的请求,URL会变化。这意味着forward
无法携带参数,而redirect
可以。
- 简述 tcp 和 udp的区别?
- TCP是面向连接的协议,保证数据包的顺序和完整性,适合需要可靠性的应用,比如HTTP。而UDP是无连接的,不保证发送顺序,适合对速度敏感但不需要可靠性的应用,比如视频直播。
- tcp 为什么要三次握手,两次不行吗?为什么?
- 三次握手用来确保双方都能发送和接收信息,第一次握手是客户端发起连接请求,第二次是服务端确认连接,第三次是客户端确认收到。两次握手无法确保连接的可靠性,可能导致数据丢失或连接成立失败。
- 说一下 tcp 粘包是怎么产生的?
- 粘包是指多个TCP数据包被合并成一个包发送,或者一个数据包被分成多个小包发送。产生的原因主要是因为TCP是面向流的协议,数据的边界不是固定的,当发送方进行快速发送时,接收方可能接收到粘在一起的数据。
- OSI 的七层模型都有哪些?
- 七层模型包括:
- 物理层:传输位流(电缆、光缆等)。
- 数据链路层:点对点之间的传输(如MAC地址)。
- 网络层:路由选择与转发(如IP协议)。
- 传输层:确保数据完整性(如TCP、UDP)。
- 会话层:管理会话的建立与管理。
- 表示层:数据格式转换与加密。
- 应用层:用户与应用的交互(如HTTP、FTP等)。
- get 和 post 请求有哪些区别?
GET
请求在URL中传递数据,并且数据长度有限,适合获取资源。POST
请求将数据放在请求体中,包含的数据量大且没有长度限制,适合创建或更新资源。此外,GET
请求是幂等的,而POST
可能会造成副作用。
- 如何实现跨域?
- 跨域请求可以通过以下几种方式实现:
- CORS(跨域资源共享)是最常见的方法,通过设置HTTP头来允许特定域的访问。
- JSONP可以用于GET请求,通过脚本标签的方式来跨域。
- 反向代理,即通过后端服务代理数据请求。
- 说一下 JSONP 实现原理?
- JSONP(JSON with Padding)通过动态生成
<script>
标签,实现跨域请求。请求的响应是一个函数调用,将数据作为参数传递给该函数。由于浏览器支持跨域加载<script>
标签,JSONP可以绕过同源策略。
九、设计模式
- 说一下你熟悉的设计模式?
- 我比较熟悉的设计模式包括:
- 单例模式:确保一个类只有一个实例,并提供全局访问。
- 工厂模式:提供一个接口用于创建对象,但具体实现由子类决定。
- 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象状态改变时,其它依赖对象会收到通知并自动更新。
- 策略模式:定义一系列相似的算法,将它们封装起来并使它们可以相互替换。
- 简单工厂和抽象工厂有什么区别?
- 简单工厂模式将对象的创建和使用分离,客户端通过工厂类来获取对象,而抽象工厂模式则提供一个接口来创建一系列相关或相互依赖的对象。简单工厂通常是针对某一类产品,而抽象工厂则是工厂类和产品类的抽象,更加具有灵活性。
十、Spring/Spring MVC
- 为什么要使用 spring?
- Spring框架提供了松耦合的架构,支持控制反转(IoC)和面向切面编程(AOP),使得代码更加模块化,易于测试和维护。另外,Spring具有丰富的生态系统,能够集成各种框架和技术。
- 解释一下什么是 aop?
- AOP(面向切面编程)是一种编程范式,用于将横切关注点(如日志、事务管理、安全性)分离出业务逻辑代码,提高代码的可重用性与维护性。
- 解释一下什么是 ioc?
- IoC(控制反转)是一种设计原则,它将对象的创建与对象的使用分离。在Spring中,通过IoC容器来管理对象的生命周期和依赖关系,让对象不再自己创建依赖。
- spring 有哪些主要模块?
- Spring主要模块包括:
- Spring Core:IoC和依赖注入。
- AOP:面向切面编程。
- Data Access/Integration:数据访问和集成模块。
- Web:Web开发模块。
- Spring MVC:基于请求响应的Web框架。
- Spring Security:安全框架。
- Spring Boot:快速构建Spring应用的工具。
- spring 常用的注入方式有哪些?
- Spring有三种常用的注入方式:
- 构造器注入:通过构造函数传递依赖。
- setter方法注入:通过setter方法进行依赖注入。
- 接口注入:通过实现特定接口的方式进行依赖注入。
- spring 中的 bean 是线程安全的吗?
- Spring中的单例Bean是线程安全的,因为它们是单一实例在整个应用中共享的。但如果Bean的属性是可变的,你需要保证自身的线程安全。对于作用域为Prototype的Bean,则每次请求都会创建新实例,不存在线程安全问题。
- spring 支持几种 bean 的作用域?
- Spring支持多种Bean作用域:
- singleton:单例,默认作用域。
- prototype:原型,每次请求都创建新的Bean。
- request:Web环境下,每个HTTP请求都会生成一个Bean。
- session:Web环境下,每个HTTP会话都会生成一个Bean。
- globalSession:在Portlet环境下,每个全局会话生成一个Bean。
- spring 自动装配 bean 有哪些方式?
- Spring自动装配有几种方式:
- byType:根据类型进行自动装配。
- byName:根据Bean名称进行装配。
- constructor:通过构造方法进行装配。
- @Autowired注解:用于标注要自动装配的字段、方法或构造函数。
- spring 事务实现方式有哪些?
- Spring支持两种事务管理方式:
- 声明式事务管理:通过XML配置或注解(如
@Transactional
)来管理事务。 - 编程式事务管理:通过TransactionTemplate手动管理事务。
- 声明式事务管理:通过XML配置或注解(如
- 说一下 spring 的事务隔离?
- Spring支持五种事务隔离级别:
- DEFAULT:使用数据库默认隔离级别。
- READ_UNCOMMITTED:允许读取未提交的数据。
- READ_COMMITTED:只能读取已提交的数据。
- REPEATABLE_READ:在同一事务中多次读取,相同数据一致性。
- SERIALIZABLE:最高隔离级别,完全避免并发。
- 说一下 spring mvc 运行流程?
- Spring MVC流程:
- 客户端发送请求。
- DispatcherServlet接收请求并根据URL找到对应的Controller。
- Controller处理请求并返回Model和View。
- ViewResolver根据逻辑视图名找到具体的视图。
- DispatcherServlet将Model传递给视图,生成最终的HTML响应返回给客户端。
- spring mvc 有哪些组件?
- Spring MVC的主要组件包括:
- DispatcherServlet:中央控制器,负责请求调度。
- Controller:处理请求的业务逻辑。
- ModelAndView:封装模型数据和视图信息。
- ViewResolver:解析视图。
- HandlerMapping:映射请求到具体的Controller。
- @RequestMapping 的作用是什么?
@RequestMapping
用于将HTTP请求的URL映射到对应的Controller方法,从而定义该方法如何处理请求,包括请求方法、URL模式等。
- @Autowired 的作用是什么?
@Autowired
注解用于自动装配Bean,可以标注在字段、构造方法或setter方法上,Spring会根据类型或名称自动匹配并注入依赖对象。
相关文章:

2024最新!!Java后端面试题(4)看这一篇就够了!!!!
七、异常 throw 和 throws 的区别? throw用来显式地抛出一个异常,而throws则用于在方法声明中指明该方法可能抛出的异常。简单来说,throw是抛出异常的实际动作,throws是告知调用者这个方法可能会抛出哪些异常的声明。 final、f…...

springboot整合sentinel和对feign熔断降级
一、准备 docker安装好sentinel-dashboard(sentinel控制台),参考docker安装好各个组件的命令启动sentinel-dashboard,我的虚拟机ip为192.168.200.131,sentinel-dashboard的端口为8858 二、整合sentinel的主要工作 在…...

遗传算法与深度学习实战——使用进化策略实现EvoLisa
遗传算法与深度学习实战——使用进化策略实现EvoLisa 0. 前言1. 使用进化策略实现 EvoLisa2. 运行结果相关链接 0. 前言 我们已经学习了进化策略 (Evolutionary Strategies, ES) 的基本原理,并且尝试使用 ES 解决了函数逼近问题。函数逼近是一个很好的基准问题&…...

HttpServletRequest简介
HttpServletRequest是什么? HttpServletRequest是一个接口,其父接口是ServletRequest;HttpServletRequest是Tomcat将请求报文转换封装而来的对象,在Tomcat调用service方法时传入;HttpServletRequest代表客户端发来的请…...

c++开发之编译curl(安卓版本)
为了在 Android 上编译支持 OpenSSL 的 libcurl,你需要手动编译 libcurl 和 OpenSSL,并确保它们能够在 Android 的交叉编译环境中正常工作。以下是详细的步骤说明。 1. 安装必要工具 在编译之前,确保你已经安装了以下工具: And…...

QT+ESP8266+STM32项目构建三部曲三--QT从环境配置到源程序的解析
一、阿里云环境配置 大家在编写QT连接阿里云的程序之前,先按照下面这篇文章让消息可以在阿里云上顺利流转 QTESP8266STM32项目构建三部曲二--阿里云云端处理之云产品流转-CSDN博客文章浏览阅读485次,点赞7次,收藏4次。创建两个设备ÿ…...

Web APIs 5:Window对象(BOM)+本地存储
Web APIs 5(BOM:Window对象本地存储) 1.BOM(浏览器对象模型)(后面几个对象都为BOM对象) BOM对象包含:navigator、location、document(DOM对象)、history、screenBOM是一个全局对象,即JS中的顶…...

神经网络(四):UNet图像分割网络
文章目录 一、简介二、网络结构2.1编码器部分2.2解码器部分2.3完整代码 三、实战案例 论文链接:点击跳转 一、简介 UNet网络是一种用于图像分割的卷积神经网络,其特点是采用了U型网络结构,因此称为UNet。该网络具有编码器和解码器结构&#…...

Java 编码系列:注解处理器详解与面试题解析
引言 在上一篇文章中,我们详细探讨了 Java 注解的基本概念、自定义注解、元注解等技术。本文将继续深入探讨 Java 注解处理器(Annotation Processor),介绍如何编写注解处理器,并结合大厂的最佳实践和面试题详细解析其…...

C语言 | Leetcode C语言题解之第441题排列硬币
题目: 题解: class Solution { public:int arrangeCoins(int n) {return (int) ((sqrt((long long) 8 * n 1) - 1) / 2);} };...

Linux noVNC远程桌面(xfce)部署
一、安装 VNC 服务器和桌面环境 Notebook实验 常用vnc服务 VNC (Virtual Network Computing) 是一种远程桌面协议,可以让你通过网络访问服务器的图形界面。 TurboVNC:专为图形密集型应用设计,尤其适合 3D 可视化和高分辨率图像的远程传输…...

【网络安全】身份认证
1. 身份认证 1.1 定义 身份认证(Authentication)是确认用户身份的过程,确保只有授权的用户才能访问系统或资源。它通常涉及验证用户提供的凭证,如密码、生物特征或其他识别标志。 1.2 重要性 身份认证是信息安全的第一道防线&…...

LeetCode - #124 二叉树中的最大路径和(Top 100)
文章目录 前言1. 描述2. 示例3. 答案关于我们前言 本题为 LeetCode 前 100 高频题 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新到 123 期…...

Java:插入排序
目录 排序的概念 插入排序 直接插入排序 哈希排序 排序的概念 排序:所谓的排序,就是使一串记录,按照某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个…...

How FAR ARE WE FROM AGI?(ICLR AGI Workshop 2024)概览
关注B站可以观看更多实战教学视频:hallo128的个人空间 How FAR ARE WE FROM AGI?官网 How FAR ARE WE FROM AGI?(ICLR AGI Workshop 2024) 该研讨会将于2024年5月11日在奥地利维也纳以混合模式举行,作为 ICLR 2024年会议的一部…...

leetcode刷题day33|动态规划Part02(62.不同路径、63. 不同路径 II、 343.整数拆分、96.不同的二叉搜索树)
62.不同路径 机器人从(0 , 0) 位置出发,到(m - 1, n - 1)终点。 动规五部曲 1、确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路…...

基于Python大数据的B站热门视频的数据分析及可视化系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

matlab-批处理图像质量变化并形成折线图 (PSNR)
%修改路径就能用,图片分辨率要一致 %clc;clear all;close all;tic;%清理内存 file_pathE:\test\resources\image\;% 批量图像所在的文件夹下 file_save_pathE:\test\resources\SaveImage\;% 要存储的地址 img_path_listdir(strcat(file_path,*.jpg));% 获取批量bm…...

[Doc][Ros2]ros2中Qos(Quality of Service,服务质量)介绍
在 ROS 2 中,QoS(Quality of Service,服务质量)是用于控制节点之间消息传递的可靠性、历史存储和数据持久性等方面的机制。通过 QoS 设置,用户可以更细粒度地控制消息传递的行为,确保在不同网络环境或应用场景中满足特定的通信需求。 几个常用的包: QoSProfile: 含义…...

SpringBoot日志集成-LogBack
Log4J:最早的Java日志框架之一,由Apache基金会发起,提供灵活而强大的日志记录机制JDK自带的日志框架:java.util.logging.Logg,是JDK1.4之后提供的日志API,已淘汰logback: logback一个开源的日志…...

Google BigTable架构详解
文章目录 什么是BigTable?架构图一、整体架构二、数据存储与索引存储模型 三、数据拆分与存储四、元数据管理五、读写流程 其他内容概览负载平衡其他存储和数据库选项 什么是BigTable? Bigtable是Google开发的一个高性能、可扩展的分布式存储系统,用于管理大规模…...

【python】如何切换ipynb的kernel至指定conda环境
需求介绍 打开(若无新建环境) 环境 conda env list conda activate cvml conda install ipykernel python -m ipykernel install --name cvml 以上完成后,打开jupyter 创建一个python文件 在kernel——>change kernel——>python[conda env:cvml] 参考资料…...

Linux【基础指令汇总】
目录 Linux命令的特点 1、文件管理 ls命令 cp命令 mkdir命令 mv命令 pwd命令 2、文档编辑 cat命令 echo命令 rm命令 tail命令 rmdir命令 3、系统管理 rpm命令 find命令 startx命令 uname命令 vmstat命令 4、磁盘管理 df命令 fdisk命令 lsblk命令 hdpar…...

SpringCloud-EurekaClient
创建Module pom.xml <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency> spring:application:name: provider # 应用程序的名称,…...

配置Scrapy项目
配置Scrapy项目是一个涉及多个步骤的过程,在上一篇博客中已经写了安装Scrapy、创建Scrapy项目的步骤。 接下来应该定义Item类、编写爬虫程序以及配置settings.py文件等。以下是一个详细的配置Scrapy项目的步骤: 一、定义Item类 在项目目录下…...

航顺芯片HK32MCU受邀出席汽车芯片国产化与技术创新闭门研讨会
[中国,北京,2024年9月21日]近日,深圳市航顺芯片技术研发有限公司(以下简称“航顺芯片”)产品总监郑增忠受邀出席由中国设备管理协会新能源汽车产业发展促进中心主办的“汽车芯片国产化与技术创新闭门研讨会”。 会上航…...

【深度学习】(6)--图像数据增强
文章目录 图像数据增强一、作用二、增强方法三、代码体现四、增强体现 总结 图像数据增强 数据增强(Data Augmentation),也称为数据增广,是一种在机器学习和深度学习中常用的技术,它通过对现有数据进行各种变换和处理…...

Vscode 远程切换Python虚拟环境
在VSCode中远程切换Python虚拟环境是一个涉及多个步骤的过程,包括安装必要的扩展、连接到远程服务器、创建或激活虚拟环境,并在VSCode中选择相应的Python解释器。以下是一个详细的步骤指南,包括代码示例,旨在帮助我们完成这一过程…...

Sqoop面试整理
Sqoop(SQL-to-Hadoop)是一个用于在Hadoop和关系型数据库之间传输数据的工具。以下是一些可能在Sqoop面试中会被问到的问题及其答案: 1. 什么是Sqoop?为什么使用它? 回答: Sqoop是一个用来在Hadoop和关系型数据库(如MySQL、Oracle、PostgreSQL等)之间高效传输大数据的工具…...

PyCharm 的安装和配置
环境要求: OS:Windows / macOS / Linux (此处使用 Windows 10 进行演示)Python:包括但不限于 Anaconda,miniconda,Python。在 Windows 下只要能找到 python.exe 即可 Download 进入 PyCharm 官网,选择对…...