1.13草花互动面试

1.浏览器输入网址到服务器的完整流程(从 DNS 解析到页面渲染)

怎么答:

“当我在浏览器输入一个网址(比如https://www.example.com)并回车后,整个过程大致是这样的:

  1. DNS 解析:浏览器把域名解析成 IP 地址(先查本地缓存,再问 DNS 服务器);
  2. 建立连接:通过 TCP 三次握手建立连接,如果是 HTTPS,还要做 TLS/SSL 握手加密;
  3. 发送请求:浏览器构造 HTTP 请求,发给服务器;
  4. 服务器处理:比如 Nginx 接收后转发给 Spring Boot 应用,执行业务逻辑(查数据库、调缓存等);
  5. 返回响应:服务器生成 HTML 或 JSON 响应,返回给浏览器;
  6. 页面渲染:浏览器解析 HTML/CSS/JS,最终展示页面。

在我们‘瞬览购书’项目中,用户请求就是先到 Gateway 网关,再路由到具体微服务,整个链路依赖这个流程。”


2.Java 的数据类型有哪些?

怎么答:

“Java 的数据类型分为两大类:基本数据类型引用数据类型

基本数据类型有 8 种

  • 整型:byteshortintlong
  • 浮点型:floatdouble
  • 字符型:char
  • 布尔型:boolean

它们直接存储值,效率高。

引用数据类型包括:类(如String)、接口、数组、枚举等,它们存储的是对象的引用(地址),实际对象存在堆内存里。

特别注意:String虽然用起来像基本类型,但它其实是引用类型。”


3.进程和线程的区别

怎么答:

“进程是操作系统资源分配的最小单位,每个进程有独立的内存空间;
线程是CPU 调度的最小单位,同一个进程内的多个线程共享内存,只拥有自己的栈。

所以:

  • 通信:进程间通信复杂(需管道、消息队列等),线程可直接共享变量;
  • 开销:创建/切换进程比线程慢得多;
  • 稳定性:一个进程崩溃不影响其他进程,但一个线程崩溃可能拖垮整个进程。

在 Java 中,一个 JVM 是一个进程,里面可以跑很多线程——比如 Tomcat 就用线程池处理并发请求。”


4.常见的鉴权方式有哪些?

怎么答:

“我了解的主要有几种:

  • JWT:无状态,Token 自包含用户信息,适合微服务;
  • Session-Cookie:有状态,服务端存 Session,浏览器带 Cookie,适合传统 Web;
  • OAuth2.0:用于第三方登录或单点登录,比如用微信登录;
  • 自定义 Token:服务端生成随机 Token 存 Redis,客户端携带验证。

我们项目用的是JWT,因为它无状态、易扩展,特别适合分布式架构。”


5.JWT 无状态鉴权的具体实现(结合您的项目)

怎么答:

“在‘瞬览购书平台’中,用户登录后,认证服务会签发一个 JWT Token。
后续请求,前端把这个 Token 放在请求头里。
我们在Gateway 网关层统一校验 Token—— 检查签名、有效期等。
校验通过后,把用户 ID 存到ThreadLocal里。
这样,后面的微服务(比如商品、订单)就不用重复解析 Token,直接从 ThreadLocal 拿用户 ID,既安全又高效。”


6.“无状态鉴权”是什么意思?

怎么答:

“‘无状态’意思是:服务端不需要记住用户是否登录过
每次请求只要 Token 合法(没过期、签名正确),就认为用户已认证。

而像 Session 方式是有状态的——服务端必须保存用户的登录记录。
无状态的好处是:容易水平扩展,天然适合微服务,不需要共享 Session 存储。”


7.Session 和 Cookie 的关系:它们是否可以/需要一起使用?

怎么答:

“其实它们本来就是配合使用的
用户登录后,服务端创建 Session,并生成一个 Session ID。
这个 ID 通常通过Set-Cookie发给浏览器,浏览器后续自动带上这个 Cookie。
服务端靠它找回 Session,识别用户身份。

所以可以说:Cookie 是 Session ID 的‘运输工具’
虽然 Session 也能用 URL 传 ID,但几乎都用 Cookie,因为更方便安全。”


8.单点登录(SSO)如何实现?

怎么答:

“单点登录的核心是让多个系统信任同一个登录状态
我项目用的是基于 JWT 的方案

  • 用户在一个系统(如用户中心)登录,拿到 JWT Token;
  • 访问其他系统时,前端主动带上这个 Token;
  • 其他系统用相同密钥验证 Token,有效就认为已登录。

另一种是中心化认证(如 OAuth2.0):所有系统跳转到统一登录页,登录一次后,认证中心颁发凭证,实现跨系统免登。”


9.Java 面向对象的四大特性

怎么答:

“Java 面向对象有四大特性:

  1. 封装:用private隐藏内部细节,通过方法提供安全访问(比如用户密码不能直接改);
  2. 继承:子类复用父类代码(如Dog extends Animal),减少重复;
  3. 多态:父类引用调用子类方法(如Animal a = new Dog(); a.speak()实际执行 Dog 的逻辑),让代码更灵活;
  4. 抽象:通过接口或抽象类定义规范,不关心具体实现(比如Payment接口,Alipay 和 WechatPay 各自实现)。

在‘瞬览购书’项目中,我们就用多态实现了多种支付方式,用封装保护了敏感数据。”

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

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

相关文章

Cortex-M ISR响应延迟优化完整示例

如何让 Cortex-M 的中断快到“无感”?——ISR 响应延迟优化实战全解析在嵌入式系统的世界里,“快”从来不是目的,而是生存的底线。你有没有遇到过这样的场景:电机控制环路突然失稳、音频播放咔哒作响、通信数据包莫名丢失……排查…

芯片验证工程师的写代码能力不是第一位

很多人以为验证工程师就是搭环境、跑仿真。但这只是表面工作。验证的核心在于发现问题,而不是证明设计正确。举个实际的例子:某个FIFO模块在正常读写测试下运行完美,覆盖率也达到了100%。但有个验证工程师在review代码时问了一句:…

IAR软件编译选项设置深度剖析与优化建议

深入IAR编译器:从配置到实战的性能调优全解析在嵌入式开发的世界里,一个常被忽视却至关重要的环节是——编译器不是“翻译机”,而是系统性能的塑造者。许多工程师习惯性地把代码写完后点击“Build”,看到绿色对勾就认为万事大吉。…

断言:让芯片设计工程师又爱又恨

断言(Assertion),说白了,它就是设计工程师在代码里埋下的一个个”判断点”,时刻监控着信号是不是符合预期。什么是断言?举个最简单的例子:assert property ((posedge clk) (req |-> ##[1:2] ack));这段代码的意思是…

JFlash烧录固件的完整指南与调试技巧

JFlash烧录实战:从连接失败到量产自动化的深度通关指南你有没有遇到过这样的场景?凌晨两点,产线停摆,几十块板子卡在“Cannot connect to target”的报错界面上;又或者,明明烧录成功了,程序却死…

尾调用搞懂了,JS性能直接起飞?前端人别再被面试官问懵了!

尾调用搞懂了,JS性能直接起飞?前端人别再被面试官问懵了!尾调用搞懂了,JS性能直接起飞?前端人别再被面试官问懵了!为啥每次面试都被问“尾调用优化”?尾调用到底是个啥玩意儿手把手看代码&#…

程序员如何在技术变革中保持竞争力

程序员如何在技术变革中保持竞争力 关键词:程序员、技术变革、竞争力、持续学习、技能多元化 摘要:随着科技的飞速发展,技术变革日新月异,程序员面临着前所未有的挑战。本文旨在探讨程序员在技术变革中保持竞争力的有效方法。通过对背景的介绍,明确了文章的目的、读者群体…

FileMasterPro v1.2.5:全能多功能文件管理工具

FileMasterPro v1.2.5 是专为 Windows 系统打造的专业文件管理工具,集成极速搜索、加密保险箱、智能整理、批量重命名及重复文件查重等核心功能,兼顾安全性与便捷性,轻松解决个人及办公场景中的海量文件管理难题。快速搜索与结果筛选作为高效…

C#热更原理:为何原生不支持DLL替换?

先把问题摆在桌面上: 做 Unity / .NET 游戏热更新的时候,大家老会说一句: “C# 原生不支持运行时替换 DLL,所以得上 ILRuntime / HybridCLR / Lua 等方案。” 听多了你可能会问: 为啥 C# 就不能像脚本语言那样,想换逻辑就把 DLL 替换了? 反正 DLL 不就是一堆字节吗,我重…

Winhance v26.01.12 便携版:Windows 系统优化工具

Winhance v26.01.12 便携版是专为 Win10/Win11 打造的专业 Windows 系统优化工具,无需重装系统就能解决电脑卡顿、系统冗余等问题,帮助用户实现系统瘦身与性能提升,让新旧电脑都能拥有流畅运行体验,是 Windows 系统优化领域的实用…

2026年安徽省职业院校技能大赛(高职组) 电子数据取证与分析(学生赛)样题任务书

2026年安徽省职业院校技能大赛(高职组)电子数据取证与分析(学生赛)赛项电子数据取证技术与应用技能竞赛样题模块一:计算机数据分析(35 分)1.对 Windows 计算机镜像进行分析,用户硬盘…

Go进阶之协程

1.协程的概念:1.1基本概念:1).进程:进程是应用启动的实例.每个进程都有自己独立的内存空间.不同的进程通过进程间的通信方式来通信.2).线程:线程从属于进程.每个进程至少包含一个线程.线程是CPU调度的基本单位.多个线程之前共享进程资源并通过共享内存等线程间的通信方式通信.3…

抗干扰PCB工艺设计:工业电子一文说清

工业电子抗干扰PCB设计:从原理到实战,一文讲透在工厂车间里,一台PLC控制器突然死机,产线被迫停摆。排查数小时后发现,并非软件出错,也不是元器件损坏——而是PCB板上的一个地平面被割裂,导致ADC…

2026年安徽省职业院校技能大赛(高职组) 电子数据取证与分析(学生赛)赛项规程

2026年安徽省职业院校技能大赛(高职组) 电子数据取证与分析(学生赛)赛项规程一、赛项名称二、竞赛目标三、竞赛方式与内容五、竞赛规则软件列表:五、赛场预案六、赛项安全七、竞赛须知八、申诉与仲裁需要拿奖可以私信博…

Vue.js 前端开发实战 ( 电子版 ) —— 黑马

点击这里 | Vue.js 前端开发实战 ( 上 ) —— 黑马 | ⚡️⚡️⚡️ 点击这里 | Vue.js 前端开发实战 ( 下 ) —— 黑马 | ⚡️⚡️⚡️ 最后结语 Github: https://github.com/Parker-Cui Gitee: https://gitee.com/cui_pe_ng_fei Juejin: https://juejin.cn/user/2276467567…

基于真实项目的KeilC51与MDK双环境部署教程

一套能跑通的 Keil C51 与 MDK 共存方案:从踩坑到实战你有没有遇到过这种情况:手头同时在做两个项目,一个是老款 8051 单片机控制板,另一个是基于 STM32 的智能网关。想用 Keil 开发,却发现装了 MDK 后 C51 找不到了&a…

STM32中I2C重入问题与中断处理图解说明

STM32中I2C重入问题与中断处理实战解析一个传感器读取失败的“灵异事件”你有没有遇到过这样的情况:系统运行几分钟都正常,突然一次温湿度数据跳变成0?或者日志里某个时间戳写进了错误的值?调试时用逻辑分析仪一抓——发现I2C总线…

从零实现STM32高精度定时的时钟树设置

手把手教你配置STM32高精度定时:从时钟树到定时器中断的完整链路你有没有遇到过这样的问题?明明写好了1ms的定时任务,结果实测发现每隔一段时间就“卡”一下;或者用HAL_Delay()控制PWM波形,却发现频率忽快忽慢。更离谱…

从零实现Keil5 Debug调试工程配置全过程

手把手教你从零搭建Keil5调试工程:不只是点“Start Debug”你有没有过这样的经历?辛辛苦苦写完代码,编译通过,信心满满地点击Debug按钮——结果 Keil 弹出一串红字:“Cannot access target”、“No algorithm found”……

AgentCPM-Explore开源,4B 参数突破端侧智能体模型性能壁垒

当全行业还在争论 30B 能否挑战万亿参数时,我们给出了一个更激进的答案: 4B。没有万亿参数的算力堆砌,没有百万级数据的暴力灌入,清华大学自然语言处理实验室、中国人民大学、面壁智能与 OpenBMB 开源社区联合研发的 AgentCPM-Exp…