当AI重构编程范式:Java 24的进化逻辑与技术深水区的战略突围
一、语言进化的底层密码:从“工具适配”到“定义规则”
在2025年3月19日发布的Java 24中,Oracle以"30周年技术宣言"的姿态展示了编程语言进化的新范式。该版本不仅包含模式匹配、结构化并发等21项JEP特性,更通过后量子加密、AI原生支持等突破,揭示了语言进化的三重底层逻辑:
1. 硬件-语言协同进化论
Java 24的Vector API(JEP 489)通过SIMD指令将矩阵运算效率提升3倍,这种设计本质上是在弥合冯·诺依曼架构与AI计算需求之间的鸿沟。当CPU的AVX-512指令集与GPU的CUDA生态争夺AI算力时,Java选择在语言层面建立硬件抽象层——开发者无需关注x86或ARM架构差异,只需通过FloatVector.fromArray(SPECIES_PREFERRED, array, offset)
即可调用最优硬件加速。这种"硬件不可知论"的抽象能力,正是AI工具无法突破的天花板。
2. 安全基座的重构哲学
面对量子计算威胁,Java 24率先将NIST标准算法ML-KEM(JEP 496)与ML-DSA(JEP 497)融入JVM内核。与第三方库不同,这种语言级支持确保了密钥封装、数字签名等操作与类加载机制深度绑定——当开发者调用KeyPairGenerator.getInstance("Kyber1024")
时,JVM会自动验证算法实现与FIPS 140-3标准的兼容性。这种安全基座的系统性重构,绝非AI生成几行加密代码可比拟。
3. 开发范式的元语言革命
Java 24的Stream Gatherers(JEP 485)允许自定义中间操作,例如用Gatherers.windowSliding(3)
实现实时数据流的滑动窗口统计。这看似是API增强,实则是元编程能力的跃迁:开发者通过组合Gatherer
接口中的integrator()
和finisher()
方法,即可定义新的流处理范式。这种能力让Java从"描述业务逻辑"进化为"定义业务规则",而AI目前仅能生成符合既定规则的代码。
二、AI编程的认知陷阱:工具理性与技术深水区的对抗
尽管GitHub Copilot等工具已能生成80%的CRUD代码,但Java 24的更新揭示了AI在技术深水区的局限性:
1. 并发安全的不可压缩性
当AI生成虚拟线程代码时,常因缺乏对"线程局部变量逃逸"的认知导致内存泄漏。而Java 24的无锁虚拟线程(JEP 491)通过修改对象头标记位,使同步块内的虚拟线程可释放平台线程。这种JVM层级的并发控制机制,必须通过语言规范而非代码生成实现——正如OpenJDK首席工程师Doug Lea所言:"AI可以模仿锁的使用,但无法理解锁背后的内存屏障。"
2. 性能优化的物理边界突破
Java 24的紧凑对象头(JEP 450)将64位环境下的对象头从128位压缩至64位,使百万级对象内存占用降低33%。这种优化需要精确计算字段对齐、缓存行填充等硬件级参数,而AI工具受限于训练数据的滞后性,无法预判未来硬件架构的变化。当量子计算芯片商用化时,唯有语言特性的持续进化能确保性能与硬件的同步迭代。
3. 安全防御的主动进化链
在量子安全领域,Java 24构建了从密钥派生(JEP 478)到算法实现的完整防御链。例如KDF.getInstance("HKDF-SHA256")
不仅生成密钥,还会通过JVM内置的熵源检测器验证随机数质量。这种深度集成的安全生态,与AI生成的孤立加密代码形成鲜明对比——后者可能因未考虑硬件真随机数生成器的故障率,导致密钥可预测性漏洞。
三、语言特性的不可替代性:定义技术世界的“第一性原理”
从技术哲学视角看,Java 24的革新实质是在重新定义软件开发的"第一性原理":
1. 抽象粒度的再定义
模块导入声明(JEP 494)允许import module com.example.aimodule
一键导入AI模块,这不仅仅是语法简化,更是抽象层级的跃迁。当开发者不再需要记忆com.example.aimodule.inference.v1
的包路径时,模块化从"代码组织工具"升维为"业务能力封装单元"。这种抽象能力的进化,让Java在微服务、AI Agent等场景中重新获得架构话语权。
2. 时间维度的双向穿透
分代ZGC(JEP 490)将百GB堆内存的GC停顿压缩至1ms内,其核心是通过着色指针与内存映射技术,实现垃圾回收与业务线程的并发执行。这种对"时间连续性"的突破,让Java在自动驾驶、高频交易等实时系统中获得新生。AI工具可以优化算法时间复杂度,但无法重构JVM对物理时间的调度逻辑。
3. 空间拓扑的重构能力
结构化并发(JEP 499)通过StructuredTaskScope
将百万级线程的生命周期绑定到父作用域,这实际上是在重构程序的"空间拓扑结构"。当子线程异常时,JVM会自动取消同级线程并释放资源,形成天然的故障隔离边界。这种空间安全的设计哲学,正是AI生成式编程难以触及的深水区。
四、共生进化的新范式:当语言成为AI的“操作系统”
Java 24的发布预示着一个新纪元的开启——编程语言正在成为AI的"操作系统级"基础设施:
1. AI的“运行时环境”革命
Vector API对SIMD指令的封装,实质是为AI推理构建了跨平台的运行时环境。开发者使用FloatVector
类进行矩阵乘法时,JIT编译器会自动生成针对Intel AVX-512或ARM SVE2的机器码。这种将AI计算卸载到语言运行时层的能力,让Java成为连接算法模型与异构硬件的"中间表示层"。
2. 开发者-AI的认知对齐协议
极简主方法(JEP 495)将public static void main
简化为void main()
,这种看似微小的改动实则构建了开发者与AI的认知对齐协议。当AI生成的代码片段需要嵌入项目框架时,标准化的入口点定义能显著降低代码拼接的认知负荷。Oracle的Java语言架构师Brian Goetz曾指出:"语言特性的简洁性决定了AI辅助开发的天花板。"
3. 生态进化的反哺循环
Java 24的抗量子加密特性(JEP 496/497)正在催生新的安全开发生态。领先的金融科技公司已基于ML-KEM算法构建量子安全中间件,这些实践数据又将反哺AI训练——未来Copilot生成的加密代码会更倾向于调用语言级API而非第三方库。这种生态与AI的协同进化,让语言特性成为技术创新的"基因编码"。
五、终极叩问:在AI洪流中,我们为何仍需语言进化?
Java 24的价值远超出技术迭代本身,它回答了数字文明时代的一个根本命题:当工具智能化达到临界点,人类为何仍需掌握核心技术栈的定义权?
1. 技术主权与风险控制
通过后量子加密的标准集成,Java 24确保了关键基础设施的技术主权。若依赖AI生成的加密方案,可能因算法碎片化导致系统性风险。正如NIST量子安全项目负责人Dustin Moody所警示:"对抗量子攻击必须依赖标准化的语言级支持。"
2. 创新路径的不可逆性
Stream Gatherers(JEP 485)的滑动窗口操作定义了一种新的数据处理范式。这种范式一旦确立,将影响未来十年的流计算架构设计。AI可以优化现有范式下的代码,但无法自主发明新范式——这正是人类开发者必须坚守的创新高地。
3. 数字文明的连续性保障
Java 24的模块化改进(JEP 494)让30年前的代码仍能运行在量子安全的环境中。这种跨越技术周期的兼容能力,确保了数字文明的连续性。若将系统架构完全交由AI迭代,可能导致技术断代与文化断层。
结语:在进化的长河中寻找确定性
Java 24的发布恰似一面棱镜,折射出技术演进中的永恒真理:语言特性的进化不是对AI的抵抗,而是为智能工具划定运行轨道;不是对过去的重复,而是为未来定义可能性空间。当开发者使用Java 24的量子安全API时,他们书写的不仅是代码,更是一个关于技术自主权的宣言——在AI重塑一切的时代,唯有掌握核心抽象层的定义权,才能确保人类在技术洪流中始终掌舵前行。
正如Oracle的Georges Saab在JavaOne 2025的演讲中所说:"Java 24的每个特性都在回答:当我们的代码需要运行三十年时,该如何让它既承载历史,又抵御未来?" 这或许正是语言进化最深邃的启示:在不确定性的迷雾中,唯有持续构建确定性基座,方能在技术长河中锚定文明坐标。
参考资料
: Java 24字符串模板与ZGC优化(2025-03-22)
: 极简主方法与分代ZGC(2025-03-21)
: 后量子加密与AI集成(2025-03-21)
: 模块化与向量计算(2025-03-22)
: 并发优化与安全增强(2025-03-20)
: Oracle量子安全战略解读(2025-03-19)
相关文章:
当AI重构编程范式:Java 24的进化逻辑与技术深水区的战略突围
一、语言进化的底层密码:从“工具适配”到“定义规则” 在2025年3月19日发布的Java 24中,Oracle以"30周年技术宣言"的姿态展示了编程语言进化的新范式。该版本不仅包含模式匹配、结构化并发等21项JEP特性,更通过后量子加密、AI原生…...
air780eq 阿里云
硬件:APM32F030C8 Air 780eq 参考文档: 合宙780E-4G模块通过AT指令连接到阿里云平台,实现信息的收发_air780e上传阿里云属性值at命令-CSDN博客 阿里云 - atair780eq - 合宙文档中心 4G模块接入阿里云-实现数据上传和命令下发_4g模块上传…...
网络安全之vlan实验
在对vlan进行一定的学习之后我们来练习一个小实验来加深理解记忆 首先是对实验进行一个搭建 第一部分:给交换机配置vlan 首先是sw1 [Huawei]vlan batch 2 to 5 [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]port hybrid tagged vlan 2 [Huawei-GigabitEthe…...
mac命令行快捷键
光标移动 Ctrl A: 将光标移动到行首。Ctrl E: 将光标移动到行尾。Option 左箭头: 向左移动一个单词。Option 右箭头: 向右移动一个单词。 删除和修改 Ctrl K: 删除从光标到行尾的所有内容。Ctrl U: 删除从光标到行首的所有内容。Ctrl W: 删除光标前的一个单词。Ctrl …...
计算机网络 - OSI 七层模型
OSI 七层模型 OSI(Open System Interconnection,开放系统互联)模型由 ISO(国际标准化组织) 制定,目的是为不同计算机网络系统之间的通信提供一个标准化的框架。它将网络通信划分为 七个层次,每…...
TCP/IP 协议族详细知识点清单
📚 TCP/IP 协议族详细知识点清单 一、概述与体系结构 🌐 TCP/IP 协议模型(四层模型) 层次协议功能应用层HTTP、FTP、DNS、SMTP提供应用服务传输层TCP、UDP端到端传输,可靠或不可靠网络层IP、ICMP、ARP、RARP寻址、路…...
Vue3(自定义指令directive详解)
文章目录 前言一、自定义指令的生命周期钩子二、自定义指令的创建与注册使用三、扩展 简化形式总结 前言 在Vue3中,自定义指令是一种强大的工具,允许开发者扩展和增强HTML元素的功能。以下是对Vue3中自定义指令的详细解析: 一、自定义指令…...
Redis--redis客户端
目录 一、引言 二、数据库管理命令 三、redis客户端 四、Java客户端使用Redis 五、相关命令使用 1.get,set 2.exists,del 3.keys 4.expire,ttl 六、总结 一、引言 在之前学了redis相关类型命令之后,本篇文章,…...
【高项】信息系统项目管理师(十)项目风险管理【5分】
项目风险是一种不确定的事件或条件,一旦发生,会对项目目标产生某种正面或负面的影响。项目风险既包括对项目目标的威胁,也包括促进项目目标的机会。已知风险是那些已经经过识别和分析的风险,对于已知风险,对其进行规划,寻找应对方案是可行的;虽然项目经理们可以依据以往…...
jenkins批量复制视图项目到新的视图
1、当前视图为 测试2分支,创建了新的视图为国际化预生产 2、进入系统设置的脚本管理 import hudson.model.* //源view def str_view "测试2分支" //目标view def str_new_view "国际化预生产" //源job名称(模糊匹配) def str_search &qu…...
uv:Rust 驱动的 Python 包管理新时代
在 Python 包管理工具层出不穷的今天,pip、pip-tools、poetry、conda 等各有千秋。而今天要介绍的 uv,则是一款由 Astral 团队推出、采用 Rust 编写的全新工具,目标直指成为 “Python 的 Cargo”。它不仅在性能上表现优异,而且在功…...
GD32 ISP下载程序(串口烧录)
一、下载烧录软件 下载地址兆易创新GigaDevice-资料下载兆易创新GD32 MCUhttps://www.gd32mcu.com/cn/download?kwGD32All-In-OneProgrammer&lancn 二、使用USB转串口连接GD32开发板 这里使用GD32E230C8T6为例: GD32E230C8T6USB 转串口模块说明PA9ÿ…...
Spring MVC 配置详解与入门案例
目录 引言 一、Spring MVC 的发展背景 1. Model I 与 Model II 2. MVC 模式 二、Spring MVC 入门案例 1. 创建 WEB 工程并引入依赖 2. 配置 web.xml 3. 配置 springmvc.xml 4. 创建控制器和视图 5. 部署并测试 三、Spring MVC 原理 1. 核心组件 2. 请求处理流程 …...
【10万QPS压力测试】Redis三主三从高可用集群基准测试
📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…...
git的进阶使用
一.协作冲突 举个简单的例子,公司里两个人(A,B)同一天上班,都拉取了远程仓库数据。然后A做完了所有的工作,进行了x文件的修改并提交至远程仓库。而B在做自己工作的时候不小心或者需要修改x文件,B认为A没有操作x文件直接push没有问…...
23种设计模式-责任链(Chain of Responsibility)设计模式
责任链设计模式 🚩什么是责任链设计模式?🚩责任链设计模式的特点🚩责任链设计模式的结构🚩责任链设计模式的优缺点🚩责任链设计模式的Java实现🚩代码总结🚩总结 🚩什么是…...
MySQL复习
1基本操作复习 1.1数据库创建 创建数据库create database 数据库名;判断再创建数据库create database if not exists 数据库名;创建数据库指定字符集create database 数据库名 character set 字符集;创建数据库指定排序方式create database 数据库名 collate 排序方式;创建数据…...
【嵌入式学习2】c语言重点整理
目录 ## 重点掌握 1、数组 2、指针 3、结构体 4、函数 回调函数的常见用途 ## 如何区分数组指针,指针数组,函数指针,结构体指针,指针偏移量 ## 重点掌握 1、数组 https://blog.csdn.net/weixin_60546365/article/details…...
java项目之基于ssm的个人博客网站(源码+文档)
项目简介 个人博客网站实现了以下功能: 个人博客网站在Eclipse环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员审核博客文章和相册分享信息,管理文…...
C++学习之路:从头搞懂配置VScode开发环境的逻辑与步骤
目录 编辑器与IDE基于vscode的C开发环境配置1. 下载vscode、浅尝编译。番外篇 2. 安装插件,赋能编程。3. 各种json文件的作用。c_cpp_properties.jsontask.jsonlaunch.json 总结&&彩蛋 编辑器与IDE 上一篇博客已经介绍过了C程序的一个编译流程,从…...
deploy myEclipse j2ee project to server没反应
解决办法 1.如果工作空间的问题,那么需要删除你工作空间的一个文件就可以解决了。 这个文件在Myeclipse工作区(workspace) .metadata\.plugins\org.eclipse.core.runtime\.settings目录...
react项目中当组件渲染的时候如何执行接口
最近遇到一个场景,就是组件渲染的时候去调用接口进行数据回填。这个在vue中很简单,在created生命周期函数中,直接调用接口即可。但是react没有created生命周期,所以在react中我们需要用到useEffect钩子函数。 在 React 函数组件中…...
python虚拟环境安装opus(windows)
python -m venv venv 创建虚拟环境后,并且安装软件包后,运行项目报错,提示如下: Could not find Opus library. Make sure it is installed 原因是缺少opus.dll, (先把项目内所有使用的第三方库都安装完成) 从以下页面下载.dll文件之后,放入venv\Scripts目录下即可 https://…...
手机怎么换网络IP有什么用?操作指南与场景应用
在数字化时代,手机已经成为我们日常生活中不可或缺的一部分,无论是工作、学习还是娱乐,手机都扮演着至关重要的角色。而在手机的使用过程中,网络IP地址作为设备在互联网上的唯一标识符,其重要性和作用不容忽视。本文将…...
小程序内表格合并功能实现—行合并
功能介绍:支付宝小程序手写表格实现行内合并,依据动态数据自动计算每次需求合并的值,本次记录行内合并,如果列内合并,同理即可实现 前端技术:grid布局 display:grid 先看实现效果: axml&…...
基于Flask的通用登录注册模块,并代理跳转到目标网址
实现了用户密码的加密,代理跳转到目标网址,不会暴露目标路径,未登录的情况下访问proxy则自动跳转到登录页,使用时需要修改配置项config,登录注册页面背景快速修改,可以实现登录注册模块的快速复用。 1.app…...
nlohmann::json教程
nlohmann::json 核心函数和方法 1. 基础构造与初始化 函数/方法描述示例json j;创建一个空的 JSON 对象(默认是 object 类型)json j;json::object()显式创建一个空的 JSON 对象json j json::object();json::array()显式创建一个空的 JSON 数组json ar…...
多层感知机从0开始实现
《动手学深度学习》-4.2-笔记 多层感知机在输出层和输入层之间增加一个或多个全连接隐藏层,并通过激活函数转换隐藏层的输出。 常用的激活函数包括ReLU函数、sigmoid函数和tanh函数。 import torch from torch import nn from d2l import torch as d2lbatch_size …...
在K8S中使用ArgoCD做持续部署
一、了解argocd ArgoCD是一个基于Kubernetes的GitOps持续交付工具,应用的部署和更新都可以在Git仓库上同步实现,并自带一个可视化界面。本文介绍如何使用GitArgocd方式来实现在k8s中部署和更新应用服务。关于ci这一块这里不多介绍。主要讲解argocd如何实…...
Python中数据结构元组详解
在Python中,元组(Tuple)是一种不可变的序列类型,常用于存储一组有序的数据。与列表(List)不同,元组一旦创建,其内容无法修改。本文将详细介绍元组的基本操作、常见运算、内置函数以及…...
23种设计模式-命令(Command)设计模式
命令设计模式 🚩什么是命令设计模式?🚩命令设计模式的特点🚩命令设计模式的结构🚩命令设计模式的优缺点🚩命令设计模式的Java实现🚩代码总结🚩总结 🚩什么是命令设计模式…...
计算机网络——数据链路层的功能
目录 物理链路 逻辑链路 封装成帧(组帧) 帧定界 透明传输 SDU 差错控制 可靠传输 流量控制 介质访问控制 主机需要实现第一层到第五层的功能,而路由器这种节点只需要实现第一层到第三层的这些功能 假设左边用户需要给右边用户发送…...
Axure项目实战:智慧城市APP(一)首页(动态面板、拖动效果)
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:智慧城市APP 主要内容:首页、政务公告、公交查询页面设计 应用场景:各类政务型、B端APP均可参考 案例展示:&am…...
Unity网络开发快速回顾
知识点来源:总结人间自有韬哥在, 唐老狮,豆包 目录 1.网络通信-通信必备知识-IP地址和端口类2.网络通信中序列化和反序列化2进制数据3.Socket类4.TCP同步服务端和客户端基础实现4.1.服务端基本实现4.2.客户端实现: 5.区分消息类型…...
鸿蒙学习笔记(1)-文件解读、编写程序、生命周期
一、文件解读 .hvigor:装有一些编译过程中的依赖缓存。 .idea:工具自动生成的,标记我们的工具是基于idea。 AppScope:代表着整个APP的配置,最后打包使用。之中的resources目录下是应用的名称和图片存放路径,其中app.json5: bund…...
多维动态规划 力扣hot100热门面试算法题 面试基础 核心思路 背题
多维动态规划 不同路径 https://leetcode.cn/problems/unique-paths/ 核心思路 比较简单 f[i][j] f[i - 1][j] f[i][j - 1] ; 示例代码 class Solution {public int uniquePaths(int n, int m) {int[][] f new int[n][m];for (int i 0; i < n; i)f[i][0] 1;for…...
C++ 多线程简要讲解
std::thread是 C11 标准库中用于多线程编程的核心类,提供线程的创建、管理和同步功能。下面我们一一讲解。 一.构造函数 官网的构造函数如下: 1.默认构造函数和线程创建 thread() noexcept; 作用:创建一个 std::thread 对象,但…...
乐仓VUE常用点
页面跳转 发送 router.push({ name: config.editRouteName, query: { type: create, from: route.name as string, }, }); router.push({ name: MbdCalScheme }); 接收 const route useRoute(); const type compu…...
单一主数据系统 vs. 统一主数据中心,哪种更优?
在企业中,主数据管理(MDM)已成为确保数据一致性和高效运营的关键。企业通常使用多个系统来处理业务数据,如ERP、CRM、SRM等。在这种多系统环境下,如何统一管理企业数据、避免数据孤岛,成为了一项重大挑战。…...
数据结构—树(java实现)
目录 一、树的基本概念1.树的术语2.常见的树结构 二、节点的定义三、有关树结构的操作1.按照数组构造平衡 二叉搜索树2.层序遍历树3.前、中、后序遍历树(1).前序遍历树(2).中序遍历树(3).后序遍历树(4).各种遍历的情况的效果对比 4.元素添加5.元素删除1.删除叶子节点2.删除单一…...
Modbus RTU ---> Modbus TCP透传技术实现(Modbus透传、RS485透传、RTU透传)分站代码实现、协议转换器
文章目录 Modbus RTU到Modbus TCP透传技术实现1. 透传技术概述1.1 透传基本原理- 协议帧格式转换- 地址映射与管理- 通信时序适配- 错误检测与处理 2. 透传网关硬件架构2.1 典型硬件结构- 微控制器/处理器(ARM、STM32等)- RS-485/RS-232收发器- 以太网控制器(如W5500)- 电源管理…...
Flask(三)路由与视图函数
在 Flask 中,路由 (Route) 是将 URL 地址映射到特定的视图函数 (View Function) 的机制。视图函数处理用户请求,并返回 HTTP 响应。理解路由和视图函数是构建 Flask 应用的基础。 3.1 路由的基本概念 Flask 使用 app.route() 装饰器来定义路由。以下是…...
mysql 磐维(opengauss)tidb误删数据之高级恢复
Mysql参考: Mysql 8.0 XtraBackupMysqlbinlog 完全恢复 - 墨天轮 Mysql 8.0 XtraBackupMysqlbinlog 完全恢复[TOC]# 一、安装mysql 8.0.19## 1.1https://www.modb.pro/db/509223MySQL 的全量备份、增量备份与 Binlog 时间点恢复_mysqlbinlog自动备份吗-CSDN博客文章…...
常见框架漏洞(一)----Thinkphp(TP)
Thinkphp框架介绍: ThinkPHP是为了简化企业级应⽤开发和敏捷WEB应⽤开发⽽诞⽣的,是⼀个快速、兼容⽽ 且简单的轻量级国产PHP开发框架,诞⽣于2006年初,原名FCS,2007年元旦正式更名为 ThinkPHP,遵循Apache…...
Git 使用指南:从设置用户信息到项目提交的全流程教程(持续更新)
一、设置 Git 用户信息 1.全局设置(适用于所有 Git 仓库): git config --global user.name "Your Name" git config --global user.email youexample.com 2.仅针对当前仓库设置(如果您只想为当前项目设置࿰…...
Json在扩展属性xdata中的应用实例——cad 二次开发c#
以下是一个使用AutoCAD C#.NET API实现你需求的示例代码,代码实现了提示用户选择一个实体,将一些字符串变量及其对应的值组成JSON格式数据存储到实体的扩展数据(XData)中,并在弹出窗口中显示该实体的所有扩展数据信息。…...
Unity Animation的其中一种运用方式
Animation是Unity的旧的动画系统,先说目的,其使用是为了在UI中播放动效,并且在动效播放结束后接自定义事件而设计的 设计的关键点在于,这个脚本不是通过Animation直接播放动画片段,而是通过修改AnimationState的nor…...
C++ 的基本内置类型(十二)
C 作为一门强大的编程语言,其内置类型是开发者必须掌握的基础。本文将详细介绍 C 的基本内置类型,包括算术类型和空类型,探讨它们的特性、尺寸以及在机器上的实现方式。 一、 基本内置类型概述 C 定义了一套基本数据类型,主要包…...
Android设计模式之单例模式
一、定义:确保一个类只有一个实例,并且自动实例化,并向整个系统提供这个实例。 二、使用场景:避免重复创建对象,过多消耗系统资源。 三、使用方式 3.1饿汉式:类加载时立即初始化,线程安全&…...
随笔(1)
1、解除切屏限制命令 document.body.onblur null2、vue3 getCurrentInstance import { getCurrentInstance } from vue const {proxy} getCurrentInstance() proxy.mittBus.emit(message,xxxx)3、 自定义双向绑定,modelValue 就是对应输入框的值 emit(update:mo…...