10万字208道Java经典面试题总结(2024修订版)- JavaWeb篇

Java基础面试题(JavaWeb专题) 为了更好地促进互联网的研究和发展,国际标准化组织ISO在1985 年指定了网络互联模型。OSI 参考模型(Open System Interconnect ReferenceModel),具有 7 层结构应用层:各种应用程序协议,比如HTTP、HTTPS、FTP、SOCKS安全套接字协议、DNS域名系统、GDP网关发现协议等等。表示层:加密解密、转换翻译、压缩解压缩,比如LPP轻量级表示协议。会话层。 阅读详情

🍅 作者简介:哪吒,优快云2021博客之星亚军🏆、新星计划导师✌、博客专家💪

🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

🍅 技术交流:定期更新Java硬核干货,不定期送书活动

🍅 关注公众号【哪吒编程】,回复 1024 ,获取《10万字208道Java经典面试题总结(附答案)》2024修订版pdf,背题更方便,一文在手,面试我有

1、说说 Servlet 的基本架构

Servlet 是 Java Web 应用程序中处理客户端请求并生成响应的重要组件,它的基本架构可以分为以下几个部分:

(1)Servlet 接口

Servlet 接口是所有 Servlet 类必须实现的接口,它定义了处理客户端请求的常见方法,包括初始化、请求处理和销毁等。在 Servlet 接口中,最常见的方法包括 init()、service() 和 destroy()。

(2)Servlet 容器

Servlet 容器是负责管理和运行 Servlet 的环境,可以理解为一个 Web 服务器或者应用服务器。Servlet 容器负责加载、实例化、初始化、调用服务方法和销毁 Servlet 实例。在 Java 中,常见的 Servlet 容器包括 Tomcat、Jetty、Undertow 等。

(3)部署描述符

部署描述符是一个 XML 文件,它包含了关于 Servlet 的配置信息,包括 Servlet 名称、URL 映射、初始化参数、引入其他 Servlet 或过滤器等。在 Java Web 应用中,典型的部署描述符是 web.xml 文件。

(4)Servlet 类

Servlet 类是实现 Servlet 接口的具体类,它负责处理客户端请求并生成响应。在 Servlet 类中,通常实现了 init()、service() 和 destroy() 方法,也可以覆盖 doGet()、doPost() 等方法来处理不同类型的请求。

(5)请求和响应对象

在 Servlet 中,可以通过请求对象 HttpServletRequest 和响应对象 HttpServletResponse 来与客户端进行通信。请求对象封装了客户端发送的请求信息,而响应对象负责生成服务器返回的响应内容。

当客户端发送请求时,Servlet 容器会根据部署描述符中的映射信息选择合适的 Servlet 实例来处理请求。Servlet 实例接收到请求后,调用其 service() 方法来处理请求并生成响应。然后响应会被发回客户端。

这就是 Servlet 的基本架构,它提供了一个在 Java Web 应用程序中处理客户端请求的标准化方式,并且可以通过实现不同的 Servlet 类来实现特定的业务逻辑。

2、说一说 Servlet 的生命周期?

Servlet 的生命周期包括的阶段:

加载和实例化:当容器启动时,会根据部署描述符(web.xml)或注解等配置信息加载并实例化 Servlet。容器会创建 ServletConfig 对象,并将部署描述符中的初始化参数传递给 Servlet 实例。

初始化:在 Servlet 实例化后,容器会调用其 init() 方法来执行一些初始化任务。通常可以在 init() 方法中进行一些初始化操作,比如建立数据库连接、加载配置文件等。init() 方法只会在 Servlet 实例第一次被创建时执行一次。

服务请求:一旦初始化完成,Servlet 就可以响应客户端的请求。当客户端发送请求时,Servlet 容器会调用 Servlet 的 service() 方法来处理请求。service() 方法会根据请求类型(GET、POST 等)来调用相应的
doGet()、doPost() 等方法。这是 Servlet 生命周期中最频繁调用的阶段,用来处理客户端的请求并生成响应。

