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),是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。以下是关于人大金仓数据库的详细…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
