当前位置: 首页 > news >正文

AndroidAutoSize实战教程:今日头条屏幕适配方案详解

如何在项目中结合 AndroidAutoSize 来进行今日头条屏幕适配,我会具体讲解如何用 AndroidAutoSize 实现屏幕适配,并结合 Kotlin 代码举例分析。

通过 AndroidAutoSize 库来实现屏幕适配,确保在不同的屏幕尺寸、分辨率、密度下,应用界面和广告(如果涉及)能正常显示,特别是在字体、布局、图标等方面的适配。这里不涉及广告 SDK,只是纯粹的屏幕适配方案。
在这里插入图片描述

1. 集成 AndroidAutoSize
首先,在 Gradle 中引入 AndroidAutoSize 库:

dependencies {implementation 'me.jessyan:autosize:1.2.1'
}

2. 初始化 AutoSize
在 Application 类中初始化 AndroidAutoSize。通过全局配置,能够自动适配不同设备的屏幕密度、分辨率等。

import android.app.Application
import me.jessyan.autosize.AutoSize
import me.jessyan.autosize.AutoSizeConfigclass MyApplication : Application() {override fun onCreate() {super.onCreate()// 初始化 AutoSizeAutoSize.initCompatMultiProcess(this)// 可选的配置,AutoSize 会自动适配屏幕密度和字体大小AutoSizeConfig.getInstance().setAutoAdaptDensity(true)  // 自动适配屏幕密度.setBaseOnWidth(true)  // 以屏幕宽度为基准来适配.setSupportDP(true)    // 支持使用 dp 单位}
}

3. 适配布局中的字体和尺寸
接下来,可以在布局文件中使用 dp 和 sp 单位,这样就能确保在不同设备上适配。使用 AutoSize 后,控件的字体、尺寸会自动按比例缩放。

(1) 布局文件示例
以下是一个简单的布局文件,使用了 dpsp 单位:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="16dp"><TextViewandroid:id="@+id/heading"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="今日头条屏幕适配示例"android:textSize="18sp"android:layout_gravity="center"/><Buttonandroid:id="@+id/btn_action"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="点击"android:textSize="16sp"android:layout_gravity="center"/></LinearLayout>

在这个布局中,使用了 sp 来设置字体大小,使用了 dp 来设置控件的间距、尺寸等。AutoSize 会自动根据屏幕的密度进行缩放,确保在不同设备上都能适配。

(2) 字体大小自适应
字体大小可以使用 sp 单位,这样可以确保字体在不同设备上适配。例如:

val textView: TextView = findViewById(R.id.heading)
textView.textSize = 18f  // sp 单位,AutoSize 会自动缩放

AutoSize 会根据当前设备的屏幕密度和分辨率自动调整 textSize,确保在不同设备上显示一致的字体大小。

4. 支持横竖屏切换
当设备从竖屏切换到横屏时,AutoSize 会自动调整布局,保持应用 UI 的一致性,避免界面变形。你只需要在项目中启用 AutoSize,无需额外的代码来处理屏幕方向变化。

在 Kotlin 中,你也可以通过 onConfigurationChanged 方法来监听方向变化,并进行额外的适配。

override fun onConfigurationChanged(newConfig: Configuration) {super.onConfigurationChanged(newConfig)if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {// 横屏适配处理} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {// 竖屏适配处理}
}

5. 如何实现精确控制
如果你想针对不同设备做一些特定的屏幕适配(例如为某些特定屏幕宽度、分辨率提供不同的适配策略),你可以手动控制。

(1) 手动设置 AutoSize 的适配基准
你可以设置 AutoSize 以屏幕宽度或高度为基准进行适配:

AutoSizeConfig.getInstance().setBaseOnWidth(true)  // 以宽度为基准
AutoSizeConfig.getInstance().setBaseOnHeight(false)  // 以高度为基准

(2) 按比例缩放控件尺寸
如果你有自定义控件并且希望按比例来缩放控件尺寸,可以根据实际需要调整控件的尺寸。例如:

val btn = findViewById<Button>(R.id.btn_action)
val buttonWidth = AutoSizeUtils.dp2px(this, 200f)  // 自动缩放为 dp 单位
val buttonHeight = AutoSizeUtils.dp2px(this, 50f)
btn.layoutParams.width = buttonWidth
btn.layoutParams.height = buttonHeight

6. 适配不同屏幕密度
AutoSize 会自动处理不同屏幕密度的适配,确保你的应用在 hdpi、mdpi、xhdpi 等不同的屏幕密度下能够正常显示。你只需要使用 dpsp 单位,AutoSize 会根据设备的屏幕密度自动缩放这些元素。

例如,应用的 UI 可以这样进行设计:

<TextViewandroid:id="@+id/ad_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="适配屏幕示例"android:textSize="18sp" />  <!-- 使用 sp 单位进行字体适配 -->

7. 支持动态改变屏幕适配
有时你可能需要在运行时手动调整适配策略,可以使用以下代码来动态调整适配方式。

// 动态改变适配方案,强制应用使用某种适配策略
AutoSize.autoConvertDensityOfGlobal(this)
AutoSizeConfig.getInstance().setSupportDP(true)  // 支持 dp 单位
AutoSizeConfig.getInstance().setBaseOnWidth(true) // 基于屏幕宽度适配

8. 自定义适配规则
如果需要自定义适配规则,可以通过修改 AutoSizeConfig 来实现。比如,如果你想控制某些特定控件或视图的适配方式,可以使用 AutoSizesetDesignWidthsetDesignHeight 方法来设置一个设计基准。

AutoSizeConfig.getInstance().setDesignWidth(375f)  // 设置设计宽度为 375dp
AutoSizeConfig.getInstance().setDesignHeight(667f) // 设置设计高度为 667dp

9. 总结
结合 AndroidAutoSize 和 Kotlin,屏幕适配方案变得简单而高效。通过以下方式,你可以实现对不同设备的屏幕适配:

  1. 引入 AndroidAutoSize 并在 Application 中初始化。
  2. 使用 dpsp 单位,在布局和代码中自动适配不同屏幕尺寸、分辨率和密度。
  3. 手动控制适配基准、横竖屏切换、和设备特定的适配需求。
  4. 通过自动缩放的方式,使 UI 在各种设备上保持一致,避免了手动计算每个设备的适配方案。

今日头条的屏幕适配方案,如果项目需求不涉及横竖屏切换,且不需要做平板适配,AndroidAutoSize 方案有一定的适用性,尤其是在应对多种屏幕尺寸和密度的情况下。

今日头条的适配方案是基于 宽度(screenWidthDp)来进行动态缩放,从而保证不同屏幕尺寸和分辨率下应用界面的一致性和可读性。它的核心思路是 按照宽度比例来进行屏幕缩放,从而在各种设备上得到更为一致的视觉效果。

适配原则:

  1. 宽度适配:根据屏幕宽度进行缩放,而不是通过固定的像素值,避免因为屏幕尺寸不同导致的 UI 显示异常。
  2. 密度适配:通过将布局元素根据屏幕的 像素密度 自动调整,避免显示不清晰。
  3. 适配范围:主要解决不同分辨率和屏幕尺寸的设备适配问题,尤其是在 Android 手机设备之间的差异。

通过 AndroidAutoSize,我们可以专注于业务开发,而不必担心不同设备间复杂的屏幕适配问题。

结论:是否需要头条适配方案

  • 如果你的应用仅面向 手机设备 且需求简单,且 不涉及横竖屏切换,今日头条的适配方案(AndroidAutoSize) 是非常合适的。通过设置基准尺寸,能够确保不同设备的 UI 保持一致。
  • 如果你希望更精细地控制布局,或者需要针对 平板设备 进行独立适配,则可能需要结合其他的布局适配策略,例如使用 ConstraintLayoutres/layout 文件。

最终的选择依据项目的具体需求来决定。

相关文章:

AndroidAutoSize实战教程:今日头条屏幕适配方案详解

如何在项目中结合 AndroidAutoSize 来进行今日头条屏幕适配&#xff0c;我会具体讲解如何用 AndroidAutoSize 实现屏幕适配&#xff0c;并结合 Kotlin 代码举例分析。 通过 AndroidAutoSize 库来实现屏幕适配&#xff0c;确保在不同的屏幕尺寸、分辨率、密度下&#xff0c;应用…...

学习threejs,通过设置纹理属性来修改纹理贴图的位置和大小

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Texture 贴图 二、&#x1…...

图生3d 图生全景 学习笔记

目录 Aluciddreamer ZoeDepth 会自动下载模型&#xff1a; 图生全景图SD-T2I-360PanoImage&#xff1a; Aluciddreamer GitHub - luciddreamer-cvlab/LucidDreamer: Official code for the paper "LucidDreamer: Domain-free Generation of 3D Gaussian Splatting Sce…...

Delphi 实现键盘模拟、锁定键盘,锁定鼠标等操作

Delphi 模拟按键的方法 SendMessageA 说明: 调用一个窗口的窗口函数&#xff0c;将一条消息发给那个窗口。除非消息处理完毕&#xff0c;否则该函数不会返回SendMessage所包含4个参数: 1. hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象&#xff0c;因为Win32能够维护大多数…...

6. 一分钟读懂“抽象工厂模式”

6.1 模式介绍 书接上文&#xff0c;工厂方法模式只能搞定单一产品族&#xff0c;遇到需要生产多个产品族时就歇菜了。于是&#xff0c;在需求的“花式鞭策”下&#xff0c;程序员们再次绷紧脑细胞&#xff0c;创造出了更强大的抽象工厂模式&#xff0c;让工厂一次性打包多个产品…...

(四)lerobot开源项目的主从臂的远程操作(带相机)(操作记录)

目录 《项目简介》 一、​B站视频参考&#xff08;推荐&#xff09; 二、确定两个usb相机的端口号 三、远程操作&#xff08;带相机&#xff09; 四、遇到问题 《项目简介》 项目地址&#xff1a;GitHub - huggingface/lerobot: &#x1f917; LeRobot: Making AI for Ro…...

离线安装ollama到服务器

搜了很多教程不满意,弄了半天才弄好&#xff0c;这里记录下&#xff0c;方便以后的人用&#xff0c;那个在线下载太慢&#xff0c;怕不是得下载到明年。 一.从官网下在liunx版的tgz安装包 Releases ollama/ollama (github.com) 查看自己的服务器信息&#xff08;参考 https:/…...

Vue前端开发-多级路由配置

在Vue 路由数组中&#xff0c;允许配置多级的路由对象结构&#xff0c;可以是二级、三级或者更多级别&#xff0c;最大级别原则上没有限制&#xff0c;但通常最大的是三或四级&#xff0c;这种路由结构&#xff0c;称之为多级路由。 例如&#xff1a;一级路由地址/list&#x…...

Yocto bitbake and codeSonar

1 mdm 1.1 屏蔽mdm sysvinit的console输出 - uboot传入参数的时候传入consolenull&#xff0c;这样Linux启动信息没有了 - 还需要在Linux配置中去掉Support for console on AMBA serial port - 文件系统/etc/inittab文件里注释掉::respawn:/sbin/getty -L ttyS000 115200 vt100…...

sheng的学习笔记-【中】【吴恩达课后测验】Course 5 -序列模型 - 第二周测验 - 自然语言处理与词嵌入

课程5_第2周_测验题 目录 第一题 1.假设你为10000个单词学习词嵌入&#xff0c;为了捕获全部范围的单词的变化以及意义&#xff0c;那么词嵌入向量应该是10000维的。 A. 【  】正确 B. 【  】错误 答案&#xff1a; B.【 √ 】错误 第二题 2.什么是t-SNE&#xff1f…...

数字图像处理内容详解

1.对比度 最大亮度 / 最小亮度 2.邻域 m邻接&#xff1a;对于像素p和q&#xff0c;如果p和q四临接&#xff0c;或p和q八临接且两者的四邻域的交集为空 通路&#xff1a;如果俩点全部是K邻接&#xff08;K代表4&#xff0c;8&#xff0c;m&#xff09;&#xff0c;则说明存在K…...

python通过ODBC连接神通数据库

1、安装神通数据库 2、安装python 3、安装pyodbc pip3 install pyodbc-5.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 注&#xff1a;pyodbc要和python版本相对应 4、安装unixodbc 5、配置神通数据库ODBC数据源 6、示例代码如下 #!/usr/bin/python…...

QNX的PPS发布/订阅模型

参考资料: QNX官方文档 以下摘自官网介绍: TheQNX NeutrinoPersistent Publish/Subscribe (PPS) service is a small, extensible publish/subscribe service that offers persistence across reboots. It’s designed to provide a simple and easy-to-use solution for b…...

Ubuntu——extrepo添加部分外部软件源

extrepo 是一个用于 Ubuntu 和其他基于 Debian 的系统的工具&#xff0c;它的主要作用是简化和管理外部软件源&#xff08;repositories&#xff09;的添加和更新。通过使用 extrepo&#xff0c;用户可以方便地添加、删除和管理第三方软件源&#xff0c;而不需要手动编辑源列表…...

java基础教程第16篇( 正则表达式)

Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言&#xff0c;但是在每种语言中有细微的差别。 Java 提供了 java.util.regex 包&#xff0c;它包含了 Pattern 和 Matcher 类&#xff0c;用于处理正…...

【Shell 脚本实现 HTTP 请求的接收、解析、处理逻辑】

以下是一个实现客户端对 Shell HTTP 服务发起 POST 请求并传入 JSON 参数的完整示例。Shell 服务会解析收到的 JSON 数据&#xff0c;根据内容执行操作。 服务端脚本&#xff1a;http_server.sh 以下脚本使用 netcat (nc) 来监听 HTTP 请求&#xff0c;并通过 jq 工具解析 JSO…...

Leetcode 每日一题 290.单词规律

目录 一、问题分析 二、解题思路 三、代码实现 四、复杂度分析 五、总结 在编程的世界里&#xff0c;我们常常会遇到各种有趣的字符串匹配问题。今天要探讨的就是这样一个问题&#xff1a;给定一种规律 pattern 和一个字符串 s&#xff0c;判断 s 是否遵循与 pattern 相同…...

图像滤波和卷积的不同及MATLAB应用实例

滤波与卷积在图像处理中都是非常重要的运算&#xff0c;但它们有着明显的区别。以下是滤波与卷积的主要不同点&#xff0c;并附带一个MATLAB实例来展示两者在图像处理中的效果差异。 一、滤波与卷积的不同 定义与目的&#xff1a; 1&#xff09;滤波&#xff1a;滤波是一种信…...

【AI模型对比】AI新宠Kimi与ChatGPT的全面对比:技术、性能、应用全揭秘

文章目录 Moss前沿AI技术背景Kimi人工智能的技术积淀ChatGPT的技术优势 详细对比列表模型研发Kimi大模型的研发历程ChatGPT的发展演进 参数规模与架构Kimi大模型的参数规模解析ChatGPT的参数体系 模型表现与局限性Kimi大模型的表现ChatGPT的表现 结论&#xff1a;如何选择适合自…...

详细解读CMA实验室认可

CMA实验室认可&#xff0c;即中国计量认证&#xff08;China Metrology Accreditation&#xff09;的实验室资质认定&#xff0c;以下是对其的详细解读&#xff1a; 一、定义与目的 CMA认证是经省级以上人民政府计量行政部门对实验室的计量检定、测试能力和可靠性考核合格后进…...

H5与支付宝小程序通信,调起扫一扫

1.public/index.html加入代码 <script>if (navigator.userAgent.indexOf(AliApp) > -1) {document.writeln(<script src"https://appx/web-view.min.js" > < / script>);}window.$my my </script>2.vue其他具体页面加入代码 metho…...

Lighthouse(灯塔)—— Chrome 浏览器性能测试工具

1.认识 Lighthouse Lighthouse 是 Google 开发的一款开源性能测试工具&#xff0c;用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈&#xff0c;并基于优化建议进行改进。 核心功能&…...

深入浅出机器学习中的梯度下降算法

大家好&#xff0c;在机器学习中&#xff0c;梯度下降算法&#xff08;Gradient Descent&#xff09;是一个重要的概念。它是一种优化算法&#xff0c;用于最小化目标函数&#xff0c;通常是损失函数。梯度下降可以帮助找到一个模型最优的参数&#xff0c;使得模型的预测更加准…...

AIGC 012-Video LDM-更进一步,SD作者将LDM扩展到视频生成任务!

AIGC 012-Video LDM-Stable Video diffusion前身&#xff0c;将LDM扩展到视频生成任务&#xff01; 文章目录 0 论文工作1论文方法实验结果 0 论文工作 Video LDM作者也是Stable diffusion的作者&#xff0c;作者在SD的架构上进行扩展&#xff0c;实现了视频的生成。后续在Vid…...

Rust常用命令总结

安装Rust 检查并更新Ubuntu的软件包 $ sudo apt update $ sudo apt upgrade安装相关依赖&#xff1a;安装GCC、G、MAKE、curl $ sudo apt install build-essential $ sudo apt install curl安装Rust $ curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh执行命令…...

docker部署RustDesk自建服务器

客户端&#xff1a; Releases rustdesk/rustdesk GitHub 服务端&#xff1a; 项目官方地址&#xff1a;GitHub - rustdesk/rustdesk-server: RustDesk Server Program 1、拉取RustDesk库 docker pull rustdesk/rustdesk-server:latest 阿里云库&#xff1a; docker pu…...

QT4和 QT5 槽函数连接的区别

正常连接方式 //QT4官方用列QLabel *label new QLabel;QScrollBar *scrollBar new QScrollBar;QObject::connect(scrollBar, SIGNAL(valueChanged(int)),label, SLOT(setNum(int)));//QT5官方用列QLabel *label new QLabel;QLineEdit *lineEdit new QLineEdit;QObject::c…...

【C++】入门【六】

本节目标 一、继承的概念及定义 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、复杂的菱形继承及菱形虚拟继承 八、继承的总结和反思 九、笔试面试题 一、继承的概念及定义 1.继承的概念 继承是面向对象…...

Ansible 运维工具

安装 apt install ansible /etc/ansible/hosts , 指定密码或密钥访问分组机器 [k8s_masters] master0.c0.k8s.sb[k8s_nodes] node0.c0.k8s.sb node1.c0.k8s.sb[k8s:children] k8s_masters k8s_nodes[k8s_masters:vars] ansible_ssh_usersbadmin ansible_ssh_pass"***&q…...

【分布式】分布式缓存

一、什么是分布式缓存 分布式缓存是一种将缓存数据存储在多个节点上的缓存方案。它通过将数据分散存储在多个节点的内存中&#xff0c;以提高系统的读取性能、降低数据库压力和提高系统可扩展性。 二、分布式缓存的优点 优点明细提高性能&#xff1a;分布式缓存可以将数据缓…...

uni-app简洁的移动端登录注册界面

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"content"><view class&quo…...

传奇996_47——前端ui

方式一&#xff1a; 后端写ui&#xff0c;前端通过触发函数进行截取。然后获取标签名进行补充或附加动画 这种方式很好用。 问题1&#xff1a;获取不到标签名&#xff0c;标签名就是标签id&#xff0c;当id数字时不需要处理即可直接获取到&#xff0c;但是id如果时汉字就会获取…...

nlp培训重点

1. SGD梯度下降公式 当梯度大于0时&#xff0c;变小&#xff0c;往左边找梯度接近0的值。 当梯度小于0时&#xff0c;减去一个负数会变大&#xff0c;往右边找梯度接近0的值&#xff0c;此时梯度从负数到0上升 2.Adam优化器实现原理 #coding:utf8import torch import torch.n…...

ARM A32多数据处理汇编指令理解分享

ARM A32多数据处理汇编指令理解分享 1 多数据存储指令1.1 push指令1.2 STMFD/STMDB指令1.3 STMED/STMDA指令1.4 STMFA/STMIB指令1.5 STMEA/STMIA指令 2 多数据加载指令2.1 pop指令2.2 LDMFD/LDMIA指令2.3 LDMFA/LDMDA指令2.4 LDMEA/LDMDB指令2.5 LDMED/LDMIB指令 在ARM A32多数…...

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

​​​​​​​ 目录 一、引言 二、蒙版生成&#xff08;mask-generation&#xff09; 2.1 概述 2.2 facebook/sam-vit-base 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.3.3 pipeline对象返回参数 2.4 pipeline实战 2.5 模型排…...

数据挖掘之逻辑回归

逻辑回归&#xff08;Logistic Regression&#xff09;是数据挖掘中一种经典且广泛应用的算法&#xff0c;主要用于解决分类问题。尽管名字中带有“回归”&#xff0c;它的核心目标却是预测离散的类别&#xff0c;而不是连续的数值。逻辑回归凭借其简单、高效、易于解释的特性&…...

PH热榜 | 2024-12-05

1. Oopsie 标语&#xff1a;用AI和会话回放调试Flutter和React Native应用 介绍&#xff1a;Zipy推出的Oopsie是一款你唯一需要的AI赋能移动端调试工具&#xff0c;它能提供▶️会话回放、&#x1f916;错误监控、&#x1f4a1;AI生成的概要分析&#xff0c;以及&#x1f525…...

docker-常用应用部署dockerfile模板

文章目录 概述Springboot-Djava.security.egdfile:/dev/./urandom参数说明 vue应用部署nginx.conf配置Dockerfile 概述 本文列举了Java开发中常用如SpringBoot、Vue前端等类型的应用Docker部署所需的DockerFile Springboot FROM anapsix/alpine-java:8_server-jre_unlimited…...

LabVIEW中“this VI‘s owning library is missing”错误及解决

问题描述 当加载或打开一个VI时&#xff0c;如果其所属的项目库未加载到内存&#xff0c;LabVIEW将提示错误&#xff1a;“this VIs owning library is missing”&#xff08;该VI的所属库不存在&#xff09;。 该问题通常发生在以下情况下&#xff1a; 项目库文件丢失或路径…...

【算法】棋盘覆盖问题源代码及精简版

目录 一、题目 二、样例 三、示例代码 四、精简代码 五、总结 对于棋盘覆盖问题的解答和优化。 一、题目 输入格式&#xff1a; 第一行&#xff0c;一个整数n&#xff08;棋盘n*n&#xff0c;n确保是2的幂次&#xff0c;n<64&#xff09; 第二行&#xff0c;两个整数…...

剖析kubernetes service的IP能否在宿主机中ping通

文章目录 前言一、serviceIP是怎么产生的二、宿主机中ping serviceIP地址1.ping示例2.为什么ping不通剖析2.1.封装及解封装过程2.2.ICMP报文以太网数据帧格式2.3.原因 三、ping不通svcIP是否跟iptables规则有关&#xff1f;四、为什么ipvs的的clusterIP类型的service能够ping通…...

路由VueRouter的基本使用

1.下载VueRouter到当前工程。 vue2&#xff1a;VueRouter3.x Vuex3.x。 vue3&#xff1a;VueRouter4.x Vuex4.x。 在终端使用命令&#xff1a; year add vue-router3.6.5 2.引入。 import VueRouter from vue-router 3,安装注册。 Vue.use(VueRouter) 4…...

学习记录,正则表达式, 隐式转换

正则表达式 \\&#xff1a;表示正则表达式 W: 表示一个非字&#xff08;不是一个字&#xff0c;例如&#xff1a;空格&#xff0c;逗号&#xff0c;句号&#xff09; W: 多个非字 基本组成部分 1.字符字面量&#xff1a; 普通字符&#xff1a;在正则表达式中&#xff0c;大…...

Spring Boot + MySQL 多线程查询与联表查询性能对比分析

Spring Boot MySQL: 多线程查询与联表查询性能对比分析 背景 在现代 Web 应用开发中&#xff0c;数据库性能是影响系统响应时间和用户体验的关键因素之一。随着业务需求的不断增长&#xff0c;单表查询和联表查询的效率问题日益凸显。特别是在 Spring Boot 项目中&#xff0…...

C++小碗菜之二:软件单元测试

“没有测试的代码重构不能称之为重构&#xff0c;它仅仅是垃圾代码的到处移动” ——Corey Haines 目录 前言 什么是单元测试&#xff1f; 单元测试的组成 单元测试的命名 单元测试的独立性 Google Test 单元测试的环境配置与使用 1. Ubuntu下安装 Google Test 2. 编写…...

集成学习综合教程

一、前置知识 一个分类器的分类准确率在60%-80%&#xff0c;即&#xff1a;比随机预测略好&#xff0c;但准确率却不太高&#xff0c;我们可以称之为 “弱分类器”&#xff0c;比如CART&#xff08;classification and regression tree 分类与回归树&#xff09;。 反之&#x…...

Java NIO channel

channel(通道)&#xff0c;byteBuffer(缓冲区)&#xff0c;selector&#xff08;io多路复用&#xff09;&#xff0c;通道FileChannel,SocketChannel的transferTo,transferFrom,MappedByteBuffer实现了零拷贝。 JVM调操作系统方法&#xff0c;read,write&#xff0c;都可以送字…...

B3631 单向链表-模拟链表

来源 &#xff1a;题目链接-洛谷 B3631 单向链表 单向链表 题目描述 实现一个数据结构&#xff0c;维护一张表&#xff08;最初只有一个元素 1 1 1&#xff09;。需要支持下面的操作&#xff0c;其中 x x x 和 y y y 都是 1 1 1 到 1 0 6 10^6 106 范围内的正整数&…...

【C++】格式化输出详解:掌握 cout 的进阶用法

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;格式化输出的理论概述&#x1f4af;控制输出宽度和填充字符setw 操作符setfill 操作符 &#x1f4af;控制浮点数的显示格式fixed 与 scientificsetprecision &#x1f4af;…...

【NoSQL数据库】Hbase基本操作——数据库表的增删改查

目录 一、Hbase原理 二、HBase数据库操作 三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型&#xff1a; 行键 时间戳 列族&#xff1a;contents 列族&#xff1a;anchor 列族&#xff1a;mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:…...