销毁:当 Servlet 容器决定将 Servlet 实例销毁时,会调用其 destroy() 方法。在 destroy() 方法中可以清理资源,比如关闭数据库连接、释放内存等。Servlet 实例销毁时会执行 destroy() 方法,代表 Servlet 生命周期的结束。

3、如何实现一个自定义的 servlet?

① 创建一个新的 Java 类,并让它继承 HttpServlet 类。这样可以确保你的类成为一个 Servlet;

② 在你的自定义类中,你需要重写 doGet 或 doPost 方法。这些方法将定义你的 Servlet 处理请求的行为;

③ 将你的自定义 Servlet 编译成 .class 文件,并将它放在 WEB-INF/classes 目录下(或者将 .class 文件打包成 .war 文件放在 webapps 目录下)。你还需要在 web.xml 文件中配置你的 Servlet。

如下所示:

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.nezha.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/myservlet</url-pattern>
</servlet-mapping>

根据实际需求,你可能需要处理初始化、销毁等其他方法。另外,你也可以使用注解来代替 web.xml 的配置。

4、servlet中有哪些核心类?都有什么特点?

(1)Servlet 接口

Servlet 接口是所有 servlet 类的基础接口。所有的 Servlet 类都必须实现这个接口,并且提供处理客户端请求的逻辑。在 Servlet 接口中定义了一系列的生命周期方法,包括 init、service 和 destroy。通过实现这些方法,可以在 servlet 实例的生命周期中执行初始化、处理请求和资源销毁等操作。

(2)HttpServlet

HttpServlet 是 Servlet 的抽象子类,它提供了专门用于处理 HTTP 请求的方法。它进一步扩展了 GenericServlet,并增加了处理 HTTP GET、POST、PUT、DELETE 等请求的方法。大多数 Web 应用程序中的 Servlet 都是继承自 HttpServlet。

(3)HttpServletRequest

代表客户端的请求信息,包含了请求行、请求头和请求体等信息,提供了获取参数、请求头数据、请求属性等方法。

(4)HttpServletResponse

代表服务器的响应信息,用于构建和发送回客户端的响应,提供了设置状态码、添加响应头、写入响应体等方法。

5、什么情况下调用 doGet()和 doPost()?

当客户端发送的请求使用了 HTTP GET 方法时,Servlet 容器会调用 Servlet 的 doGet() 方法来处理该请求。

当客户端发送的请求使用了 HTTP POST 方法时,Servlet 容器会调用 Servlet 的 doPost() 方法来处理该请求。

GET请求通常用于请求数据或查询信息,它的特点是请求的数据会附加在URL之后,并且是可见的。因此,GET请求不适合传输敏感信息,如密码或银行账户信息。

POST 请求通常用于向服务器发送数据,进行数据修改、提交或发送较大的数据等操作。比如,向服务器提交表单数据。

6、request.getAttribute() 和 request.getParameter() 有何区别?

request.getParameter() 方法用于获取客户端请求中的查询参数(GET 请求)或表单参数(POST 请求)。它返回的是一个字符串类型,用于表示指定参数名对应的参数值。

request.getAttribute() 方法用于获取在服务器端范围内共享的数据,这些数据通常是通过服务器端代码设置到请求域中的。它返回的是一个 Object 类型的数据,因此需要进行类型转换才能使用。通过 request.setAttribute() 方法设置的数据可以在同一个请求中的不同资源(如 Servlet、JSP)之间共享。

7、forward 和 redirect 的区别?

可以从三个方面来回答,处理方式、应用场景、效率。

forward是服务器内部的资源转发,浏览器地址栏不会发生变化,用户无法感知到转发过程。而redirect则是服务端通知客户端进行页面跳转,客户端会发起新的请求到指定的URL,因此浏览器地址栏会显示新的地址。

forward通常用于需要根据用户角色或其他条件来展示不同内容的情况,比如登录后根据用户权限转发到不同的管理页面。而redirect则常用于需要用户重新登录或在完成某项操作后返回上一个页面的场景,如注销后重定向到登录页面。

forward由于是服务器内部处理,通常效率较高,因为它避免了额外的网络请求和响应的延迟。而redirect因为涉及到客户端的多次请求和响应,所以效率相对较低。

