哪里有网站制作平台/seo三人行网站
堆和栈的区别?
- 分配方式:堆内存是由程序员手动分配和释放的,而栈内存是由编译器自动分配和释放的。
- 内存管理:堆内存需要手动管理内存的分配和释放,程序员需要显式地调用malloc()或new来分配内存,并使用free()或delete来释放内存。而栈内存的分配和释放是由编译器自动完成的,无需手动管理。
- 存储内容:堆内存主要用于存储动态分配的对象和数据结构,它的生命周期可以长至整个程序的运行期间。而栈内存主要用于存储局部变量和函数调用的上下文,它的生命周期随着函数的调用和返回而动态变化。
- 内存结构:堆内存是一个大的连续内存块,它的分配和释放是比较灵活的,可以动态增长或缩小。而栈内存是一个固定大小的内存区域,它的大小在程序编译期间就已经确定。
- 访问速度:由于栈内存的分配和释放是由编译器自动完成的,所以栈内存的访问速度比堆内存更快。而堆内存的分配和释放需要额外的时间开销。
Java对象存储在堆中还是栈中?
存储在堆中,堆内存用于存储动态分配的对象和数据结构
栈内存主要用于存储局部变量和方法调用的上下文
Java中基本类型和方法的局部变量存储在栈中,它们的值存储在栈帧中,不需要进行垃圾回收,而对象的引用和实例变量则存储在堆内存中,有垃圾回收机制进行自动回收。
写一个static main方法,能调用非静态方法吗?
可以,必须有类对象实例可以调用
静态方法和非静态方法的区别
- 调用方式:静态方法可以直接通过类名调用,而非静态方法需要通过对象实例来调用。
- 内存分配:静态方法在类加载时就已经被分配到方法区(Method Area)中,而非静态方法在对象实例化时才被分配到堆(Heap)中。
- 访问权限:静态方法可以直接访问类的静态成员(静态变量和静态方法),而非静态方法可以访问类的静态成员和非静态成员(实例变量和非静态方法)。
- this关键字:静态方法中不能使用this关键字,因为this指向当前对象实例,而静态方法没有对象实例。非静态方法可以使用this关键字,可以引用当前对象实例。
- 重写(Override):静态方法不能被重写,因为静态方法是与类关联的,而非静态方法可以被子类重写。
- 静态绑定和动态绑定:静态方法是静态绑定的,即在编译时就确定了调用的方法,而非静态方法是动态绑定的,即在运行时根据对象实例的类型确定调用的方法。
说说hash冲突?
哈希冲突是两个或多个不同的键值对被映射到了相同的哈希桶。因为哈希函数的映射范围有限,而键的数量可能是无限的。
可能导致:数据丢失,性能下降(链表链化很长,查找,插入删除效率低)
解决方法:1.链地址法:将哈希桶冲突的键值对组织成链表,每个哈希桶存储一个链表。当发生哈希冲突,新的键值对会被插入到对应哈希桶的链表中
开发地址法:当发生哈希冲突时,通过一定的方法,在哈希表中寻找下一个可用的位置来存储
再哈希法:使用另一个哈希函数重新计算键的哈希值,然后将键值对存储到新的哈希桶中。
CAS了解吗?
比较并交换
CAS操作通常包含三个参数:内存地址(或者变量的引用)、预期值和新值。
CAS操作的执行过程:
1.读取内存中的值(旧值)
2.比较旧值与预期值是否相等。如果相等,则执行第4步;如果不相等,则执行第三步。
3.重新读取内存中的值,并重复第2步。
4.将新值写入内存。
特点:
- 原子性:CAS 是一种原子性操作,执行完整个 CAS 操作过程不会被其他线程中断。
- 比较并交换:CAS 操作通过比较内存位置的值与预期值、然后交换新值来实现更新操作。
- 避免锁竞争:CAS 操作是无锁算法,提供了一种无需使用互斥锁(synchronized 或 Lock)来同步访问共享资源的机制。
- 乐观并发控制:CAS 是一种乐观的并发控制机制,它假设并发冲突很少发生,减少了锁带来的开销。
AtomicInteger原子类
提供了一组线程安全的原子操作方法,保证对int值操作具有原子性,通过使用内部的 CAS(Compare and Swap)操作保证了线程安全
having和where区别
where用于删选行级数据,即select,delete之前对记录过滤
having用于对分组之后(group by)的数据筛选
如果让你设计数据库,怎么优化
合理的表机构,字段类型,合理使用缓存
慢查询怎么实现
慢查询日志
http和tcp的区别,分别在哪一层
http(超文本传输协议):
应用层协议,是网络协议栈的第七层
一种在客户端和服务器之间传输的超文本数据协议
HTTP是无状态的,每个请求和响应都是独立的,服务器不会保留之前的状态信息。
tcp(传输控制层协议):
是传输层协议,位于网络协议栈的第四层
面向连接,提供可靠的传输
三次握手
第一次握手:
客户端发送一个带有SYN标志的TCP报文段给服务器,表示客户端请求建立连接。
客户端选择一个随机的初始化序列号(ISN)并发送给服务器,用于后续数据传输的序列号标识。
第二次握手:
服务器收到客户端的SYN报文段后,如果同意建立,则发送SYN和ACK(确认)报文段给客户端。
服务器也选择一个随机的初始化序列号,并将确认序号设置为客户端的ISN+1.
第三次握手
客户端收到服务器的SYN+ACK报文段,然后向服务器发送一个ACK确认包进行确认,客户端将确认序号设置为服务器的ISN+1,同时将序列号设置为自己的ISN+1;
如何使用HTTP向客户端推送消息?
两种方法:
- 长轮询:
- 客户端发送一个HTTP请求到服务器,请求中包含一个标识客户端的唯一标识符。
- 服务器接收到请求后,检查是否有新消息。
- 如果有新消息,服务器立即返回响应,包含新消息内容。
- 如果没有新消息,服务器保持连接打开,等待有新消息或者超时。
- 客户端收到响应后,处理接收到的消息,并再次发送请求,以便持续接收服务器的推送消息。
- 服务器推送:
- 客户端发送一个HTTP请求到服务器,请求中包含一个标识客户端的唯一标识符。
- 服务器接收到请求后,检查是否有新消息。
- 如果有新消息,服务器主动推送消息给客户端,不需要客户端发起新的请求。
- 客户端收到推送的消息后,处理接收到的消息。
IOC的基本功能?
对象的创建和管理
依赖注入:解决对象与对象之间的依赖关系,通过构造函数注入、属性注入或者方法注入来实现。
IOC的基本功能是通过将对象的创建、管理和依赖注入的控制权交给容器中,从而降低应用程序的耦合度,提高代码的可维护性和可测试性。
从用户输入url到前端显示,经历了哪些步骤?
DNS解析;客户端三次握手与服务端建立TCP连接;客户端发起HTTP请求;服务器处理请求并响应,接收响应,渲染页面。
类加载过程?
加载、验证、准备、解析、初始化、使用
Java比C能实现跨平台的原因?
Java程序在运行时,会先将java执行为.class的字节码文件,字节码是一种与具体平台无关的中间代码,它可以在任何支持Java虚拟机(JVM)的平台上运行。
平台无关的API ,内存管理
双亲委派机制,作用?
需要子类处理的任务,子类把它交给父类去处理,父类处理不了,子类再去处理。
同一个类只加载一个,避免被重复加载
可以防止恶意伪装或篡改核心库的类API
抽象类和接口的区别?
抽象类中可以有具体方法和抽象方法,而接口中只能有抽象方法,在JDK1.8后有默认方法
抽象类只能单继承,接口可以多实现
抽象类可以有构造方法,接口不行
方法修饰可以除private都可
乐观锁和悲观锁区别?
乐观锁是认为其他线程不会修改资源,不会加锁,但在更新数据时检查数据使用版本号或者CAS(Compare and Swap)操作来保证数据的一致性。才会去加锁。
悲观锁是认为每个线程都会对共享资源进行修改,所以在访问共享资源前,会先加锁,其他线程就无法修改,知道线程完成操作。悲观锁的经典应用是数据库中的行锁和表锁,以及Java中的synchronized关键字。
悲观锁适用于并发写操作较多的场景,乐观锁适用于并发读操作较多的场景。
??行级锁的死锁场景?
假设有两个事务T1和T2,同时对表中的两行数据进行更新操作。
- 事务T1首先获取了行A的行级锁,并且在更新行A的数据。
- 同时,事务T2也获取了行B的行级锁,并且在更新行B的数据。
- 事务T1在更新行A的过程中,需要获取行B的行级锁才能继续执行后续操作。
- 事务T2在更新行B的过程中,需要获取行A的行级锁才能继续执行后续操作。
在这个场景中,事务T1持有行A的行级锁并等待行B的行级锁,而事务T2持有行B的行级锁并等待行A的行级锁。由于两个事务互相等待对方持有的行级锁,导致两个事务都无法继续执行,形成死锁。
TCP、UDP的区别和各自的使用场景?
TCP 面向连接、需要可靠性和完整性的数据传输
UDP 无连接、需要低延迟的应用,如实时视频、音频通话等
项目中有没有用到多态?你是怎么用到的,详细讲讲?
电商系统,产品类(产品打折的方法),继承产品类的图书类,手机类,子类(重新产品打折的方法,不同的折扣)
在购物车计算商品价格时,根据子类对象的不同来计算每个商品的价格。
进程和线程的区别?
进程是系统资源分配的单位,线程是Cpu调度的单位,
线程是进程的一个执行单元,一个进程中有很多线程。
实现线程的方式?
继承Thread类;实现Runnable接口,Callable接口,线程池
Runnable和callable的区别?
Runnable中的run方法没有返回值,不能抛出受检查异常,通过Thread类来创建线程
callable中的call方法有返回值,可以抛出授检查异常,通过ExecutorService的submit()方法来提交任务,并一个Future对象
三次握手
SYN: 建立连接的标识
seq; 序列号 用于标识数据流的顺序和完整性
ACK: 应答标识 表示对另一端点的连接请求的确认
ACKnum: 确认号
第一次握手: 客户端发出 SYN seq=x
第二次握手: 服务端回应 SYN=1 ACK=1 seq =y ack=x+1
第三次握手: 客户端回应 ACK=1 seq =x+1 ack=y+1
四次挥手
假设由客户端发送断开请求
第一次挥手 客户端发送 FIN=1 seq=u
第二次挥手 服务端发送 ACK=1 seq=v ack=u+1
第三次挥手 服务端发送 FIN=1 ACK=1 seq=w ack=u+1
第四次挥手 客户端发送 ACK=1 seq=u+1 ack=w+1
相关文章:

