Java后端面试复习7.23
- 进程和线程
- 线程优先级
- 线程状态
- 线程构造方式三种
- 推荐用哪种为什么
- 线程中断调用什么方法,本线程怎检查
- 为什么线程不应强制停止
- 线程通信方式四种
- ThreadLocal
- FUtureTask
- 线程礼让
- 终止线程的另一个缺陷(锁)
- 守护线程
- 什么时候设置为守护县城
- sleep,yieldjoin的区别
- 能否按照优先级严格执行
- THreadlocal的例子Simpledataformat
- Threadlocal的弱引用
- 解决map冲突
- 内存泄露,怎么解决
- 域名分片
- 短连接长链接流水线
- 什么是cookie
- 请求头和响应头那些和cookie有关
- 可以设置多个cookie
- 保存在哪
- 设置有效期两种手段
- 作用域domain和路径path
- cookie分类,时间和存储
- cookie的缺点
- 什么事session
- session存储的信息
- 客户鞋带什么信息
- session实现方式两种
- session存在的问题
- 使用token流程
- 什么是token
- jwt的三个组成部分
- 优点
- 分配资源,CPU调度
- 1-10,调用setPriority设置,越大时间片越多,默认5
- 初始,运行,阻塞(于锁),等待,超市等待,结束
- 实现Runnalbe,Callable,继承Thread
- 前两种,1只能单继承2继承的没用属性占地方
- 对应线程的interrupt,调用本线程的isInterrupt
- 因为很可能当前线程为执行完造成数据丢失
- volatile保证可见,synchronized同步,wait和notify,对应线程.join
- 只允许本线程访问的一种map形式的结构,key为ThreadLocal对象,值可以是任意的。可以通过对象。set或对象。get获取或设置
- 既实现了Runnable定义run方法执行,又能够配合Callable(将callable当作参数传入构造方法)获取run的返回值
- 调用yield方法,让同优先级的或者有更高优先级的线程去执行。
- 比如有一个线程有ReentrantLock,他持有锁的时候被终止了,那么他的锁也不会释放,其他等待锁的线程就无法获得锁
- 守护线程是一类优先级比较低的线程,他们会随着用户线程的退出而终止,也就是说守护线程不会单独存在,GC线程,
- 必须在线程启动之前调用set来设置
- sleep会使得线程转入wait的状态,并且如果当前线程持有锁,他不会释放。yield会有running转为runnable状态,允许相同优先级的其他线程或者优先级更高的线程去执行。join是会让当前线程由running转为runnable的状态,等待相应的线程执行完之后才能执行后续代码
- 不一定,因为线程的优先级调度是根据实际的OS调度的,Java对OS的兼容没有那么完美
- 比如有一个sdf对象,sdf是线程不安全的,比如我想调用parse这个方法,这个方法分两步,首先执行clear,然后set,如果线程1正好set完,线程二执行clear就会导致线程并发安全问题。一种方法是使用synchorized进行同步,但是效率低,第二种使用threadlocal来保存sdf对象。
- threadlocal使用map保存,每个线程有一个htreadlocalmap对象,该对象保存了所以threadlocal对象以及其存储的值之间的映射关系,如果存储的值是对象,这里保存的是指向堆的地址。key是使用threadlocal内部定义的entry来实现的,这个entry继承了weakreference,所以map中的key都是若引用类型
- map冲突不是使用拉链发来解决的,而是线性探测法,向后寻找空位置
- 内存泄漏-->长生命周期的对象持有短生命周期对象的引用。比如说在线程池中,当一个线程执行完当前任务后,他的threadloacl会置空,那么这些身为弱引用的key会在下一次gc的时候被回收,但是他们的长生命周期的value还在堆空间中,并且由于线程池没被回收,所以这些堆空间中的value就不会被回收造成内存泄漏。
- 多个域名只想同一个服务器,不同域名可以与客户端建立多个连接,既避免了触发Dos防御,又提高了并发。
- 每次发送数据接受数据都建立tcp链接。建立一次tcp链接,再次链接上进行收发数据。发送方不用等第一个请求返回既可以发剩余请求
- 保存在浏览器,记录用户状态
- 请求头:Cookie响应头:setcookie
- 可以,分号分隔,响应头设置多个setcookie字段
- 浏览器
- 在cookie中设置两个字段,expires和max-age,取小的作为年龄,expires记录了过期时间,到了就过期,max-age要计算,颁发时间+max-age=过期时间
- domain制定了cookie所属的域名和访问路径,如果请求不满足这两个就不会携带该cookie
- 时间:长期和短期,存储:物磁盘和内存
- 实现简单,能够记录用户状态。占用带宽比较多,不安全,数量容量限制
- 服务器端保存用户信息和事件的手段
- 用户的事件,用户基本信息
- sessionid
- 基于cookie,使用cookie携带session id或者基于重写url,在url上写session id
- 大量用户的计算和存储资源的耗费大,分布式系统不同服务间无法共享
- 客户发起请求(登录),根据用户信息构建token,将token发送给用户,用户后续请求携带token,服务器解析token识别用户,响应数据
- token是保存用户信息,便于服务器识别用户的手段
- 头部记录使用的加密算法,载荷记录用户名过期时间等信息,签名根据前面两个字段以及密钥生成,服务器用以验证
- 可以跨站,占用空间不大,依赖算法加密的安全性
相关文章:
Java后端面试复习7.23
进程和线程线程优先级线程状态线程构造方式三种推荐用哪种为什么线程中断调用什么方法,本线程怎检查为什么线程不应强制停止线程通信方式四种ThreadLocalFUtureTask线程礼让终止线程的另一个缺陷(锁)守护线程什么时候设置为守护县城sleep&…...
Arduino PID库 (2) –微分导致的过冲
Arduino PID库 (2) – Derivative Kick 参考:手把手教你看懂并理解Arduino PID控制库——微分冲击 pid内容索引-CSDN博客 Arduino PID库 (1)– 简介 问题 此修改将稍微调整derivative term。目标是消除一种称为“…...
基于强化学习算法玩CartPole游戏
什么事CartPole游戏 CartPole(也称为倒立摆问题)是一个经典的控制理论和强化学习的基础问题,通常用于测试和验证控制算法的性能。具体来说,它是一个简单的物理模拟问题,其目标是通过在一个平衡杆(倒立摆&a…...
uniapp0基础编写安卓原生插件和调用第三方jar包(Ch34的jar包)和如何解决android 如何Application初始化
前言 我假设你会uniapp安卓插件开发了,如果不会请看这篇文章,这篇文章是0基础教学。 这篇文章我们将讲一下如何使用CH34XUARTDriver.jar进行开发成uniapp插件。 它的难点是:uniapp如何Application初始化第三方jar包 先去官网下载CH340/CH341的USB转串口安卓免驱应用库:h…...
使用Leaflet进行船舶航行警告区域绘制实战
目录 前言 一、坐标格式转换 1、数据初认识 2、将区域分割成多个点 3、数据转换 4、数据转换调用 二、WebGIS展示空间位置信息 1、定义底图 2、Polygon的可视化 3、实际效果 三、总结 前言 通常而言,海事部门如海事局,通常会在所述的管辖区域内…...
用Ollama 和 Open WebUI本地部署Llama 3.1 8B
说明: 本人运行环境windows11 N卡6G显存。部署Llama3.1 8B 简介 Ollama是一个开源的大型语言模型服务工具,它允许用户在自己的硬件环境中轻松部署和使用大规模预训练模型。Ollama 的主要功能是在Docker容器内部署和管理大型语言模型(LLM&…...
计算机毕业设计选题推荐-学生作业管理系统-Java/Python项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...
RIP实验
实验拓扑: 实验要求: R1-R2-R3-R4-R5:RIP 100 运行版本2 R6-R7:RIP 200 运行版本1 1.使用合理IP地址规划网络,各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环…...
手把手教你如何在宝塔上添加可道云登录页面的ICP备案信息,别跟权威开玩笑。
如何在宝塔上添加可道云登录页面的ICP备案信息 事情的原由来我们开始吧首先登录你的宝塔页面双击打开index.php文件保存退出即可 感谢大佬,希望对被查到的朋友有所帮助! 事情的原由 今天突然收到腾讯云发来的一封Email,说我需要整改我的网站…...
基于JSP技术的大学生校园兼职系统
你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:JSP 数据库:MySQL 技术:JSPJavaBeans 工具:MyEclipse,Tomcat,Navicat 系统展示 首页 学…...
VSCode在windows系统下的配置简单版
参考链接 从零开始的vscode安装及环境配置教程(C/C)(Windows系统)_vscode搭建编译器环境-CSDN博客 vscode生成tasks.json、launch.json、c_cpp_properties.json文件_vscode生成launch.json-CSDN博客 自动生成配置文件简单方便!!! 运行c代…...
C++初学(9)
9.1、结构简介 虽然数组能够和存储多个元素,但所有元素必须相同,也就是说,同一个数组不能既存放int类型也存放float类型,而C的结构可以满足要求。结构是一种比数组更灵活的数据格式,因为同一个结构可以存储多种类型的…...
ardupilot开发 --- 网络技术综述 篇
不信人间有白头 一些概念参考文献 一些概念 以太网、局域网、互联网 以太网(Ethernet),是一种计算机局域网技术。以太网是一种有线网络技术,网络传输介质包括:以太网电缆,如常见的双绞线、光纤等。根据传输速度,可以氛…...
一文详解大模型蒸馏工具TextBrewer
原文:https://zhuanlan.zhihu.com/p/648674584 本文分享自华为云社区《TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度,减少内存占用》,作者:汀丶。 TextBre…...
Go语言加Vue3零基础入门全栈班10 Go语言+gRPC用户微服务项目实战 2024年07月31日 课程笔记
概述 如果您没有Golang的基础,应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730Mo…...
ChatGPT能代替网络作家吗?
最强AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 当然可以!只要你玩写作AI玩得6,甚至可以达到某些大神的水平! 看看大神、小白、AI输出内容的区…...
Http自定义Header导致的跨域问题
最近写一个小项目,前后端分离,在调试过程中访问远程接口,出现了CORS问题,接口使用的laravel框架,于是添加了解决跨域的中间件,但是前端显示仍存在跨域问题,以为自己写的有问题,检查了…...
python 中 file.read(), file.readline()和file.readlines()区别和用法
python 中 file.read(), file.readline()和file.readlines()区别和用法 文章目录 python 中 file.read(), file.readline()和file.readlines()区别和用法1. file.read()2. file.readline()3. file.readlines()4. 总结5. 注意事项 file.read(), file.readline(), 和 file.readli…...
python 学习: np.pad
在NumPy中,np.pad函数用于对数组进行填充(padding),即在数组的边界处添加额外的值。这在图像处理、信号处理或任何需要扩展数据边界的场景中非常有用。 以下是np.pad函数的一些关键参数和使用示例: array:…...
等保2.0 | 人大金仓数据库测评
人大金仓数据库,全称为金仓数据库管理系统KingbaseES(简称:金仓数据库或KingbaseES),是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。以下是关于人大金仓数据库的详细…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