8、jsp 有哪些内置对象?作用分别是什么?

  1. request,客户端的请求,用于获取客户端通过HTTP协议发送到服务器的数据,包括请求头、请求参数、请求方式等;
  2. response,服务器的响应,用于向客户端发送数据,包括设置响应头、发送响应体等;
  3. out,用于向客户端输出内容,是JSP页面中的输出流;
  4. session,表示客户端与服务器之间的一次会话,用于保存用户的状态信息,如用户登录信息、购物车数据等;
  5. application,代表整个Web应用的上下文,用于保存全局的信息,这些信息在整个Web应用中都是可见的;
  6. pageContext,提供了对JSP页面内各种对象(如request、response、session等)的访问,以及用于查找其他资源的API;
  7. config,用于获取JSP页面的初始化参数和Servlet上下文信息;
  8. page,代表JSP页面本身,可以通过它访问JSP页面的属性和方法;
  9. exception,当JSP页面发生异常时,该对象会被自动设置为抛出的异常对象,允许在JSP页面中处理异常。

9、jsp 有哪些动作?作用分别是什么?

在JSP(Java Server Pages)中,动作(Action)是一种特殊的标签,用于执行特定的操作,比如转发请求、包含文件、设置属性等。

  1. include 动作,将其他JSP或HTML页面的内容嵌入到当前JSP页面中,使得页面可以动态包含其他页面的内容。
  2. forward 动作,将请求转发到其他资源,比如转发到另一个JSP页面或Servlet,这样可以共享请求属性,并且URL会改变。
  3. param 动作,用于设置请求参数,可以将参数添加到包含或转发的请求中。
  4. setProperty 动作,用于设置JavaBean属性。
  5. getProperty 动作,用于获取JavaBean的属性值。
  6. useBean 动作,用于实例化JavaBean,如果JavaBean不存在则创建,存在则不创建。
  7. plugin 动作,用于包含插件,一般用于内嵌多媒体对象。
  8. jsp:element 动作,在JSP页面中生成XML元素。
  9. jsp:attribute 动作,定义自定义标签的属性,并为属性设置默认值。
  10. jsp:body 动作,在自定义标签中定义标签体的内容。

这些动作能够在JSP页面中实现各种功能,如包含内容、转发请求、操作JavaBean等。它们使JSP页面能够更加灵活和强大。

10、JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?

(1)动态 include:

  • 动态 include 是通过 jsp:include 动作实现的,可以在运行时动态地包含另一个 JSP 页面或 Servlet 的输出。
  • 可以根据特定的条件或逻辑来决定包含哪个页面,也可以在循环中动态包含不同的页面。
  • 使用 jsp:include 标签,例如:<jsp:include page=“included.jsp”/>

(2)静态 include:

  • 静态 include 是在编译时将指定的 JSP 页面或 HTML 文件合并到当前 JSP 页面中,形成一个单一的页面。
  • 在 JSP 页面执行之前,包含的内容已经静态地合并到当前页面中了。
  • 使用 <%@ include file=“included.jsp” %> 语法,其中 file 属性指定要包含的文件。

动态 include 是在运行时进行包含,可以动态决定包含哪个页面,而静态 include 是在编译时静态地将指定文件的内容合并到当前页面中,运行时无法改变包含的内容。具体使用时需要根据实际场景来选择使用动态 include 还是静态 include。

11、jsp 和 servlet 有什么区别?

Servlet是用Java编写的服务器端程序,它的主要功能是处理客户端的请求并生成动态Web内容。Servlet是Java Web应用的基础,负责接收请求、处理请求、生成响应。

JSP本质上是一种特殊的Servlet,它允许开发者在HTML页面中直接嵌入Java代码片段(scriptlets)、JSP动作、JSP指令以及表达式等,以生成动态Web页面。JSP的主要目的是使开发者能够更容易地创建动态Web页面,而无需编写大量的Java代码。

12、说一下 jsp 的 4 种作用域?

(1)Page作用域

最窄的作用域,它仅限于当前的JSP页面。当页面处理完成后,存储在page作用域中的任何数据都将被丢弃。此作用域通常用于存储仅在当前页面中使用的临时变量。