9月9日扒面经
堆和栈的区别? 分配方式:堆内存是由程序员手动分配和释放的,而栈内存是由编译器自动分配和释放的。内存管理:堆内存需要手动管理内存的分配和释放,程序员需要显式地调用malloc()或new来分配内存,并使用fre…...

项目实战:ES的增加数据和查询数据
文章目录 背景在ES中增加数据新建索引删除索引 在ES中查询数据查询数据总数量 项目具体使用(实战)引入依赖方式一:使用配置类连接对应的es服务器创建配置类编写业务逻辑----根据关键字查询相关的聊天内容在ES中插入数据 总结提升 背景 最近需…...

vs code调试rust乱码问题解决方案
在terminal中 用chcp 65001 修改一下字符集,就行了。有的博主推荐 修改 区域中的设置,这会引来很大的问题。千万不要修改如下设置:...

大数据课程K22——Spark的SparkSQL的API调用
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的通过api使用SparkSQL; 一、通过api使用SparkSQL 1. 实现步骤 1. 打开scala IDE开发环境,创建一个scala工程。 2. 导入spark相关依赖jar包。 3. 创建包路径以object类。 4.…...

数据结构学习系列之顺序表的两种删除方式
方式1:在顺序表的末端删除所存储的数据元素,代码如下:示例代码: int delete_seq_list_1(list_t *seq_list){if(NULL seq_list){printf("入参为NULL\n");return -1;}if(0 seq_list->count){printf("顺序表为空…...

机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)
机器学习笔记之最优化理论与方法——基于无约束优化问题的常用求解方法[上] 引言总体介绍回顾:线搜索下降算法收敛速度的衡量方式线性收敛范围高阶收敛范围 二次终止性朴素算法:坐标轴交替下降法最速下降法(梯度下降法)梯度下降法的特点 针对最速下降法缺…...

ES-索引管理
前言 数据类型 搜索引擎是对数据的检索,所以我们先从生活中的数据说起。我们生活中的数据总体分为两种: 结构化数据非结构化数据 结构化数据: 也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数…...

linux中常用shell脚本整理
linux常见shell脚本整理 备份日志 #!/bin/bash # 每日创建新的备份日志-根据日期备份 tar -czf log-date %Y%m%d.tar.gz /var/log # 通过crontab 每日定时启动 00 03 * * 5 /root/logbak.sh 监控内存和磁盘容量,小于给定值时报警 #!/bin/bash # 实…...

介绍PHP
PHP是一种流行的服务器端编程语言,用于开发Web应用程序。它是一种开源的编程语言,具有易学易用的语法和强大的功能。PHP支持在服务器上运行的动态网页和Web应用程序的快速开发。 PHP可以与HTML标记语言结合使用,从而能够生成动态的Web页面&a…...

selenium+find_elements用法
1、假如我们遇到多个标签的class一样,比如像下面这样的 我们可以采用js语法去定位,比如: document.getElementsByClassName("ant-calendar-picker-input ant-input")[0]...

1DM+下载器_11.2.1魔改增强版下载
1DM「原:IDM」下载器是一款安卓端的下载工具,多语言解锁版直安装版本,号称是目前 Android 平台最快、最先进的下载管理器应用「支持通过Torrent下载」,而这个版本是改线程的最新idm版本,可用来下载视频、音乐、电影、T…...

vue3:3、项目目录和关键文件
关于vsvode的更改 <!-- 加上setup允许在script中直接编写组合式api --> <script setup> // 组件引入后直接用 import HelloWorld from ./components/HelloWorld.vue import TheWelcome from ./components/TheWelcome.vue</script><!-- 1、js放在最上面&am…...

ChatGPT实战与私有化大模型落地
文章目录 大模型现状baseline底座选择数据构造迁移方法评价思考 领域大模型训练技巧Tokenizer分布式深度学习数据并行管道并行向量并行分布式框架——Megatron-LM分布式深度学习框架——Colossal-AI分布式深度学习框架——DeepSpeedP-tuning 微调 资源消耗模型推理加速模型推理…...

10分钟从实现和使用场景聊聊并发包下的阻塞队列
上篇文章12分钟从Executor自顶向下彻底搞懂线程池中我们聊到线程池,而线程池中包含阻塞队列 这篇文章我们主要聊聊并发包下的阻塞队列 阻塞队列 什么是队列? 队列的实现可以是数组、也可以是链表,可以实现先进先出的顺序队列,…...

Python入门学习13(面向对象)
一、类的定义和使用 类的使用语法: 创建类对象的语法: class Student:name None #学生的名字age None #学生的年龄def say_hi(self):print(f"Hi大家好,我是{self.name}")stu Student() stu.name &q…...

哈工大计算机网络课程网络安全基本原理之:身份认证
哈工大计算机网络课程网络安全基本原理之:身份认证 在日常生活中,在很多场景下我们都需要对当前身份做认证,比如使用密码、人脸识别、指纹识别等,这些都是身份认证的常用方式。本节介绍的身份认证,是在计算机网络安全…...

海外代购系统/代购网站怎么搭建
搭建海外代购系统/代购网站的详细步骤涉及到的内容非常多,本文将分为以下几个部分进行详细介绍:前端开发、后端管理系统的开发、数据库设计和代购流程的设计与实现。 一、前端开发 前端开发是整个代购网站的门面,它直接面向用户,…...

go-micro
go-micro Go Micro简介go-micro体系结构gin-go-micro使用consul实现服务注册与发现实现服务发现批量启动多个服务测试服务发现服务调用在微服务中使用ProtocolBuffergo-micro配置文件...

安装GPU驱动,CUDA Toolkit和配置与CUDA对应的Pytorch
如果有帮助,记得回来点个赞 目录 1.安装指定GPU驱动如果安装的GPU CUDA Version和CUDA Toolkit版本已经冲突怎么办? 2.安装指定版本的CUDA Toolkit如果我安装了CUDA Toolkit之后nvcc -V仍然显示旧的CUDA Toolkit版本怎么办? 3.安装与CUDA对应的Pytorch 1.安装指定GPU驱动 &…...

JavaScript单例模式
JavaScript单例模式 1 什么是单例模式2 实现一个基础的单例模式3 透明的单例模式4 用代理实现单例模式5 JavaScript 中的单例模式6 惰性单例 1 什么是单例模式 保证一个类只有一个实例,并提供一个访问它的全局访问点,这就是单例模式。 单例模式是一种常…...

centos下安装jenkins.war
https://get.jenkins.io/war-stable/ 下载jenkins.war包,(2.164.1 版本支持1.8,其他的都是jdk11),可以安装完成后更新jenkins.war的安装包启动jenkins命令 java -jar jenkins.war --httpPort8010访问http://IP:8010/jenkins (密码在/root/.jenkins/secre…...

App线上网络问题优化策略
在我们App开发过程中,网络是必不可少的,几乎很难想到有哪些app是不需要网络传输的,所以网络问题一般都是线下难以复现,一旦到了用户手里就会碰到很多疑难杂症,所以对于网络的监控是必不可少的,针对用户常见…...

PDF 工具箱
PDF 工具箱 V9.0.0.1 程序:VB.net 运行库:NET Framework 4.5 功能简介: 1、PDF文件多文件合并,可调整顺序。 2、PDF文件拆分,将每页拆分成独立的PDF文件。 3、PDF文件添加水印,文字或图片水印&…...

大数据组件系列-Hadoop每日小问
1、谈谈对HDFS的理解?HDFS这种存储适合哪些场景? HDFS即Hadoop Distributed File System,Hadoop 分布式文件系统。它为的是解决海量数据的存储与分析的问题,它本身是源于Google在大数据方面的论文,GFS-->HDFS; HD…...

【前端】在Vue页面中引入其它vue页面 数据传输 相互调用方法等
主页面 home 从页面 headView 需求 在 home.vue 中引用 headView.Vue 方案: home.vue 代码: 只需要在home.vue 想要的地方添加 <headView></headView> <script>//聊天页面 import headView /view/headView.vueexport default {components: {headView},…...

网络通信深入解析:探索TCP/IP模型
http协议访问web 你知道在我们的网页浏览器的地址当中输入url,未必是如何呈现的吗? web浏览器根据地址栏中指定的url,从web服务器获取文件资源(resource)等信息,从而显示出web页面。web使用HTTP(…...

可靠的可视化监控平台应用在那些场景?
可视化监控平台是一种用户友好的工具,可以帮助用户实时监控IT设备的运行状态和网络流量,以及监测安全性和性能指标。它们通常采用图形化界面,使得用户能够直观地了解设备和网络的状态。 以下是一些可视化监控平台常见的应用场景:…...

从 BBR 失速到带宽探测
看一下 pacing 流失速的成因: 一段时间收不到 ack,丢了 ack 自时钟,cwnd 将耗尽,bbr 虽有 cwnd_gain(上图没有表现),但在该 cwnd_gain 下不依赖 ack 持续坚持发送多久取决于 cwnd_gain 的数值。 bbr 失速的后果在于…...

MobaXterm使用sz/rz命令下载上传文件
MobaXterm使用sz/rz命令下载上传文件 1 参考文档2 下载3 上传 1 参考文档 MobaXterm使用sz/rz命令下载上传文件 2 下载 步骤1:sz filename 步骤2:ctrl 鼠标右键 步骤3:Receive file using Z-modem 3 上传 步骤1:rz 步骤2&am…...

vue el-popover hover延时触发,el-popover 鼠标放上三秒以后触发
背景:el-popover hover只要鼠标刮过就显示 多个el-popover出现加载卡顿 解决方案 给el-popover加一个延时显示 <template><div><el-popovertrigger"hover":open-delay"3000"content"这是一个Popover"><button…...