微信小程序学习基础:从入门到精通
文章目录
- 第一章:微信小程序概述
- 1.1 什么是微信小程序
- 1.2 小程序与原生APP、H5的区别
- 1.3 小程序的发展历程与现状
- 第二章:开发环境搭建
- 2.1 注册小程序账号
- 2.2 安装开发者工具
- 2.3 开发者工具界面介绍
- 2.4 第一个小程序项目
- 第三章:小程序框架与文件结构
- 3.1 小程序框架组成
- 3.2 项目目录结构
- 3.3 四种文件类型详解
- 3.4 小程序配置系统
- 第四章:WXML与WXSS基础
- 4.1 WXML语法基础
- 4.2 WXSS样式语言
- 4.3 组件与样式实战
- 第五章:JavaScript逻辑层
- 5.1 小程序JavaScript特点
- 5.2 App与Page生命周期
- 5.3 数据绑定与事件处理
- 5.4 模块化开发
- 第六章:小程序组件系统
- 6.1 内置组件概述
- 6.2 常用组件详解
- 6.3 自定义组件开发
- 第七章:API与开放能力
- 7.1 小程序API分类
- 7.2 常用API详解
- 7.3 开放能力实战
- 第八章:项目实战与优化
- 8.1 完整项目开发流程
- 8.2 性能优化技巧
- 8.3 常见问题与解决方案
- 第九章:小程序发布与运营
- 9.1 小程序发布流程
- 9.2 数据分析与运营
- 9.3 小程序推广策略
- 第十章:进阶与扩展
- 10.1 小程序云开发
- 10.2 TypeScript支持
- 10.3 跨平台开发方案
- 结语
第一章:微信小程序概述
1.1 什么是微信小程序
微信小程序(WeChat Mini Program)是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打开应用。小程序运行在微信环境中,具有以下特点:
- 无需安装:用户不需要像传统APP那样下载安装,节省手机存储空间
- 即用即走:使用体验流畅,用完即可关闭,无需卸载
- 跨平台:一次开发,可在iOS和Android平台上运行
- 微信生态整合:可方便调用微信提供的各种能力,如支付、分享、定位等
1.2 小程序与原生APP、H5的区别
特性 | 微信小程序 | 原生APP | H5网页 |
---|---|---|---|
开发成本 | 较低 | 高 | 低 |
性能 | 接近原生 | 最高 | 较低 |
入口 | 微信内部 | 桌面图标 | 浏览器 |
更新机制 | 微信审核更新 | 应用商店审核 | 实时更新 |
系统权限 | 受限 | 完整 | 受限 |
推广难度 | 较易 | 难 | 中等 |
1.3 小程序的发展历程与现状
- 2016年1月:张小龙首次提出"应用号"概念
- 2017年1月:小程序正式上线
- 2017年12月:小游戏类目开放,"跳一跳"引爆市场
- 2018年:逐步开放更多能力,如分包加载、云开发等
- 2019年:小程序数量突破300万,日活用户超过3亿
- 2020年至今:小程序生态持续繁荣,成为企业数字化转型的重要工具
第二章:开发环境搭建
2.1 注册小程序账号
- 访问微信公众平台
- 点击"立即注册",选择"小程序"
- 填写邮箱、密码等信息完成注册
- 登录后完善小程序信息,包括名称、图标、简介等
2.2 安装开发者工具
- 下载微信开发者工具(支持Windows和Mac)
- 安装并启动开发者工具
- 使用注册的微信账号扫码登录
- 创建新项目,填写AppID(可在公众平台查看)
2.3 开发者工具界面介绍
微信开发者工具主要包含以下区域:
- 菜单栏:文件、编辑、工具等基本操作
- 工具栏:编译、预览、上传等开发功能
- 模拟器:实时展示小程序运行效果
- 编辑器:代码编写区域,支持WXML、WXSS、JS等
- 调试器:包含Console、Sources、Network等调试面板
- 项目配置:可查看和修改项目设置
2.4 第一个小程序项目
- 新建项目,选择"快速启动模板"
- 项目结构解析:
pages/
:页面目录utils/
:工具函数app.js
:小程序逻辑app.json
:全局配置app.wxss
:全局样式
- 点击"编译"按钮预览效果
- 修改代码并实时查看变化
第三章:小程序框架与文件结构
3.1 小程序框架组成
微信小程序框架包含以下核心部分:
- 逻辑层:处理业务逻辑,使用JavaScript
- 视图层:负责页面渲染,使用WXML和WXSS
- 配置文件:JSON格式的各种配置
- 原生组件:微信提供的丰富组件库
3.2 项目目录结构
典型的小程序项目目录结构如下:
project
├── pages/ // 页面目录
│ ├── index/ // index页面
│ │ ├── index.js // 页面逻辑
│ │ ├── index.json // 页面配置
│ │ ├── index.wxml // 页面结构
│ │ └── index.wxss // 页面样式
│ └── logs/ // logs页面
│ ├── logs.js
│ ├── logs.json
│ ├── logs.wxml
│ └── logs.wxss
├── utils/ // 工具模块
│ └── util.js // 工具函数
├── app.js // 小程序逻辑
├── app.json // 小程序公共配置
├── app.wxss // 小程序公共样式表
└── project.config.json // 项目配置文件
3.3 四种文件类型详解
-
WXML (WeiXin Markup Language)
- 类似HTML的标记语言
- 提供数据绑定、列表渲染、条件渲染等能力
- 支持模板和引用机制
-
WXSS (WeiXin Style Sheets)
- 类似CSS的样式语言
- 扩展了尺寸单位rpx(响应式像素)
- 提供全局样式和局部样式概念
-
JavaScript
- 小程序的逻辑处理语言
- 包含App、Page等生命周期函数
- 支持CommonJS模块系统
-
JSON
- 用于各种配置
- 简洁的数据格式
- 不支持注释
3.4 小程序配置系统
-
全局配置 (app.json)
pages
:页面路径列表window
:窗口表现tabBar
:底部tab栏配置networkTimeout
:网络超时时间debug
:是否开启调试模式
-
页面配置 (page.json)
- 覆盖全局window的配置
- 只能设置与窗口相关的配置项
-
项目配置 (project.config.json)
- 开发者工具的个性化配置
- 包括项目设置、编译配置等
第四章:WXML与WXSS基础
4.1 WXML语法基础
WXML具有以下核心语法特性:
-
数据绑定
<view>{{message}}</view>
Page({data: {message: 'Hello World!'} })
-
列表渲染
<view wx:for="{{array}}" wx:key="id">{{index}}: {{item.message}} </view>
-
条件渲染
<view wx:if="{{view == 'WEBVIEW'}}">WEBVIEW</view> <view wx:elif="{{view == 'APP'}}">APP</view> <view wx:else>OTHER</view>
-
模板
<template name="msgItem"><view><text> {{index}}: {{msg}} </text><text> Time: {{time}} </text></view> </template><template is="msgItem" data="{{...item}}"/>
4.2 WXSS样式语言
WXSS在CSS基础上做了以下扩展:
-
尺寸单位rpx
- 1rpx = 屏幕宽度/750
- 可根据屏幕宽度自适应
-
样式导入
@import "common.wxss";
-
选择器
- 支持class、id、element等基本选择器
- 支持伪类选择器如
:active
-
全局样式与局部样式
- app.wxss中的样式为全局样式
- 页面wxss文件中的样式只作用于当前页面
4.3 组件与样式实战
<!-- index.wxml -->
<view class="container"><text class="title">欢迎使用小程序</text><view class="content"><block wx:for="{{list}}" wx:key="id"><view class="item"><image src="{{item.icon}}" class="icon"></image><text>{{item.name}}</text></view></block></view>
</view>
/* index.wxss */
.container {display: flex;flex-direction: column;align-items: center;
}.title {font-size: 32rpx;color: #333;margin: 20rpx 0;
}.item {display: flex;align-items: center;padding: 20rpx;border-bottom: 1rpx solid #eee;
}.icon {width: 60rpx;height: 60rpx;margin-right: 20rpx;
}
第五章:JavaScript逻辑层
5.1 小程序JavaScript特点
- 基于ECMAScript标准,但有些浏览器API不可用
- 额外提供微信小程序API
- 模块化开发支持
- 不支持DOM操作
- 异步API大多采用回调风格,部分支持Promise
5.2 App与Page生命周期
-
App生命周期
onLaunch
:小程序初始化时触发onShow
:小程序启动或从后台进入前台时触发onHide
:小程序从前台进入后台时触发onError
:脚本错误或API调用失败时触发
-
Page生命周期
onLoad
:页面加载时触发onShow
:页面显示时触发onReady
:页面初次渲染完成时触发onHide
:页面隐藏时触发onUnload
:页面卸载时触发
5.3 数据绑定与事件处理
-
数据绑定
Page({data: {count: 0},increase: function() {this.setData({count: this.data.count + 1})} })
-
事件处理
<button bindtap="increase">点击增加</button>
-
事件对象
type
:事件类型timeStamp
:事件生成时间target
:触发事件的组件currentTarget
:当前组件detail
:额外信息
5.4 模块化开发
-
模块定义
// utils/util.js function formatTime(date) {// 格式化时间 }module.exports = {formatTime: formatTime }
-
模块引用
// pages/index/index.js const util = require('../../utils/util.js')Page({onLoad: function() {console.log(util.formatTime(new Date()))} })
第六章:小程序组件系统
6.1 内置组件概述
微信小程序提供了丰富的基础组件,分为以下几类:
- 视图容器:view、scroll-view、swiper等
- 基础内容:icon、text、progress等
- 表单组件:button、form、input等
- 导航:navigator
- 媒体组件:image、video、camera等
- 地图:map
- 画布:canvas
- 开放能力:open-data、web-view等
6.2 常用组件详解
-
view组件
- 基本视图容器
- 支持flex布局
- 常用属性:hover-class、hover-start-time等
-
image组件
- 支持JPG、PNG、SVG等格式
- 支持懒加载
- 常用属性:src、mode、lazy-load等
-
scroll-view组件
- 可滚动视图区域
- 支持横向和纵向滚动
- 常用属性:scroll-x、scroll-y、bindscroll等
6.3 自定义组件开发
-
创建自定义组件
- 在项目根目录创建
components
文件夹 - 新建组件文件夹,如
my-component
- 包含
.json
、.wxml
、.wxss
、.js
四个文件
- 在项目根目录创建
-
组件配置
{"component": true }
-
组件逻辑
Component({properties: {// 定义属性title: {type: String,value: '默认标题'}},methods: {// 自定义方法onTap: function() {this.triggerEvent('customevent', {detail: '数据'})}} })
-
使用自定义组件
- 在页面json中引用:
{"usingComponents": {"my-component": "/components/my-component/my-component"} }
- 在wxml中使用:
<my-component title="自定义标题" bindcustomevent="onMyEvent" />
第七章:API与开放能力
7.1 小程序API分类
-
基础API
- 系统信息
- 生命周期
- 定时器
- 调试
-
界面API
- 交互反馈
- 导航栏
- 背景
- 动画
-
网络API
- 请求
- 上传下载
- WebSocket
-
设备API
- 地理位置
- 系统信息
- 扫码
- 剪贴板
-
开放接口
- 登录
- 支付
- 分享
- 设置
7.2 常用API详解
-
网络请求
wx.request({url: 'https://example.com/api',method: 'GET',data: {key: 'value'},success(res) {console.log(res.data)},fail(err) {console.error(err)} })
-
数据缓存
// 异步存储 wx.setStorage({key: 'key',data: 'value',success() {wx.getStorage({key: 'key',success(res) {console.log(res.data)}})} })// 同步存储 try {wx.setStorageSync('key', 'value')const value = wx.getStorageSync('key') } catch (e) {console.error(e) }
-
界面交互
// 显示加载提示 wx.showLoading({title: '加载中', })setTimeout(function() {wx.hideLoading() }, 2000)// 显示模态对话框 wx.showModal({title: '提示',content: '这是一个模态弹窗',success(res) {if (res.confirm) {console.log('用户点击确定')} else if (res.cancel) {console.log('用户点击取消')}} })
7.3 开放能力实战
-
获取用户信息
<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">获取用户信息 </button>
Page({onGetUserInfo(e) {console.log(e.detail.userInfo)} })
-
微信支付
wx.requestPayment({timeStamp: '',nonceStr: '',package: '',signType: 'MD5',paySign: '',success(res) {console.log('支付成功')},fail(err) {console.error('支付失败', err)} })
-
分享功能
Page({onShareAppMessage() {return {title: '自定义分享标题',path: '/page/user?id=123',imageUrl: '/images/share.jpg'}} })
第八章:项目实战与优化
8.1 完整项目开发流程
-
需求分析
- 确定目标用户
- 明确核心功能
- 设计用户流程
-
UI设计
- 设计稿制作
- 切图与标注
- 适配方案确定
-
技术方案
- 架构设计
- 技术选型
- 接口定义
-
开发实现
- 搭建基础框架
- 功能模块开发
- 联调测试
-
测试上线
- 功能测试
- 性能测试
- 提交审核
- 发布上线
8.2 性能优化技巧
-
启动加载优化
- 减小包体积
- 使用分包加载
- 提前发起数据请求
-
渲染性能优化
- 合理使用setData
- 避免频繁界面重绘
- 使用虚拟列表
-
内存优化
- 及时清理无用资源
- 避免内存泄漏
- 合理使用图片资源
8.3 常见问题与解决方案
-
页面白屏
- 检查网络请求
- 查看错误日志
- 验证数据绑定
-
样式错乱
- 检查样式作用域
- 验证rpx使用
- 排查样式覆盖
-
API调用失败
- 检查权限配置
- 验证参数格式
- 查看服务器状态
第九章:小程序发布与运营
9.1 小程序发布流程
-
代码上传
- 在开发者工具点击"上传"
- 填写版本号和项目备注
-
提交审核
- 登录微信公众平台
- 在管理后台提交审核
- 填写审核信息
-
发布上线
- 审核通过后点击发布
- 可选择全量发布或分阶段发布
9.2 数据分析与运营
-
数据分析
- 访问统计
- 用户行为分析
- 漏斗分析
-
运营手段
- 活动营销
- 消息模板
- 社交裂变
-
A/B测试
- 不同版本对比
- 数据驱动决策
- 持续优化迭代
9.3 小程序推广策略
-
线上推广
- 公众号关联
- 朋友圈广告
- 社交媒体分享
-
线下推广
- 二维码投放
- 活动推广
- 异业合作
-
搜索优化
- 关键词优化
- 服务类目准确
- 内容质量提升
第十章:进阶与扩展
10.1 小程序云开发
-
云开发基础
- 云数据库
- 云函数
- 云存储
-
优势特点
- 无需搭建服务器
- 一体化开发体验
- 弹性伸缩
-
实战示例
// 初始化 wx.cloud.init()// 数据库操作 const db = wx.cloud.database() db.collection('todos').get({success: res => {console.log(res.data)} })
10.2 TypeScript支持
-
配置TypeScript
- 安装依赖
- 配置tsconfig.json
- 类型定义文件
-
开发优势
- 类型检查
- 更好的IDE支持
- 代码可维护性
-
示例代码
Page({data: {count: 0},increase(): void {this.setData({count: this.data.count + 1})} })
10.3 跨平台开发方案
-
Taro框架
- 支持React/Vue语法
- 一次编写,多端运行
- 丰富的插件生态
-
uni-app
- Vue语法支持
- 多平台输出
- 组件库丰富
-
原生与跨平台对比
- 性能差异
- 开发效率
- 维护成本
结语
微信小程序作为轻量级应用的代表,已经成为移动互联网生态的重要组成部分。通过本教程的系统学习,您已经掌握了小程序开发的基础知识和核心技能。随着技术的不断发展,小程序生态也在持续演进,建议开发者:
- 持续关注微信官方文档更新
- 参与开发者社区交流
- 实践真实项目积累经验
- 探索小程序与新兴技术的结合
相关文章:
微信小程序学习基础:从入门到精通
文章目录 第一章:微信小程序概述1.1 什么是微信小程序1.2 小程序与原生APP、H5的区别1.3 小程序的发展历程与现状 第二章:开发环境搭建2.1 注册小程序账号2.2 安装开发者工具2.3 开发者工具界面介绍2.4 第一个小程序项目 第三章:小程序框架与…...
[免费]微信小程序宠物医院管理系统(uni-app+SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端),分享下哈。 项目视频演示 【免费】微信小程序宠物医院管理系统(uni-appSpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibi…...
乘最多水的容器 | 算法 | 给定一个整数数组。有n条垂线。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
在我们日常生活中,蓄水似乎是一个极为朴素的物理行为:两堵墙之间,注入水,看谁能装得更多。可如果换个角度,从算法的视角去看这个问题,它会变得怎样?你是否意识到,这样一个简单的问题…...
英伟达有意入股 PsiQuantum,释放战略转向量子计算的重要信号
内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨浪味仙 行业动向:1800字丨5分钟阅读 “十五年太早,三十年又太晚,但如果说二十年,我想很多人都会相信。” emmmm,…...
【Ubuntu修改串口延时(Latency Timer)为1毫秒(设备拔插或系统重启后自动生效)】
Ubuntu修改串口延时Latency Timer为1毫秒-设备拔插或系统重启后自动生效 在Ubuntu系统中,串口设备的延时参数(latency_timer)可以通过udev规则永久修改。以下是完整步骤: 创建udev规则文件 sudo vim /etc/udev/rules.d/99-ftdi-low-latency.rules添加以…...
《量子计算实战》PDF下载
内容简介 在加密、科学建模、制造物流、金融建模和人工智能等领域,量子计算可以极大提升解决问题的效率。量子系统正变得越来越强大,逐渐可用于生产环境。本书介绍了量子计算的思路与应用,在简要说明与量子相关的科学原理之后,指…...
Win 系统 conda 如何配置镜像源
通过命令添加镜像源(推荐) 以 清华源 为例,依次执行以下命令: # 添加主镜像源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main # 添加免费开源镜像源 conda config --add channels http…...
[密码学实战]使用C语言实现TCP服务端(二十九)
[密码学实战]使用C语言实现TCP服务端(二十九) 引言 TCP(传输控制协议)是互联网通信中最核心的协议之一,它提供可靠的、面向连接的数据传输服务。通过C语言的标准Socket API,开发者可以灵活地实现TCP客户端和服务端程序。本文将详细讲解TCP通信的原理,并提供完整的代码…...
打卡Day34
问题: 背景: 剩余时长 总时长 - 必须的计算时长(3秒)。记录间隔、记录次数和剩余时长的关系需要进一步分析。 数据观察: 当总epoch为20000时,不同记录间隔对应的记录次数和剩余时长如下: 记…...
谷歌开源医疗领域AI语言模型速递:medgemma-27b-text-it
一、模型概述 MedGemma 是由谷歌开发的一个医疗领域 AI 模型系列,基于 Gemma 3 架构,旨在加速医疗保健相关 AI 应用的开发。该模型系列包含两个主要变体:4B 多模态版本(支持文本和图像理解)以及 27B 纯文本版本&#…...
C++ JSON解析技术详解
一、JSON基础与解析流程 1.1 JSON数据结构 JSON包含两种核心结构(): 对象:{}包裹的键值对集合数组:[]包裹的值序列 1.2 解析流程 flowchart TDA[加载JSON数据] --> B{数据来源}B -->|字符串…...
多维应用场景的落地实践的智慧园区开源了
智慧园区场景视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界…...
第三次中医知识问答模型微调
本次参数 llamafactory-cli train \ --stage sft \ --do_train True \ --model_name_or_path /home/qhyz/zxy/LLaMA-Factory/model \ --preprocessing_num_workers 16 \ --finetuning_type lora \ --template deepseek3 \ --flash_attn fa2 \ --dataset_dir data \ --dataset …...
基于SpringBoot的美食分享平台设计与开发(Vue MySQL)
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...
开闭原则 (Open/Closed Principle, OCP)
定义:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展 问题由来:任何软件都需要面临一个很重要的问题,即它们的需求会随时间的推移而发生变化。因为变化,升级和维护等原因&…...
在 “Linux 9“ 系统快速安装配置RabbitMQ
这是在 “Linux 9” 系统(如 RHEL 9、AlmaLinux 9、Rocky Linux 9)上安装和配置 RabbitMQ 的中文指南。 前提条件: 你拥有 sudo 权限。你的系统已连接到互联网。firewalld 是你当前活动的防火墙(在基于 RHEL 的系统上很常见&…...
【brpc】安装与使用
brpc安装与使用 1. brpc是什么2. 安装3. 类与接口介绍3.1 日志输出类与接口3.2 protobuf 类与接口3.3 服务端类与接口3.4 客户端类与接口 4. 使用4.1 同步调用4.2 异步调用 1. brpc是什么 brpc 是用 c语言编写的工业级 RPC 框架,常用于搜索、存储、机器学习、广告、…...
C++:关联容器set容器,multiset容器
set与map不一样之处在于set的键值和时值是一样的,且个元素的值不能重复,容器会根据键的大小默认按升序排序,set底层也是红黑树。 multiset则允许键重复。 例如: #include<iostream> #include<set> using namespace…...
Java 调用 GitLab API
前言: 上一篇我们使用了 webhook 的方式获取用户提交代码的信息,本篇我简单分享一下使用 GitLab API 来获取用户提交代码的信息。 业务分析: 我们需要统计每一个用户的提交代码的信息,那 GitLab 是否有这样的接口呢?…...
“智”斗秸秆焚烧,考拉悠然以科技之力筑牢生态安全防线
清晨,薄雾笼罩着辽阔的田野,农民们开始了一天的劳作。然而,随着收割季的到来,秸秆焚烧问题也逐渐浮现,成为威胁空气质量与生态安全的隐患。传统监管方式往往显得力不从心,效率低下的困境亟待突破。在此背景…...
数据库基础面试题(回答思路和面试建议)
以下是针对这些数据库基础问题的详细回答思路和面试回答建议,结合理论、应用场景和实际项目经验展开说明: 1. 数据库三大范式是什么?实际项目中是否需要严格遵循? 回答思路: 先解释三大范式(逐层递进&…...
数据库blog5_数据库软件架构介绍(以Mysql为例)
🌿软件的架构 🍂分类 软件架构总结为两种主要类型:一体式架构和分布式架构 ● 一体化架构 一体式架构是一种将所有功能集成到一个单一的、不可分割的应用程序中的架构模式。这种架构通常是一个大型的、复杂的单一应用程序,包含所…...
mysql可重复读隔离级别下的快照读和当前读
在MySQL的可重复读隔离级别下,快照读和当前读是两种不同的读取方式,它们的特点和应用场景有所不同。 快照读 定义:快照读是指在事务中读取数据时,读取的是事务开始时的历史版本数据,而非当前最新的数据。实现原理&…...
MySQL 单表与多表操作详解
🎈边走、边悟🎈迟早会好 目录 一、单表查询整合 (一)通用模板展示 (二)举例说明 1. 简单查询 2. 条件查询 3. 高级查询 (三)注意事项 (四)Mapper 简…...
Spring概念问题详解
一、Bean的生命周期 1.1 BeanDefinition Spring容器在进行实例化时,会将xml配置的<bean>的信息封装成一个BeanDefinition对象,Spring根据BeanDefinition来创建Bean对象,里面有很多的属性用来描述Bean。 beanClassName:be…...
使用pm2 部署react+nextjs项目到服务器
记录一下 next.config.js中: output: standalone,package.json配置: "scripts": {"dev": "cross-env NODE_OPTIONS--inspect next dev","build": "next build","start": "cp -r .nex…...
JVM常量池(class文件常量池,运行时常量池,字符串常量池)
文章目录 问题JVM运行时数据区JVM中的常量池Class文件常量池运行时常量池字符串常量池创建了几个对象String的定义intern()问题 超过1W字深度剖析JVM常量池(全网最详细最有深度) - 跟着Mic学架构 - 博客园 问题 jdk1.8之后 元空间是独立存在的…...
Java 大视界 -- 基于 Java 的大数据分布式存储在视频会议系统海量视频数据存储与回放中的应用(263)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
光谱相机在地质勘测中的应用
一、矿物识别与蚀变带分析 光谱特征捕捉 通过可见光至近红外(400-1000nm)的高光谱分辨率(可达3.5nm),精确识别矿物的“光谱指纹”。例如: 铜矿:在400-500nm波段反射率显著低于围…...
深入解析Java泛型:从定义到实战应用
目录 🚀前言🤔泛型的定义🐧泛型类🌟泛型接口✍️泛型方法、通配符、上下限💯泛型方法💯 通配符与上下限⚙️通配符(Wildcard)⚙️泛型上下限⚙️应用场景 🦜泛型支持的类…...
数据结构:绪论之时间复杂度与空间复杂度
作者主页 失踪人口回归,陆续回三中。 开辟文章新专栏——数据结构,恳请各位大佬批评指正! 文章目录 作者主页 数据结构的基本知识数据:数据元素:数据对象:数据类型:数据结构:逻辑结…...
ARM Linux远程调试
准备 虚拟机既能ping通开发板,又能ping通外网,还要能ping通Windows主机(如果你有上位机通信(tftp、vsftp、ssh)的需求) VMware 添加网络适配器2用作桥接网卡,原有的网络适配器保持为NAT模式 打开虚拟网络编辑器,配置VMnet0为桥接模式,外部连接设置为Realtek PCIe G…...
PostgreSQL 14 pacemaker 高可用集群
核心架构原理 集群组成(典型三节点结构): [Node1] PostgreSQL Pacemaker Corosync pcsd [Node2] PostgreSQL Pacemaker Corosync pcsd [Node3] PostgreSQL Pacemaker Corosync pcsd ↕ ↕ ↕ ← Corosync 多…...
英语学习5.21
Far from sensible 表示“很不明智的”、“离明智相去甚远”。这是一个固定表达,结构是 far from adj.,意思是“根本不……”,常见例子: far from perfect(远非完美) far from acceptable(远…...
实现了TCP的单向通信
1. 客户端代码:Client.java package com.xie.javase.net1;import java.io.*; import java.net.*;public class Client {public static void main(String[] args) {Socket socket = null;BufferedWriter bw = null;try {// 1. 获取本机IP地址对象InetAddress localHost = Inet…...
华为云Flexus+DeepSeek征文 | 基于ModelArts Studio和Cherry Studio快速构建午餐管家助手
目录 一、前言 二、ModelArts Studio(MaaS)介绍与应用场景 2.1ModelArts Studio(MaaS)介绍 2.2 ModelArts Studio(MaaS)使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Cherry Studio简介和安…...
Spring AI 1.0 GA 正式发布
Spring AI 1.0 GA 正式发布 快速入门核心特性1. **增强型 LLM(大语言模型)**2. **MCP 协议支持**3. **RAG(检索增强生成)**4. **评估与监控**5. **智能代理(Agents)** 下一步计划 VMware Spring 团队 Mark …...
【计算机网络 第8版】谢希仁编著 第五章运输层 题型总结1 UDP和TCP报文格式
UDP报文 5.13 这一题可以先问AI: 但是问了AI,肯定想知道:这些知识点在书上哪里?怎么这么难找? 没错这题主要是靠IP地址,所以应该在第四章。 P136 P137 省流: 1.UDP的首部格式是8个字节&…...
华为云Flexus+DeepSeek征文 | 基于ModelArts Studio 的 DeepSeek API 实现行业深度搜索和分析
目录 一、前言 二、ModelArts Studio(MaaS)介绍与应用场景 2.1ModelArts Studio(MaaS)介绍 2.2 ModelArts Studio(MaaS)使用场景 2.3 开通MaaS服务 2.4 开通DeepSeek-V3商用服务 三、Deep Research简介和安…...
计算机网络——Session、Cookie 和 Token
在 Web 开发中,Session、Cookie 和 Token 是实现用户会话管理和身份验证的核心技术。它们既有联系,也有明显区别。以下从定义、原理、联系、区别和应用场景等方面详细解析。 一、基本定义与原理 1. Cookie 定义: 是浏览器存储在客户端的小…...
AAOS系列之----简介
一文讲透AAOS架构,点到为止不藏私 📌 AAOS是以一个系统APP的方式集成进安卓系统中,通过在SystemServer中启动其中的Service 📚 1. CarServcie 是如何被启动的? AAOS中的核心服务是CarService,其描述如下: 代码路径如下: android1…...
CTF签到题
1.题目:VmxkMFUxVXhTbkpOU0dSVVZrWktWRlpyVm5kU2JGSnlWbXhhYkdKRlduaFpWVlpoVkcxRmQwMUlhRlpXTTFKUVZXdFZlR05zWkZsaVJrcG9ZbGRvUmxaR1dsZFVhekZIVW14V1lWSlZOVkJVVlZaV1RVWldjbFZzVGxOTlJGWlhWa1pvZDFWdFJuTlRhMVpXVm14YVIxUlVSa2RPYkVweVYyeENWMVpVUlhwV1ZtUjNVMj…...
甲骨文云服务器适合做网站吗
甲骨文云服务器:建网站,它到底是不是“神队友”? 各位想在网上“立门户”的老板、个人创作者们,大家好!现在这年头,没个自己的网站,那感觉就像做生意没个店面、搞创作没个画廊一样,…...
性能测试场景题
题目 针对618,双十一活动的,一个电商系统,如何设计压力测试方案? 参考答案 针对618、双十一等高并发电商大促活动,压力测试方案需覆盖全链路性能瓶颈识别、容量评估和极端场景验证。以下为详细设计框架,…...
数智读书笔记系列033《软件设计的哲学(第2版)》:复杂性管理的艺术
《软件设计的哲学》(A Philosophy of Software Design)书籍简介 作者:约翰奥斯特豪特(John Ousterhout) 出版信息:第2版于2024年11月由人民邮电出版社出版,中文版由茹炳晟、王海鹏翻译。 作者背景 奥斯特豪特是斯坦福大学计算机科学教授、美国国家工程院院士,拥有丰…...
MySQL与Redis数据同步实践与优化
一、数据不一致的典型场景 写入顺序不一致 当业务逻辑需要同时更新数据库和缓存时,若出现"先删缓存后更新DB"或"先更新DB后删缓存"操作失败,会导致缓存与数据库数据版本不一致。 并发读写冲突 高并发场景下可能出现: …...
HarmonyOS 鸿蒙应用开发基础:EventHub,优雅解决跨组件通信难题
EventHub是鸿蒙开发中用于线程内通信的事件中心模块,基于发布订阅模式实现组件间的高效通信。它完美解决了传统回调方式在多层嵌套场景下的痛点,使得组件间的通信更加灵活和易于管理。 核心特性 事件中心机制:通过事件名进行通信,…...
如何解决鸿蒙应用闪退问题
如何解决鸿蒙应用闪退问题 本文是一份面向 ArkTS/JavaScript/C 多语言开发者的综合性排查与优化手册,覆盖 HarmonyOS/OpenHarmony 5.x 时代 常见闪退根因、诊断流程、调试技巧、CI 监控及线上防护方案,力争帮你把 Crash 数量降到 …...
人民日报社主管媒体深度聚焦珈和科技“遥感+AI”农险精准化突破:首创“四维数据贯通”模式 树行业转型新标杆
近日,由人民日报社主管的《中国城市报》对珈和科技与国寿财险湖南省分公司联合打造的农业保险数字化标杆项目进行了深度报道。 作为"遥感AI"技术在农业风险管理领域的创新实践者,珈和科技依托自主构建的覆盖“天-空-地-人”的全维度智慧农业技…...
(1)深度学习基础知识(八股)——常用名词解释
1. FC FC全称是Fully Connect全连接层,也被称为Linear Layer线性层。 它的核心是:每个输入神经元 与 每个输出神经元 都要通过权重连接,适用于将输入特征映射到高维或者低维空间。 数学表示 对于一个输入向量,FC的计算方式是: 是…...