(2)Request作用域

这个作用域涵盖了单个HTTP请求及其对应的响应。在此作用域中定义的任何数据都可以在同一请求中的多个页面之间共享,但当请求处理完毕后,这些数据就会失效。这适用于跨多个JSP页面传递数据的情况。

(3)Session作用域

此作用域与特定的用户会话相关联。在一个用户访问网站期间,该用户的所有请求都可以访问session作用域中的数据。当用户离开网站或会话超时,session中的数据才会被清除。这通常用于存储需要跟踪用户状态的信息,比如购物车内容或者登录信息。

(4)Application作用域

最宽泛的作用域,它适用于整个Web应用程序。在此作用域中声明的数据对所有用户和所有请求都是可见的,并且在整个应用程序的生命周期内都有效。常用于存储应用程序级别的信息,例如配置参数或统计信息。

13、session 和 cookie 有什么区别?

Session和Cookie的主要区别在于存储位置、存储容量以及存储有效期。

① 存储位置:Cookie数据信息存放在客户端浏览器中,而Session的数据信息存放在服务器上。

② 存储容量:Cookie的存储容量较小,一般不超过4KB,而Session的存储容量理论上没有限制,但为了服务器性能考虑,通常不会存放过多数据。

③ 存储有效期:Cookie可以设置为长时间保持,甚至可以设置到期时间来实现长期存储,而Session的失效时间通常较短,一般为会话结束或浏览器关闭时失效。

14、如果客户端禁止 cookie 能实现 session 还能用吗?

一般默认情况下,在会话中,服务器存储 session 的 sessionid 是通过 cookie 存到浏览器里。

如果浏览器禁用了 cookie,浏览器请求服务器无法携带 sessionid,服务器无法识别请求中的用户身份,session失效。

但是可以通过其他方法在禁用 cookie 的情况下,可以继续使用session。

  1. 通过url重写,把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 sessionid 参数。
  2. 服务器的返回数据中包含 sessionid,浏览器发送请求时,携带 sessionid 参数。
  3. 通过 Http 协议其他 header 字段,服务器每次返回时设置该 header 字段信息,浏览器中 js 读取该 header 字段,请求服务器时,js设置携带该 header 字段。

15、Token、Cookie、Session的区别?

Token 是一种用于认证和授权的令牌,通常由服务器生成并发送给客户端。客户端在收到 Token 后,将其存储在本地,然后在每次需要进行身份验证或授权时使用该 Token。常见的 Token 包括 JWT (JSON Web Token) 和 OAuth Token。Token 在客户端和服务器之间进行持久性的认证和授权,通常用于实现跨域身份验证。

Cookie 是一种在客户端中存储的小型文本数据,由服务器发送给客户端,随后在每次请求中通过 HTTP 头部发送回服务器。通常用于存储用户的身份验证信息、用户设置、浏览历史等。Cookie 是存储在客户端的,可以设置过期时间和路径,不同页面之间共享。

Session 是服务器端用于存储用户会话状态的机制,通常使用 Session ID 来标识用户会话。当用户第一次访问服务器时,服务器会为其创建一个 session,然后将 session ID 存储在 cookie 或者 URL 中,用于在该用户的后续请求中进行身份验证和状态管理。Session 数据存储在服务器端,相对于 Cookie 更安全、更难被篡改,但也需要服务器维护和消耗更多的资源。

16、说一下 session 的工作原理?

① 客户端发送请求:当用户发送请求到服务器时,服务器会为该用户创建一个唯一识别的 session ID,并将其返回给客户端,在 HTTP Response Header 中可以使用 Set-Cookie 来设置这个 session ID。通常情况下,这个 session ID 会以一个名为 “JSESSIONID” 的 Cookie 存储在客户端。

② 服务器端存储会话数据:当服务器收到客户端的请求时,会检查请求中是否包含有效的 session ID。如果存在有效的 session ID,服务器就会使用这个 session ID 来获取对应的会话数据。如果没有有效的 session ID,服务器会创建一个新的 session,并为其分配一个新的 session ID。服务器端会针对每个 session ID 维护一个对应的会话数据存储,可以存储用户的身份验证信息、用户设置、购物车数据等用户会话相关的信息。

