前端题目类型
HTML+CSS常见面试题
- HTML标签有哪些行内元素
img
、picture
、span
、input
、textarea
、select
、label
- 说说你对元素语义化的理解
- 元素语义化就是用正确的元素做正确的事情。虽然理论上所有html元素都可通过css样式实现相同效果,但这样会使事情复杂化,所以需要元素语义化来降低复杂度。
- 实际开发中,元素语义化好处很多:提高代码的阅读性和可维护性;减少开发者之间的沟通成本;能让语音合成工具正确识别网页元素的用途,以便做出正确的反应;有利于SEO(Search Engine Optimization,搜索引擎优化)。
- HTML中有哪些语义化标签
header
、footer
、main
、aside
、article
、section
、address
、summary/details
、menu
、h1/h2/h3/h4/h5/h6
、img
、p
、strong/italic
- 什么是URL编码 (URL Encode)
encodeURI
用来编码URI,其不会编码保留字符。encodeURIComponent
用来编码URI参数,除了字符A-Z
、a-z
、0-9
、-
、_
、.
、!
、~
、*
、'
、(
、)
,其他都将会转义。
- 说说你对SEO的理解
- SEO即搜索引擎优化(Search Engine Optimization),目的是提高网站的曝光度以及网站的排名。
- Google搜索引擎的工作流程主要分为三个阶段:
- 抓取:Google会使用名为“抓取工具”的自动程序搜索网络,查找新网页或更新后的网页,并将这些网页的地址(即网址)存储在一个大型列表中,以便日后查看。主要通过跟踪已知网页中的链接查找网页。
- 编入索引:Google会访问通过抓取得知的网页,并尝试分析每个网页的主题。Google会分析网页中的内容、图片和视频文件,尝试了解网页的主题,这些信息存储在Google索引中,Google索引是一个存储在海量计算机中的巨大数据库。
- 呈现搜索结果:当用户在Google上进行搜索时,Google会尝试确定最优质的搜索结果。“最佳”结果取决于许多因素,包括用户的位置、语言、设备(桌面设备或手机)以及先前用过的搜索查询。例如,用户搜索“自行车维修店”后,Google向巴黎用户显示的答案与向香港用户显示的答案有所不同。支付费用不能提高网页在Google搜索结果中的排名,网页排名是完全依靠算法完成的。
- '+‘与’~'选择器有什么不同
~
是匹配元素之后的选择器。+
是匹配相邻元素选择器。
- 说明text-align居中的条件
text-align
是设置文本的水平对齐方式,是继承属性。它并不控制块元素自己的对齐,只控制它的行内内容的对齐。- MDN解释:定义行内内容(例如文字)如何相对它的块父元素对齐(可以设置图片居中)。
- W3C官方文档解释:设置行内(inline - level)元素(没有填满父元素)在块级父元素的对齐方式。
- line-height为什么可以让文字垂直居中?
line-height
指两行文字基线(baseline)之间的间距。基线是与小写字母x
最底部对齐的线 。行高 - 文本高度 = 行距 。normal
:取决于用户端。桌面浏览器(包括Firefox)使用默认值,约为1.2。<数字>
:该属性的应用值是这个无单位数字乘以该元素的字体大小,这是设置line-height
的推荐方法,不会在继承时产生不确定的结果。<长度>
:指定长度用于计算line box
的高度,以em
为单位的值可能会产生不确定的结果。<百分比>
:与元素自身的字体大小有关,计算值是给定的百分比值乘以元素计算出的字体大小,百分比值可能会带来不确定的结果。- 假设
div
中只有一行文字,让line-height
等同于height
,这行文字就能在div
内部垂直居中。
- 说说盒子模型包含哪些内容?
- 宽度和高度:通过宽度和高度设置。
- 内边距:通过
padding
设置,padding: padding-top padding-right padding-bottom padding-left;
。 - 边框:通过
border
设置,border: border-width border-style border-color
。 - 外边距:通过
margin
设置,margin: margin-top margin-right margin-bottom margin-left
。
- 说说你对margin的传递和折叠的理解
- margin-top传递:当块级元素的顶部线和父元素的顶部线重叠,一般发生在父子块元素之间,这个块级元素的
margin-top
值会传递给父元素。 - margin-bottom传递:当块级元素的底部线和父元素的底部线重叠,这个块级元素的
margin-bottom
值会传递给父元素 。 - 折叠:指的是垂直方向上相邻的2个
margin
(margin-top
、margin-bottom
)有可能会合并为1个margin
。它有兄弟块级元素之间的上下margin
的折叠,也有父子块级元素之间的margin
折叠。
- margin-top传递:当块级元素的顶部线和父元素的顶部线重叠,一般发生在父子块元素之间,这个块级元素的
- CSS隐藏页面中某个元素的几种方法
display: none
:元素完全从渲染树中消失,渲染时不占据任何空间,不能点击。opacity: 0
:透明度为0,仍在文档流中,作用于其上的事件(如点击)仍有效。visibility: hidden
:透明度为0,仍在文档流中,但作用于其上的事件(如点击)无效,这也是visibility:hidden
与opacity: 0
的区别。content-visibility
:移出文档流,但是再次显示时消耗性能低。position: absolute; top: -9000px; left: -9000px;
:绝对定位于当前页面的不可见位置。
- box-sizing有什么作用?content-box和border-box的区别
box-sizing
用来设置盒子模型中宽高的计算方式。content-box
:padding
、border
都布置在width
、height
外边。border-box
:padding
、border
都布置在width
、height
里边。
- 为什么会发生样式抖动
- 因为没有指定元素具体高度和宽度,比如数据还没有加载进来时元素高度是100px(假设),数据加载进来后,元素被撑大,所以出现了抖动。
- 说说浮动常见的规则?
- 元素一旦浮动后,脱离标准流。
- 朝着向左或向右方向移动,直到自己的边界紧贴着包含块(一般是父元素)或者其他浮动元素的边界为止。
- 定位元素会层叠在浮动元素上面。
- 如果元素是向左(右)浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界。
- 浮动元素之间不能层叠(左浮找左浮,右浮找右浮)。
- 如果水平方向剩余的空间不够显示浮动元素,浮动元素将向下移动,直到有充足的空间为止。
- 浮动元素不能与行内级内容层叠,行内级内容将会被浮动元素推出,比如行内级元素、
inline-block
元素、块级元素的文字内容。 - 行内级元素、
inline-block
元素浮动后,其顶部将与所在行的顶部对齐。
- 为什么需要清除浮动?清除浮动有几种方法?
- 为什么需要清除浮动:由于浮动元素脱离了标准流,变成了浮动元素,不再向父元素汇报高度,所以父元素在计算高度时并没有将浮动元素的高度计算进来,造成了高度塌陷的问题。解决高度塌陷的问题就叫做清除浮动。清除浮动的目的是为了让父元素在计算高度的时候把浮动子元素的高度计算进去。
- 清除浮动的方法:
- 给父元素设置固定高度,扩展性不好,不推荐。
- 在父元素的最后增加一个空的块级子元素,并设置
clear:both
,但是增加了无意义的空标签,违反了结构与样式分离的原则。 - 给父元素添加一个伪元素(推荐):
.clear_fix::after {content: "";display: block;clear:both;visibility: hidden; /* 浏览器兼容性 */height: 0; /* 浏览器兼容性 */
}
.clear_fix {*zoom: 1; /* IE6/7兼容性 */
}
- `overflow:auto`触发BFC(块级格式化上下文)来清除浮动(前提高度为auto)。
- 伪类与伪元素有什么区别?
- 伪类使用单冒号,而伪元素使用双冒号。如
:hover
是伪类,::before
是伪元素。 - 伪元素会在文档流生成一个新的元素,并且可以使用
content
属性设置内容。
- 伪类使用单冒号,而伪元素使用双冒号。如
- 结构伪类nth-child(n)和nth-of-type(n)的区别?
:nth-child
是结构伪类选择器,选中父元素的第几个子元素 ,计数时与元素的类型无关。:nth-of-type
是结构伪类选择器,类似:nth-child
,但是计数时只计算同种类型的元素。
- 元素或文本水平居中实现方案有哪几种?
text-align: center
:指定该属性的元素可以让其内部行内元素、行内块级元素和文本水平居中。margin: 0 auto
:该属性可以让具有宽度的块级元素水平居中。- 定位:
position: relative; left:50%; transform:translate(-50%,0);
(行内元素无效)。- 或者设置了宽度的情况:
width: 200px;
height:200px;
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
- 或者:
position: absolute;
width: 200px;
left:50%;
margin-left: -100px(需要居中的元素使用);
- **flex布局**:
display: flex;
justify-content: center; /* flex item居中 */
- 元素或文本垂直居中实现方案有哪几种?
- line-height:可以让块级和行内元素(行内非替换元素,行内替换元素,行内块级元素)的文本垂直居中。
- 定位:
position: relative; top:50%; transform:translate(0,-50%);
(行内元素无效)。- 或者设置了高度的情况:
width: 200px;
height:200px;
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
- 或者:
position: absolute;
top:50%;
height: 200px;
margin-top: -100px (需要居中的元素使用);
- **flex布局实现**:
display: flex;
align-items: center; /* flex item居中 */
- rem、em、vw、vh单位是什么意思?
rem
:单位是根据根元素(即html
)的font-size
大小来计算。em
:单位是根据自身元素的font-size
大小来计算。vw
:viewport width
,即视口的宽。vh
:viewport height
,即视口的高。
- 什么是视口(viewport)?
- pc端的视口:就是浏览器的可视区域。
- 移动端视口:
- 布局视口:会按照一个默认宽度980px,来布局一个页面盒子的内容。为了可以显示完整的页面,会对整个页面进行缩小。可以通过
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
设置布局视口的宽度。 - 视觉视口:显示在可视区域的视口,就是视觉视口。
- 理想视口:当布局视口 = 视觉视口的时候,就是理想视口 。可以通过
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
实现理想视口。
- 布局视口:会按照一个默认宽度980px,来布局一个页面盒子的内容。为了可以显示完整的页面,会对整个页面进行缩小。可以通过
- 移动端适配的方案有哪些?
- 百分比布局:因为不同属性百分比的值,相对的可能是不同的参照物,所以百分比往往很难统一。
- 视口 + (rem + 动态HTML的font-size ):
- 动态计算HTML
font-size
:- 用媒体查询来修改HTML
font-size
(缺点是不能实时改变font-size
的大小)。 - 自己编写JS来实现修改HTML
font-size
的大小(可以实时修改字体大小)。 - 引用
lib-flexiable
库来实现(原理是JS动态改HTMLfont-size
)。
- 用媒体查询来修改HTML
px
转成rem
:- 手动计算
rem
。 - Less的映射来计算 。
postcss-pxtorem
插件来实现(需依赖webpack
或Vite
) 。cssrem
VSCode插件来实现 。
- 手动计算
px
转成vw
:- 手动计算
vw
。 - Less的映射来计算 。
postcss-px-to-viewport
的插件(需依赖webpack
或Vite
) 。cssrem
VSCode插件。
- 手动计算
- 动态计算HTML
- flex弹性布局:利用
flex container
属性和flex item
属性实现布局。
- 什么是Flexible Box布局?
- CSS Flexible Box布局俗称Flexbox,是一种一维布局模型,它具有灵活高效的布局,在项目之间分配空间来控制它们的对齐结构。它允许容器内的响应式元素根据屏幕或设备大小自动排列。
- Flex布局有两根轴线,分别为主轴和交叉轴。主轴由
flex-direction
定义,另一根轴垂直于它。
- flex布局container和item的属性分别有哪些?以及其作用?
- flex container属性:
display: flex
:定义元素为Flex容器。flex-direction
:决定主轴方向,默认值为row
。flex-wrap
:决定flex container是单行还是多行,默认值为nowrap
。flex-flow
:前面两个属性的组合写法,默认值为row nowrap
。justify-content
:决定flex items在主轴的对齐方式,默认值为flex-start
。align-items
:决定flex items在交叉轴的对齐方式,默认值为normal
。align-content
:决定多行flex items在交叉轴的对齐方式,默认值为stretch
。
- flex item属性:
flex-grow
:决定flex items如何拉伸,默认值为0。flex-shrink
:决定flex items如何收缩,默认值为1。flex-basis
:决定flex items的基本size大小, 默认值为auto
。flex
:是前面3个属性的组合写法。align-self
:指定flex item自身的排序方式,默认值为auto
。order
:决定了flex items的排布顺序,越小越靠前,默认值为0。
- flex container属性:
- 常见的CSS Transform形变有哪些?
transform
属性允许对某一个元素进行某些形变,包括旋转,缩放,倾斜或平移等。transform
对于行内级非替换元素(如a
,span
)是无效的。translate(x, y)
:平移,用于移动元素在平面上的位置。scale(x, y)
:缩放,可改变元素的大小。rotate(deg)
:旋转,表示旋转的角度。skew(deg, deg)
:倾斜,定义了一个元素在二维平面上的倾斜转换。
- 说出CSS Transition和Animation动画的区别
- transition:
- 只能定义开始和结束两个状态,无法定义中间状态。
- 不能重复执行动画,除非再次触发。
- 需要在特定状态(如某属性修改)触发后才执行。
- animation:
- 可以用
@keyframes
定义动画序列,精确控制每一帧的执行。 - 通过设置
animation - iteration - count
规定动画执行次数。 - 无需触发特定状态即可执行。
- 可以用
- 性能与特点:
- CSS3动画:浏览器会进行优化,如新建图层来运行动画,性能稍好,代码相对简单,但动画控制不够灵活,兼容性欠佳,部分动画功能(如滚动动画、视差滚动等)无法实现。
- JavaScript动画:控制能力强,可单帧控制和变换,兼容性好(如兼容IE6),功能强大。复杂控制的动画适合用JavaScript;小的交互动效可优先考虑CSS。
- transition:
- play-state属性,动画与js动画哪个性能更好:在性能上,CSS3动画会因为浏览器的优化(如新建图层)稍好一些。但代码灵活性不如JavaScript动画。JavaScript动画能弥补CSS动画的缺点,控制能力强、功能强大且兼容性好。复杂动画适合用JavaScript,简单交互动效适合用CSS。
- 说说vertical-align的作用以及应用场景?
- 作用:影响行内级元素在一个行盒中垂直方向的位置,默认值为
baseline
(基线对齐) 。 - 对齐方式及含义:
baseline
(默认值):基线对齐。top
:把行内级盒子的顶部跟line boxes
顶部对齐。middle
:行内级盒子的中心点与父盒基线加上x - height
一半的线对齐。bottom
:把行内级盒子的底部跟line box
底部对齐。
- 应用场景分析:
- 只有文字时:行盒包裹内容,文字的
bottom - line
和行盒底部对齐。 - 有图片和文字时:图片的底部和文字的
baseline
对齐。 - 有图片、文字、
inline - block
(比图片大)时:图片的底部、行内块底部和文字的baseline
对齐。 - 有图片、文字、
inline - block
(比图片大)且设置了margin - bottom
时:图片的底部、行内块margin - bottom
底部和文字的baseline
对齐;文字的margin - bottom
底部和文字的baseline
对齐。 - 有图片、文字、
inline - block
(比图片大)且设置了margin - bottom
并且有文字baseline
时:图片的底部、行内块内最后一行文字的baseline
对齐。
- 只有文字时:行盒包裹内容,文字的
- 作用:影响行内级元素在一个行盒中垂直方向的位置,默认值为
- 说说你对BFC的理解
- 定义:
block format context
(块级格式化上下文),是页面的一块渲染区域,有一套渲染规则,决定子元素如何定位以及与其他元素之间的排列布局关系 。 - 创建条件:
- 根元素:
body
/:root
。 float left/right
。position absolute/fixed
。overflow
:除visible
。display: inline - block/table - cell/table - caption
、flex/grid
等。
- 根元素:
- 特点:
- 垂直方向自上而下排布,垂直方向的间距由
margin
决定。 - 同一个BFC中盒子之间的
margin
会折叠。 - BFC中每个元素的左边缘紧挨着包含块的左边缘。
- 计算BFC的高度时,需要计算浮动元素的高度。
- BFC内部不会影响外部元素,BFC区域不会与浮动的元素发生重叠。
- 垂直方向自上而下排布,垂直方向的间距由
- 作用:
- 解决
margin
折叠的问题。 - 解决高度塌陷的问题(前提:浮动的父级BFC高度为
auto
)。 - 创建两栏布局,左边浮动,右边
overflow:hidden
。
- 解决
- 定义:
- 介绍下BFC、IFC、GFC和FFC
- BFC(Block formatting contexts):页面上的一个隔离的渲染区域。通过
float
、position
、overflow
、display
等属性可触发。可用于实现多栏布局、解决margin
折叠和高度塌陷问题等。 - IFC(Inline formatting contexts):内联格式上下文。
IFC
的line box
高度由其包含行内元素中最高的实际高度计算而来(不受竖直方向的padding/margin
影响)。IFC
中的line box
一般左右都贴紧整个IFC
,但会被float
元素扰乱。IFC
中不能有块级元素,插入块级元素会产生两个匿名块与该块级元素分隔开,形成两个IFC
。可用于水平居中和垂直居中,如将块元素设置为inline - block
产生IFC
,利用text - align
水平居中;创建IFC
,用一个元素撑开父元素高度,设置vertical - align:middle
实现其他行内元素垂直居中。 - GFC(GrideLayout formatting contexts):网格布局格式化上下文。当元素的
display
值为grid
时,该元素会获得一个独立的渲染区域。通过在网格容器上定义网格定义行和列属性,以及在网格项目上定义网格行和列,可为每个网格项目定义位置和空间。与table
相比,有更丰富的属性来控制行列、对齐和精细的渲染语义。 - FFC(Flex formatting contexts):自适应格式上下文。
display
值为flex
或inline - flex
的元素会生成自适应容器。由伸缩容器和伸缩项目组成,设置为flex
的容器渲染为块级元素,inline - flex
的容器渲染为行内元素。伸缩容器中的子元素为伸缩项目,可自由布局。目前部分浏览器支持,在移动端应用广泛。
- BFC(Block formatting contexts):页面上的一个隔离的渲染区域。通过
- 说出不同像素之间的差异?
- 设备像素(物理像素):显示器上真实的像素,设备分辨率(如iPhone X的1125x2436)指的就是设备像素。
- 设备独立像素(逻辑像素):是对设备像素的抽象,为开发者提供统一的像素概念。不同设备像素下,开发者使用设备独立像素可实现相对一致的显示效果。
- css像素:默认情况下就是设备独立像素(逻辑像素)。在高分辨率屏幕(如2k、4k)中,一个css像素可能由多个物理像素渲染。
- 分析比较opacity: 0、visibility: hidden、display: none优劣和适用场景
- 结构:
display:none
:元素完全从渲染树中消失,渲染时不占据空间,不能点击。visibility: hidden
:元素不会从渲染树消失,渲染元素继续占据空间,只是内容不可见,不能点击。opacity: 0
:元素不会从渲染树消失,渲染元素继续占据空间,只是内容不可见,可以点击。
- 继承:
display: none
和opacity: 0
:是非继承属性,子孙节点消失是因为元素从渲染树消失,修改子孙节点属性无法显示。visibility: hidden
:是继承属性,子孙节点消失是由于继承了hidden
,通过设置visibility: visible
可让子孙节点显示。
- 性能:
display:none
:修改元素会造成文档回流,读屏器不会读取该元素内容,性能消耗较大。visibility:hidden
:修改元素只会造成本元素的重绘,性能消耗较少,读屏器读取该元素内容。opacity: 0
:修改元素会造成重绘,性能消耗较少。
- 适用场景:
display:none
:适用于在页面加载时就不需要显示,且不希望占用布局空间的元素。visibility: hidden
:适用于临时隐藏元素,且希望保留其占位空间的场景。opacity: 0
:适用于需要元素不可见但仍可交互(如点击)的情况。
- 结构:
- 如何解决移动端Retina屏1px像素问题
- 0.5px实现:利用媒体查询根据设备像素比设置边框宽度为0.5px(或0.333333px等)。但在IOS7及以下和部分Android浏览器中,0.5px可能显示为0px,需通过JS检测浏览器是否支持0.5px。优点是简单无副作用,缺点是兼容性有限。
- viewport + rem实现:通过设置缩放,使CSS像素等于真正的物理像素。需要动态计算并设置根字体大小,在CSS中使用rem单位。缺点是通过JS修改文档会影响性能,且会影响项目中所有使用rem单位的对象,不适合老项目改造。
- 伪元素 + transform实现(推荐):利用伪元素(如
::after
或::before
)独立于当前元素的特性,基于媒体查询判断设备像素比,对伪元素进行缩放来实现1px效果。若要满足圆角,需给伪类也加上border - radius
。优点是兼容性好,无副作用。 - svg实现(推荐):svg是矢量图形,1px对应的物理像素就是1px。可搭配PostCSS的
postcss - write - svg
使用。优点是实现简单,可实现圆角;缺点是需要学习svg语法。
- 如何用css实现单行和多行文本溢出省略效果?并考虑兼容
- 单行(推荐):
p {overflow: hidden; text - overflow: ellipsis; white - space: nowrap;
}
- **多行(推荐)**:
p {display: -webkit - box; -webkit - line - clamp: 3; /* 行数 */-webkit - box - orient: vertical;overflow: hidden;width: 600px;
}
- **考虑兼容**:
p {position: relative; line - height: 20px; max - height: 40px;overflow: hidden;
}
p::after{content: "..."; position: absolute; bottom: 0; right: 0; padding - left: 40px; background: -webkit - linear - gradient(left, transparent, #fff 55%); background: -o - linear - gradient(right, transparent, #fff 55%); background: -moz - linear - gradient(right, transparent, #fff 55%); background: linear - gradient(to right, transparent, #fff 55%);
}
- 如何计算白屏时间和首屏加载时间
- 白屏时间:
window.performance.timing.domLoading - window.performance.timing.navigationStart
。 - 首屏时间:
window.performance.timing.domInteractive - window.performance.timing.navigationStart
。
- 白屏时间:
- 如何自定义滚动条的样式
- 滚动条相关样式都是伪元素,以
scrollbar
打头,兼容性一般(主要是-webkit -
前缀),但Chrome浏览器使用广泛。 - 常用伪元素:
::-webkit - scrollbar
:整个滚动条。::-webkit - scrollbar - thumb
:滚动条上的滚动滑块。::-webkit - scrollbar - track
:滚动条轨道。
- 示例代码:
- 滚动条相关样式都是伪元素,以
::-webkit - scrollbar {width: 6px;height: 6px;
}
::-webkit - scrollbar - track { border - radius: 3px;background: rgba(0, 0, 0);box - shadow: inset 0 0 5px rgba(0, 0, 0, 0.08);
}
::-webkit - scrollbar - thumb {border - radius: 3px;background: rgba(0, 0, 1);box - shadow: inset 0 0 10px rgba(0, 0, 0, 0.2);
}
相关文章:
前端题目类型
HTMLCSS常见面试题 HTML标签有哪些行内元素 img、picture、span、input、textarea、select、label 说说你对元素语义化的理解 元素语义化就是用正确的元素做正确的事情。虽然理论上所有html元素都可通过css样式实现相同效果,但这样会使事情复杂化,所以需…...
openwrt路由系统------lua、uci的关系
1. Luci 的核心组成 (1) Lua 简介:Luci 的界面和逻辑几乎完全使用 Lua 脚本语言编写。Lua 是一种轻量级、高效的嵌入式脚本语言,适合在资源受限的路由器环境中运行。作用: 生成动态 Web 页面(与后端交互渲染 HTML)。处理用户提交的表单数据(如修改 Wi-Fi 密码)。调用系…...

Elastic:AI 会开始取代网络安全工作吗?
作者:来自 Elastic Joe DeFever 不会,但它正在从根本上改变这些工作。 生成式 AI (GenAI) 正迅速成为日常安全工作流程中的一个重要组成部分。那么,它是合作伙伴还是竞争对手? GenAI 技术在安全堆栈几乎每个方面的广泛应用&#…...

Linux安装升级docker
Linux 安装升级docker Linux 安装升级docker背景升级停止docker服务备份原docker数据目录移除旧版本docker安装docker ce恢复数据目录启动docker参考 安装找到docker官网找到docker文档删除旧版本docker配置docker yum源参考官网继续安装docker设置开机自启配置加速测试 Linux …...

【经验分享】Ubuntu20.04编译RK3568 AI模型报错问题(已解决)
【经验分享】Ubuntu20.04编译RK3568 AI模型报错问题(已解决) 前言问题现象问题分析解决方案总结 前言 这里使用的是Rockchip提供的rknn_model_zoo,https://github.com/airockchip/rknn_model_zoo/tree/main 此解决方案适用于Rockchip芯片在U…...

国产算力助力工业智能新范式
随着人工智能、智能制造以及边缘计算等技术趋势的发展,算力设备正逐渐从中心云向边缘机房乃至边缘现场下沉。在此背景下,以工控机为例的部署于各类边缘现场的算力设备市场,也正面临着新的变革。 根据IDC 2024研究报告显示:在能源制…...
学习笔记:利用OpenAI实现阅卷智能体
https://zhuanlan.zhihu.com/p/18047953492 ### 学习笔记:利用OpenAI实现阅卷智能体 #### 一、背景与需求 在各类考试中,选择题、判断题、填空题的阅卷相对简单,只需对比答案与作答是否一致。然而,简答题的阅卷较为复杂ÿ…...
第6届传智杯复赛第一场
A小红劈字符串 题目链接 题目链接:A-小红劈字符串(B组)_第6届传智杯复赛第一场(补题) (nowcoder.com) 题目描述 小红拿到了一个仅由小写字母组成的字符串,她希望将其分割成两个非空子串,使得第…...

CSDN博客:Markdown编辑语法教程总结教程(中)
❤个人主页:折枝寄北的博客 Markdown编辑语法教程总结 前言1. 列表1.1 无序列表1.2 有序列表1.3 待办事项列表1.4 自定义列表 2. 图片2.1 直接插入图片2.2 插入带尺寸的图片2.3 插入宽度确定,高度等比例的图片2.4 插入高度确定宽度等比例的图片2.5 插入居…...
Codeforces Round 258 (Div. 2) E. Devu and Flowers 生成函数
题目链接 题目大意 有 n n n ( 1 ≤ n ≤ 20 ) (1\leq n \leq 20) (1≤n≤20) 个花瓶,第 i i i 个花瓶里有 f i f_i fi ( 1 ≤ f i ≤ 1 0 12 ) (1\leq f_i \leq 10^{12}) (1≤fi≤1012) 朵花。现在要选择 s s s ( 1 ≤ s ≤ 1 0 14 ) (1\leq s \leq 1…...

【高并发内存池】释放内存 + 申请和释放总结
高并发内存池 1. 释放内存1.1 thread cache1.2 central cache1.3 page cache 2. 申请和释放剩余补充 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃&#x…...

AutoGen学习笔记系列(九)Advanced - Selector Group Chat
这篇文章瞄的是AutoGen官方教学文档 Advanced 章节中的 Selector Group Chat 篇章,介绍了SelectorGroupChat对象如何从一个Team中选择其中一个Agent与LLM进行对话,并且在得到结果后进行二次规划,同时你也可以自定义选择函数。本质上还是对Tea…...
Stream特性(踩坑):惰性执行、不修改原始数据源
在日常开发中,Stream API 提供了一种高效且易于使用的工具集来处理集合数据。 本文主要讲解 Stream 的两个特性:惰性执行,不修改原始数据源。 为什么说这两个、而不讲下其他的特性呢?主要是因为在开发中如果忽略这两个特性的话&…...

springcloud sentinel教程
QPS(Queries Per Second)即每秒查询率 TPS,每秒处理的事务数目 PV(page view)即页面浏览量 UV 访问数(Unique Visitor)指独立访客访问数 一、初识Sentinel 什么是雪崩问题? 微服务之间相…...

像素的一生 Life of a Pixel - Steve Kobes 2020版
像素的一生 Life of a Pixel - Steve Kobes 2020版 《Life of a Pixel》 作者是Google大佬 Steve Kobes 2020年 介绍Chromium内核完整渲染流程的视频,介绍的非常好,想要学习了解chromium内核渲染必看! 油管视频地址为:https://w…...

系统部署【信创名录】及其查询地址
一、信创类型 (一)服务器: 1.华为云 2.腾讯云 3.阿里云 (二)中央处理器(CPU): 1.海思,鲲鹏920服务器 (三)中间件 1.人大金仓 ࿰…...
VSCode 配置优化指南:打造高效的 uni-app、Vue2/3、JS/TS 开发环境
VSCode 配置优化指南,适用于 uni-app、Vue2、Vue3、JavaScript、TypeScript 开发,包括插件推荐、设置优化、代码片段、调试配置等,确保你的开发体验更加流畅高效。 1. 安装 VSCode 如果你还未安装 VSCode,可前往 VSCode 官网 下载最新版并安装。 2. 安装推荐插件 (1) Vue…...
C++中的析构函数
目录 一、什么是析构函数: 二、析构函数的特性: 一、什么是析构函数: C中的析构函数非常简单,它的功能无非是帮助我们自动归还堆区的空间给操作系统。当我们使用内存开辟函数(如malloc()、realloc())等&a…...
同步,异步,并发,并行
同步: 任务按顺序执行,必须等待前一个任务完成后才能开始下一个任务。 任务之间是强依赖的,通过直接调用或阻塞等待实现。 示例:读取文件时,代码会阻塞直到文件读取完成。 异步: 任务无需等待前一个任务完成即可启…...
种子填充(Floodfill、泛滥填充、洪水填充) 算法c++模板
种子填充(Floodfill) 算法: 从任意 W 开始,不停地把邻接的 W 用 . 代替。1 次 DFS 后与初始 W 连接的所有 W 都被替换成 . 了。 因此,直到图中不存在 W 为止,总共进行 DFS 的次数就是答案了。 问题: 有一个大小为 N x M 的园子,雨后积水。 8 连通的积水被认为是连接在…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...