kotlin数据类型
人不走空
🌈个人主页:人不走空
💖系列专栏:算法专题
⏰诗词歌赋:斯是陋室,惟吾德馨

Kotlin基本数值类型
基本数据类型包括 Byte、Short、Int、Long、Float、Double
整数类型
| 类型 | 位宽 | 最小值 | 最大值 |
|---|---|---|---|
| Byte | 8 | -128 | 127 |
| Short | 16 | -32768 | 32767 |
| Int | 32 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) |
| Long | 64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) |
val number = 100 //默认是 Int 类型
val bigNumber = 8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber = 20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1
Tips
所有未超出 Int 最大值的整型值初始化的变量都默认为Int类型,如果初始值超过了其最大值,那么推断为Long类型。在数字值后面显式添加L表示一个Long类型
Float、Double浮点类型
Kotlin 中提供了 Float 和 Double 两种类型来分别表示单精度和双精度的浮点数类型。
| 类型 | 位宽 |
|---|---|
| Float | 32 |
| Double | 64* |
val doubleNumber = 3.1415928888 //默认是Double类型
val floatNumber = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数
Tips
Kotlin 对于小数的默认推断是Double类型。如果需要显式将一个小数指定为Float类型需要在数值尾部加入f或F。由于Float类型十进制位数是6位,所以上述例子中floatNumber实际值大小为3.1415926,后面就会出现进度丢失舍弃。
在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double 的函数只能接收 Double 类型,不能接收 Float、Int 或者其他数字类型
字符类型
在 Kotlin 中字符用 Char 类型表示
fun testChar(char: Char) {if(char == 4) {...}//此处会提示类型不匹配的异常
}
字符的值需要用单引号括起来: '0'、'9'。
fun decimalDigitValue(c: Char): Int {if (c !in '0'..'9')throw IllegalArgumentException("Out of range")return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型
在 Kotlin 使用Boolean表示布尔类型,它只有两个值 true 和 false。注意可空类型Boolean?类型会存在装箱操作。
val isVisible: Boolean = falseval isVisible = false //自动推断为布尔Boolean类型
字符串类型
在 Kotlin 中字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串:
val str="1234567890"for(char in str) {println(char)
}
字符串模板
字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:
val number = 100
println("The Result is $number")
或者用花括号${}括起来的任意表达式:
val text = "This is Text"
println("Text length is ${text.length}")
字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:
val price = "${'$'}9.99"
和 Java 一样,Kotlin 可以用 + 操作符连接字符串。这也适用于连接字符串与其他类型的值。
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")
字符串的值
Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:
val s = "Hello, world!\n" // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式
字符串使用三个引号(""")分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:
val text = """for (c in "foo")print(c)
"""
还可以通过 trimMargin() 函数去除前导空格:
val text = """|Tell me and I forget.|Teach me and I remember.|{"key1": "value1"}|{"key2": "value2"}""".trimMargin()
类型强制转换
在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat 之类函数来实现数字类型的强制转换的。
| 类型 | 强转函数 |
|---|---|
| Byte | toByte() |
| Short | toShort() |
| Int | toInt() |
| Long | toLong() |
| Float | toFloat() |
| Double | toDouble() |
| Char | toChar() |
val number =100 //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....
数字运算
四则运算
除法/:
val number = 3 / 2
println(number) // 输出 1val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5
乘法*:
val number = 3 * 2
println(number) // 输出 6
加法+:
val number = 3 + 2
println(number) // 输出 5
减法-:
val number = 3 - 2
println(number) // 输出 1
取余%:
val number = 3 % 2
println(number) // 输出 1
位运算
Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。
shl(bits)– 有符号左移【shl是Shift Logical Left的缩写】shr(bits)– 有符号右移ushr(bits)– 无符号右移and(bits)– 位与or(bits)– 位或inv()– 位非xor(bits)– 位异或
val vip= true
val admin= falseval result = vip and(admin) =false val result = 8 ushr(2) = 2
AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
<option name="delegatedBuild" value="false" />
Kotlin基本数值类型
基本数据类型包括 Byte、Short、Int、Long、Float、Double
整数类型
| 类型 | 位宽 | 最小值 | 最大值 |
|---|---|---|---|
| Byte | 8 | -128 | 127 |
| Short | 16 | -32768 | 32767 |
| Int | 32 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) |
| Long | 64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) |
val number = 100 //默认是 Int 类型
val bigNumber = 8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber = 20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1
Tips
所有未超出 Int 最大值的整型值初始化的变量都默认为Int类型,如果初始值超过了其最大值,那么推断为Long类型。在数字值后面显式添加L表示一个Long类型
Float、Double浮点类型
Kotlin 中提供了 Float 和 Double 两种类型来分别表示单精度和双精度的浮点数类型。
| 类型 | 位宽 |
|---|---|
| Float | 32 |
| Double | 64 |
val doubleNumber = 3.1415928888 //默认是Double类型
val floatNumber = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数
Tips
Kotlin 对于小数的默认推断是Double类型。如果需要显式将一个小数指定为Float类型需要在数值尾部加入f或F。由于Float类型十进制位数是6位,所以上述例子中floatNumber实际值大小为3.1415926,后面就会出现进度丢失舍弃。
在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double 的函数只能接收 Double 类型,不能接收 Float、Int 或者其他数字类型
字符类型
在 Kotlin 中字符用 Char 类型表示
fun testChar(char: Char) {if(char == 4) {...}//此处会提示类型不匹配的异常
}
字符的值需要用单引号括起来: '0'、'9'。
fun decimalDigitValue(c: Char): Int {if (c !in '0'..'9')throw IllegalArgumentException("Out of range")return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型
在 Kotlin 使用Boolean表示布尔类型,它只有两个值 true 和 false。注意可空类型Boolean?类型会存在装箱操作。
val isVisible: Boolean = falseval isVisible = false //自动推断为布尔Boolean类型
字符串类型
在 Kotlin 中字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串:
val str="1234567890"for(char in str) {println(char)
}
字符串模板
字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:
val number = 100
println("The Result is $number")
或者用花括号${}括起来的任意表达式:
val text = "This is Text"
println("Text length is ${text.length}")
字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:
val price = "${'$'}9.99"
和 Java 一样,Kotlin 可以用 + 操作符连接字符串。这也适用于连接字符串与其他类型的值。
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")
字符串的值
Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:
val s = "Hello, world!\n" // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式
字符串使用三个引号(""")分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:
val text = """for (c in "foo")print(c)
"""
还可以通过 trimMargin() 函数去除前导空格:
val text = """|Tell me and I forget.|Teach me and I remember.|{"key1": "value1"}|{"key2": "value2"}""".trimMargin()
类型强制转换
在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat 之类函数来实现数字类型的强制转换的。
| 类型 | 强转函数 |
|---|---|
| Byte | toByte() |
| Short | toShort() |
| Int | toInt() |
| Long | toLong() |
| Float | toFloat() |
| Double | toDouble() |
| Char | toChar() |
val number =100 //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....
数字运算
四则运算
除法/:
val number = 3 / 2
println(number) // 输出 1val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5
乘法*:
val number = 3 * 2
println(number) // 输出 6
加法+:
val number = 3 + 2
println(number) // 输出 5
减法-:
val number = 3 - 2
println(number) // 输出 1
取余%:
val number = 3 % 2
println(number) // 输出 1
位运算
Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。
shl(bits)– 有符号左移【shl是Shift Logical Left的缩写】shr(bits)– 有符号右移ushr(bits)– 无符号右移and(bits)– 位与or(bits)– 位或inv()– 位非xor(bits)– 位异或
val vip= true
val admin= falseval result = vip and(admin) =false val result = 8 ushr(2) = 2
AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
<option name="delegatedBuild" value="false" />
Kotlin基本数值类型
基本数据类型包括 Byte、Short、Int、Long、Float、Double
整数类型
| 类型 | 位宽 | 最小值 | 最大值 |
|---|---|---|---|
| Byte | 8 | -128 | 127 |
| Short | 16 | -32768 | 32767 |
| Int | 32 | -2,147,483,648 (-2^31) | 2,147,483,647 (2^31 - 1) |
| Long | 64 | -9,223,372,036,854,775,808 (-2^63) | 9,223,372,036,854,775,807 (2^63 - 1) |
val number = 100 //默认是 Int 类型
val bigNumber = 8000000000 //超过 Int 最大值默认是 Long 类型
val longNumber = 20L //数字后面显式加L,表示声明 Long 类型
val byteNumber:Byte = 1
Tips
所有未超出 Int 最大值的整型值初始化的变量都默认为Int类型,如果初始值超过了其最大值,那么推断为Long类型。在数字值后面显式添加L表示一个Long类型
Float、Double浮点类型
Kotlin 中提供了 Float 和 Double 两种类型来分别表示单精度和双精度的浮点数类型。
| 类型 | 位宽 |
|---|---|
| Float | 32 |
| Double | 64 |
val doubleNumber = 3.1415928888 //默认是Double类型
val floatNumber = 3.1415928888f //尾部加f或F显式表示这是一个Float类型的浮点数
Tips
Kotlin 对于小数的默认推断是Double类型。如果需要显式将一个小数指定为Float类型需要在数值尾部加入f或F。由于Float类型十进制位数是6位,所以上述例子中floatNumber实际值大小为3.1415926,后面就会出现进度丢失舍弃。
在 Kotlin 中还有一点与 Java 不同的是,Kotlin 中数字不存在隐式的拓宽转换。比如一个函数参数为Double 的函数只能接收 Double 类型,不能接收 Float、Int 或者其他数字类型
字符类型
在 Kotlin 中字符用 Char 类型表示
fun testChar(char: Char) {if(char == 4) {...}//此处会提示类型不匹配的异常
}
字符的值需要用单引号括起来: '0'、'9'。
fun decimalDigitValue(c: Char): Int {if (c !in '0'..'9')throw IllegalArgumentException("Out of range")return c.toInt() - '0'.toInt() // 显式转换为数字
}
布尔类型
在 Kotlin 使用Boolean表示布尔类型,它只有两个值 true 和 false。注意可空类型Boolean?类型会存在装箱操作。
val isVisible: Boolean = falseval isVisible = false //自动推断为布尔Boolean类型
字符串类型
在 Kotlin 中字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串:
val str="1234567890"for(char in str) {println(char)
}
字符串模板
字符串字面值可以包含模板表达式 ,即一些小段代码,会求值并把结果合并到字符串中。 模板表达式以美元符($)开头,由一个简单的名字构成:
val number = 100
println("The Result is $number")
或者用花括号${}括起来的任意表达式:
val text = "This is Text"
println("Text length is ${text.length}")
字符串与转义字符串内部都支持模板。 如果你需要在原始字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:
val price = "${'$'}9.99"
和 Java 一样,Kotlin 可以用 + 操作符连接字符串。这也适用于连接字符串与其他类型的值。
val age = 28
println("I am " + age + "years old!")
println("I am $age years old!")
字符串的值
Kotlin 有两种类型的字符串字面值:转义字符串可以有转义字符, 以及原始字符串可以包含换行以及任意文本。以下是转义字符串的一个示例:
val s = "Hello, world!\n" // \n换行
val s2= "{\"key\":\"value\"}" // \反斜杠对""进行转义,保留字符串格式
字符串使用三个引号(""")分界符括起来,内部没有转义并且可以包含换行以及任何其他字符:
val text = """for (c in "foo")print(c)
"""
还可以通过 trimMargin() 函数去除前导空格:
val text = """|Tell me and I forget.|Teach me and I remember.|{"key1": "value1"}|{"key2": "value2"}""".trimMargin()
类型强制转换
在 Kotlin 中与 Java 不同是通过调用 toInt、toDouble、toFloat 之类函数来实现数字类型的强制转换的。
| 类型 | 强转函数 |
|---|---|
| Byte | toByte() |
| Short | toShort() |
| Int | toInt() |
| Long | toLong() |
| Float | toFloat() |
| Double | toDouble() |
| Char | toChar() |
val number =100 //声明一个整形 number对象
number.toString()
number.toByte()
number.toShort()
number.toLong()
number.toFloat()
number.toDouble()
....
数字运算
四则运算
除法/:
val number = 3 / 2
println(number) // 输出 1val floatNumber = 3 / 2.toDouble()
println(number) // 输出 1.5
乘法*:
val number = 3 * 2
println(number) // 输出 6
加法+:
val number = 3 + 2
println(number) // 输出 5
减法-:
val number = 3 - 2
println(number) // 输出 1
取余%:
val number = 3 % 2
println(number) // 输出 1
位运算
Kotlin 中的位运算和 Java 不同的是没有用特殊符号来表示,可以采用了中缀函数方式调用具名函数。
shl(bits)– 有符号左移【shl是Shift Logical Left的缩写】shr(bits)– 有符号右移ushr(bits)– 无符号右移and(bits)– 位与or(bits)– 位或inv()– 位非xor(bits)– 位异或
val vip= true
val admin= falseval result = vip and(admin) =false val result = 8 ushr(2) = 2
AS4.0及以上版本kotlin项目无法运行java-main方法解决方案
<option name="delegatedBuild" value="false" />

作者其他作品:
【Java】Spring循环依赖:原因与解决方法
OpenAI Sora来了,视频生成领域的GPT-4时代来了
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
【Java】深入理解Java中的static关键字
[Java·算法·简单] LeetCode 28. 找出字a符串中第一个匹配项的下标 详细解读
了解 Java 中的 AtomicInteger 类
算法题 — 整数转二进制,查找其中1的数量
深入理解MySQL事务特性:保证数据完整性与一致性
Java企业应用软件系统架构演变史
相关文章:
kotlin数据类型
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 Kotlin基本数值类型 基本数据类型包括 Byte、Short、Int、Long、Float、Double 整数类型 类型位宽最小值最大…...
[GWCTF 2019]babyvm
第一次接触VM逆向 先粘一下对我很有帮助的两篇佬的博客 系统学习vm虚拟机逆向_vmp 虚拟机代码逆向-CSDN博客 这篇去学习vm逆向到底是什么 我的浅显理解啊,就是和汇编的定义差不多,规定一个函数,用什么其他的名字 然后这道题 [GWCTF 2019]babyvm 详解 (vm逆向 …...
PyTorch论文
2019-12 PyTorch: An Imperative Style, High-Performance Deep Learning Library 设计迎合4大趋势: 1. array-based (Tensor) 2. GPU加速 3. 自动求导 (Auto Differentiation) 4. 拥抱Python生态 4大设计原则: 1. 使用算法和数据开发者熟悉的Python做编…...
【Python实战因果推断】37_双重差分8
目录 Diff-in-Diff with Covariates Diff-in-Diff with Covariates 您需要学习的 DID 的另一个变量是如何在模型中包含干预前协变量。这在您怀疑平行趋势不成立,但条件平行趋势成立的情况下非常有用: 考虑这种情况:您拥有与之前相同的营销数…...
【python学习】第三方库之matplotlib的定义、功能、使用场景和代码示例(线图、直方图、散点图)
引言 Matplotlib 是一个 Python 的 2D 绘图库,它可以在各种平台上以各种硬拷贝格式和交互环境生成具有出版品质的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等 Matplotlib 是 …...
MySQL(3)表的操作
目录 1. 表的操作; 2. 数据类型; 1. 表的操作: 1.1 创建表: 语法: create table 表名( 属性 类型 [comment ], 属性 类型 [comment ], 属性 类型 ) character set 字符集 collate 校验集 engine 存储引擎; 前面博客提到: MyISAM和InoDB这两个比较重要. 1.2 查看表…...
SQL GROUPING运算符详解
在大数据开发中,我们经常需要对数据进行分组和汇总分析。 目录 1. GROUPING运算符概念2. 语法和用法3. 实际应用示例4. GROUPING运算符的优势5. 高级应用场景5.1 与CASE语句结合使用5.2 多维数据分析 6. 性能考虑和优化技巧7. GROUPING运算符的局限性8. 最佳实践9. GROUPING与其…...
在VS2017下FFmpeg+SDL编写最简单的视频播放器
1.下载ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令 5.复制一下mp4视频到工程Debug目录下(复制一份到*.vcxproj同一目录,用于调试) 6…...
LogViewer v2.x更新
logvewer 介绍 logviewer 是一个可以方便开发人员通过浏览器查看和下载远程服务器集群日志,使用ssh方式管理远程tomcat、jar包等应用,节省服务器资源。大家可以下载体验,请勿用于生产环境。欢迎提出意见或建议。 解决的问题 一般情况下公司…...
detection_segmentation
目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION) 文章目录 目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION)一. 计算机视觉(AI VISION)1. 图像分类2. 目标检测与定位3. 语义分割和实例分割目标检测算法可以分为两大类: R-CNN生成…...
0基础学python-13:古希腊掌管时间的模块——datetime和time
目录 前言 datetime模块 一、datetime 类 1.创建 datetime 对象 2.获取日期时间的各个部分 3.格式化日期时间为字符串 4.解析字符串为 datetime 对象 二、timedelta 类 1.创建 timedelta 对象 datetime注意事项 time模块 1.获取当前时间戳 2.获取当前时间的结构化表…...
棒球特长生升学具有其独特的优势和劣势·棒球6号位
棒球特长生升学具有其独特的优势和劣势,以下是对这两方面的详细分析: 获得更好的教育资源: 棒球特长生有机会通过棒球特长招生计划进入更好的学校。这些学校往往拥有更优质的教育资源,包括师资力量、教学设施、课程设置等&#…...
搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示
Xsens DOT可穿戴传感器介绍及示例应用演示 搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示...
数据分析案例-2024 年热门动漫数据集可视化分析
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)
方案一:移除类库这些失效的引用,下载对应版本的dll(如有则不需要重复下载),重新添加引用 方案二:类库右键属性-调整目标框架版本(一般是降低版本) 方案三:调整类库编译顺…...
STM32智能无人机控制系统教程
目录 引言环境准备智能无人机控制系统基础代码实现:实现智能无人机控制系统 4.1 数据采集模块 4.2 数据处理与控制算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:无人机管理与优化问题解决方案与优化收尾与总结 1. 引言 智能无人机控…...
从 QWebEnginePage 打印文档
QWebEnginePage 是 Qt WebEngine 模块中的一个类,它提供了用于处理网页内容的接口。如果你想要打印 QWebEnginePage 中的内容,你可以使用 QPrinter 和 QPrintDialog 类来实现。 项目配置了 Qt WebEngine 模块,并且在你的.pro文件中包含了相应…...
初识Docker及管理Docker
Docker部署 初识DockerDocker是什么Docker的核心概念镜像容器仓库 容器优点容器在内核中支持2种重要技术:Docker容器与虚拟机的区别 安装Docker源码安装yum安装检查Docker Docker 镜像操作配置镜像加速器(阿里系)搜索镜像获取镜像查看镜像信息…...
【学术会议征稿】2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)
2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024) 2024 3rd International Conference on Informatics,Networking and Computing (ICINC 2024) 2024年第三届信息学,网络与计算技术国际学术会议(ICINC2024)将于2024年10月25-27日于中国郑州召…...
在golang中Sprintf和Printf 的区别
最近一直在学习golang这个编程语言,我们这里做一个笔记就是 Sprintf和Printf 的区别 fmt.Sprintf 根据格式化参数生成格式化的字符串并返回该字符串。 fmt.Printf 根据格式化参数生成格式化的字符串并写入标准输出。由上面就可以知道,fmt.Sprintf返回的…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...