③ 与客户端交互:在处理完客户端的请求后,服务器会将 session ID 返回给客户端,在 HTTP Response Header 中使用 Set-Cookie。客户端会存储这个 session ID,在后续的请求中将其包含在 HTTP 请求头中,服务器通过 session ID 来识别用户,并获取对应的会话数据进行处理。

④ 会话超时和销毁:在一定的时间间隔后,若用户没有活动,服务器可能会认为该会话已经超时并销毁会话数据,释放资源。这样可以保证服务器的资源不会被无效的会话占用。

简而言之,Session 的工作原理是通过在服务器端创建、存储和管理会话数据,并通过在客户端使用 session ID 进行身份验证和状态管理,实现用户会话的跟踪和状态维护。

17、http 响应码 301 和 302 代表的是什么?有什么区别?

http 响应码 301:

  • 301表示请求的资源已经永久移动到了一个新的 URL 地址。
  • 当服务器返回 301 状态码时,它会在响应头中包含一个 Location 属性,客户端会根据该属性进行重定向。
  • 客户端在后续的请求中会直接请求新的 URL 地址。

http 响应码 302:

  • 302示请求的资源暂时性地移动到了一个新的 URL 地址。
  • 客户端会在收到响应后根据 Location 头信息跳转到新的 URL。但客户端在后续的请求中会继续请求原来的 URL 地址。
  • 302 响应不会被浏览器缓存,每次请求时会重新执行跳转。

18、tomcat 如何调优?

调整Tomcat的性能和优化配置是提高Web应用程序性能的重要步骤。

以下是一些优化Tomcat的常见方法:

(1)调整内存分配

将JVM最大堆大小(-Xmx)和初始堆大小(-Xms)设置为合适的值,以确保应用程序运行期间有足够的内存,一般建议堆的最大值设置为可用内存的最大值的 80%。

调整新生代和老年代的比例,可以使用参数 -XX:NewSize 和 -XX:MaxNewSize 调整新生代堆大小。

(2)调整线程池和连接池

配置Tomcat的连接和线程池大小,确保它能够处理预期的并发请求,可以通过调整 maxThreads、minSpareThreads 和 maxConnections 等参数进行配置。

使用合适的连接池,例如对于数据库连接,可以使用连接池来管理连接,以提高性能和资源利用率。

(3)启用压缩

启用Tomcat的压缩功能,可以通过配置启用GZIP压缩,减小传输内容的大小,提高性能。

(4)优化静态资源处理

使用独立的Web服务器(如Nginx或Apache)作为前置服务器,处理静态资源和缓存请求,减轻Tomcat服务器负担。

针对Tomcat内置的静态资源缓存,可以通过配置添加Expires或Cache-Control响应头来缓存静态资源。

(5)监控和调整

使用监控工具如JConsole、JVisualVM或者性能工具如VisualVM来监控Tomcat性能,识别性能瓶颈并做相应调整。

根据监控结果,适时调整JVM和Tomcat的配置参数,以优化性能。

19、如何增加 tomcat 的连接数?

  1. maxConnections参数决定了Tomcat能够同时处理的最大连接数。在BIO模式下,默认最大连接数是它的最大线程数(一般设置为200)。
  2. maxThreads参数表示Tomcat接收客户端请求的最大线程数,即同时处理任务的个数。在高并发的I/O密集型应用中,这个值可以设置为1000左右以提升处理能力。
  3. 使用NIO模式,因为NIO是非阻塞的IO,可以提高Tomcat在高并发环境下的性能。
  4. 调整acceptCount,当线程数量达到maxThreads设置的值时,acceptCount决定了所能接受的最大排队数量,超过这个值,新的请求会被拒绝。
  5. 如果单个Tomcat实例无法满足需求,可以考虑使用负载均衡器将流量分发到多个Tomcat实例。

20、如何增加Tomcat的内存?

要增加 Tomcat 的内存,你需要调整 Tomcat 运行时的JVM参数。以下是一般步骤:

① 找到 Tomcat 的启动脚本

Tomcat 的启动脚本通常位于 bin 目录下,具体文件名可能是 catalina.sh (Linux) 或 catalina.bat (Windows)。

② 编辑启动脚本,设置 JVM 参数

在启动脚本中找到 JAVA_OPTS 或 CATALINA_OPTS 变量,并增加 -Xmx 和 -Xms 参数来分别设置最大堆和初始堆大小。

示例:

CATALINA_OPTS=“$CATALINA_OPTS -Xms512m -Xmx1024m”
这将会将初始堆大小设置为512MB,最大堆大小设置为1024MB。你可以根据实际情况调整这些值。

③ 重启 Tomcat 服务器

保存启动脚本并重启 Tomcat 服务器,以应用新的内存设置。

21、Tomcat 有几种部署方式?

① 将WAR包或文件夹直接放置到Tomcat的webapps目录下,Tomcat会自动解压并部署项目,缺点是需要重启项目。

② 不想放在webapps下,也可以在Tomcat的server.xml文件中配置标签,添加标签来指定项目的WAR包路径。(一般采用①)。

③ 可以将Tomcat运行在Docker容器中,通过Dockerfile或者docker-compose文件来管理和部署应用程序。

④ 可以将 Tomcat 应用部署到云服务提供商(如AWS、Azure、Google Cloud等)的云服务器上,实现灵活的弹性部署,按需分配资源。


3万字80道Java经典面试题总结(2024修订版)- Java基础篇

2 万字 42 道Java经典面试题总结(2024修订版)- Java集合篇

4 万字 102 道Java经典面试题总结(2024修订版)- 多线程篇

10万字208道Java经典面试题总结(2024修订版)- SSM篇


🏆文章收录于:100天精通Java从入门到就业

全网最细Java零基础手把手入门教程,系列课程包括:Java基础、Java8新特性、Java集合、高并发、性能优化等,适合零基础和进阶提升的同学。

🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

2020最新Java面试题(java,JavaWeb,数据库,框架),常见面试题及答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和 JVM... 阅读详情

相关推荐

208道最常见的Java面试题已整理好(面试必备)

适宜阅读人群 需要面试的初/中/高级 java 程序员 想要查漏补缺的人 想要不断完善和扩充自己 java 技术栈的人 java 面试官

weixin_64403990的博客 485

Java面试Web篇

springioc与aop,springmvc执行流程、service的四大作用域、jsp的九大内置对象等...

Bugxiu_fu的博客 1145

10万字208道Java经典面试题总结(附答案).pdf

10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf 10万字208道Java经典面试题总结(附答案).pdf

10万字208道Java经典面试题总结(附答案)

所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。

比起日出,我更喜欢日落。我的意思是比起遇见你,我更喜欢与你终老 9123

10万字总结java面试题和答案

Java 10万字总结java面试题和答案 其包含的内容模块有:基础、JVM、多线程与高并发、Spring、MyBatis、SpringBoot、MYSQL、SpringCloud、Dubbo、Nginx、MQ、数据结构与算法、Linux、Zookeeper、Redis、分布式、网络、设计模式、maven、ElasticSearch、git、软实力集训等! 面试必刷~~~

鸿蒙5应用真机调试超详细教程

本文详细介绍了鸿蒙5应用的真机调试全流程,包括开发环境搭建(安装DevEcoStudio、配置SDK)、真机调试准备(开启USB调试、配置自动/手动签名)、调试实战(生成HAP包、断点调试技巧)以及多设备协同调试方法。文中提供了设备连接、签名配置等常见问题的解决方案,并包含示例代码展示分布式设备联动功能。通过本教程,开发者可快速掌握鸿蒙5应用的调试技能,建议结合官方文档深入学习高级调试技巧。

2301_79392153的博客 2196

Java Web常见面试题

第一次创建session的时候,服务端会在HTTP协议中告诉客户端,**需要在cookie里面记录一个session ID ** ,以后每次请求把这个session ID发送到服务器,这样服务器就能识别这个用户了。当服务器集群的时候,如大型的网站,会有专门的session服务器集群,用来保存用户会话,这个时候session是放在内存的,使用一些缓存服务来放session。HTTP协议时无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识别具体的用户,这个机制就是session。

Zero摄氏度的博客 505

基于BenchmarkSQL的达梦数据库TPCC性能测试

中的用户和密码在达梦数据库中创建测试用户,并保证其表空间足够容纳生成的测试数据。如果开启了归档,还要考虑归档日志占用的空间。BenchmarkSQL默认不支持达梦数据库。这里我们让BenchmarkSQL把达梦数据库当作Oracle即可。Oracle数据库对应的测试配置文件为。是使用BenchmarkSQL进行性能测试的主要配置文件。是生成的测试报告,png文件是报告中包含的图片。拷贝达梦数据库驱动到BenchmarkSQL的。测试结束后,会在当前路径下生成一个以。规则命名的结果目录。

Sebastien23的博客 2635

208道最常见的Java面试题整理(面试必备)

适宜阅读人群 需要面试的初/中/高级 java 程序员 想要查漏补缺的人 想要不断完善和扩充自己 java 技术栈的人 java 面试官 具体面试题 下面一起来看 208 道面试题,具体的内容。 一、Java 基础 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.两个对象的 hashCode()相同,则 equals()也一定为...

weixin_33701617的博客 4万+

请举手回答,LDO和DC-DC有什么不同?

文章目录1 LDO是什么2 LDO典型电路3 DC-DC是什么4 DC-DC典型电路5 LDO和DC-DC区别10.2.6 小结一下 大家好,我是记得诚。 DC-DC和LDO都是电源芯片,两者差异很大,用法也不同,这篇博客讲述LDO和DC-DC的一些差异,帮助更好的认识LDO和DC-DC并进行选型。 1 LDO是什么 LDO是low dropout regulator的简称,即低压差线性稳压器,这是相对于传统的线性稳压器来说的,传统的稳压器,输入比输出要高出很多,否则无法工作,LDO可能输入比输出高1~2V

记得诚 1万+

金融监管压力测试场景生成

压力测试是一种评估金融资产或机构在极端市场条件下的表现和风险承受能力的方法。它通过模拟各种不利的市场情景,测试金融机构在这些情景下的财务状况和运营能力。压力测试的作用在于帮助金融机构识别潜在风险,评估应对策略,并制定应急预案。总结压力测试场景生成系统的开发过程和实现效果,强调其在金融监管中的重要性和应用价值。随着金融市场的发展,实时压力测试将越来越重要。未来,压力测试需要更加注重实时性和动态性,及时反映市场的变化。本文详细介绍了金融监管压力测试的重要性、核心概念、算法原理、系统架构以及实战案例。

AI天才研究院 1208

Java高频面试题汇总(208道)

目录Java高频面试题汇总(208道)一、Java基础1.JDK 和 JRE 有什么区别?2.== 和 equals 的区别是什么?3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4.final 在 java 中有什么作用?5.java 中的 Math.round(-1.5) 等于多少?6.String 属于基础的数据类型吗?7.java 中操作字符串都有哪些类?它们之间有什么区别?8.String str="i"与 String str=new String(“i”

weixin_46822367的博客 9917

【系统分析师】核心考点:100个高频知识点汇总

本文系统梳理了系统分析师考试的11大领域高频考点,重点解析了计算机硬件与体系结构的7个核心知识点:计算机五大部件(CPU/存储器/总线等)、校验码类型(奇偶/海明/CRC)、CISC与RISC指令系统对比、总线分类与特性、RAID磁盘阵列级别、流水线技术原理及Flynn系统分类法。内容涵盖硬件组成、数据校验、指令架构、存储技术等关键概念,通过表格对比和公式说明,为考生提供结构化的知识框架与备考重点。

数据知道的博客 5569

java 高频面试题 208 道

Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含...

Eaphy's Blog 4万+

最全面的行人重识别数据集汇总

汇总了一些REID的数据集,几乎涵盖了所有的数据集。如果有缺少的欢迎留言补充。我将能下载到的数据集放在了网盘里,链接如下:链接:https://pan.baidu.com/s/1hQ4PKvtAhAvoZiXbcIu93w 提取码:o3iyQMUL iLIDS基于iLIDS MCTS的数据集,是一个在机场繁忙时候通过监控系统中多个摄像头收集到的数据集。几乎每个ID(identity)都有从两个无重叠(区域)的摄像头拍摄的四幅图像。该数据集具有严重遮挡和姿势差异的场景。

m0_47867638的博客 1万+

C# 与欧姆龙 PLC 实战:通过 Ethernet/IP 协议进行设备控制与监控

本文介绍了如何通过C#和Ethernet/IP协议实现与欧姆龙PLC的通信。Ethernet/IP是基于以太网的工业协议,适用于工业设备间的实时数据交换。文章详细讲解了使用EthernetIPSharp库建立连接、读写数据的步骤,并提供了示例代码。此外,还探讨了实时监控、报警系统等高级功能,为工业自动化控制系统开发提供了实用指导。该方法简化了PLC通信开发,提高了系统可靠性和智能化程度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 811

Java 最常见的 208 道面试题

来源:王磊的博客这份面试清单是我从 2015 年做 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘我在 Java 技术栈中的技术盲点,...

Java团长的博客 1585

2026最新YOLO26改进:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

针对YOLO26模型改进痛点,本专栏整理200+实战验证方法,覆盖卷积层、注意力机制等核心模块。 每种方法含原理、性能分析、改进路径及实操流程,代码可直接运行,快速提升模型效果,性价比超高。

魔改工程师的博客 1万+

208道 java 高频面试题和答案

文末有本文面试题的所有答案 这份面试清单是我从 2015 年做 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘我在 Java 技术栈中的技术盲点,然后修复和完善它,以此来提高自己的技术水平。虽然我从 2009 年就开始参加编程工作了,但依旧觉得还有很多东西要学,当然学习的过程也给我带来了很多成就感,这些成就感也推动我学习更多的技术知识。 聊回面试题这件事,这份面...

我的博客 467

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最全java面试题及答案(208道)

最全java面试题及答案(208道)

有人和我一样懒 676

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

208道Java常问面试题答案

最近在优快云的公众号上有这208道面试题目,自己将关于这208道题知道的知识整理如下,希望自己能尽快把这些题都弄清楚。原文链接:https://blog.youkuaiyun.com/sufu1065/article/details/88051083 Java 基础 1.JDK 和 JRE 有什么区别? JRE可以支撑Java程序的运行,包括JVM虚拟机和基本的类库。 JDK可以支持Java程序的开发,包括...

XiaoA82的博客 867

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java 面试复习啥?看这 208 道面试题就够了!

作者 |王磊 责编 | 伍杏玲 别惊讶!人工智能时代即将到来! https://edu.youkuaiyun.com/topic/ai30?utm_source=cxrs_bw 这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后攻克它,...

程序人生的博客 7226

Java 面试收到offer必备 208 道面试题(第一部分)

Java 面试收到offer必备 208 道面试题一、Java基础二、容器三、多线程四、反射五、对象拷贝六、Java Web七、异常八、网络九、设计模式 一、Java基础 1.JDK和JRE有什么区别? 2.==和equals的区别是什么? 3.两个对象的hashCode()相同, 则equals()也一定为true, 对吗? 4.final在java中有什么作用? 5.java中的Math.round(-1.5)等于多少? 6.String属于基础的数据类型吗? 7.java中操作字符串都有哪些类?它们之

weixin_44535400的博客 353

Java 最常见的 208 道面试题(含答案)之五

原文:https://blog.youkuaiyun.com/sufu1065/article/details/88051083 Java 最常见的 208 道面试题(含答案)之一 Java 最常见的 208 道面试题(含答案)之二 Java 最常见的 208 道面试题(含答案)之三 Java 最常见的 208 道面试题(含答案)之四 Java 最常见的 208 道面试题(含答案)之六 Java ...

shadow_zed的博客 4246
上一篇: 华为OD机试 - 密码解密(Java 双机位A卷 100分)
下一篇: 华为OD机试 - 攀登者2(Java 2025 A卷 200分)
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2953原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值