- Python tkinter实现动态链接数据库
乙龙
python数据库
在使用Tkinter(tk)开发GUI程序时,可以通过多种方式让用户自由更改数据库连接地址,而不是将其写死在代码中。以下是一些实现方法:方法一:使用输入框让用户手动输入数据库地址你可以在GUI中添加一个输入框(Entry),让用户手动输入数据库地址。然后在连接数据库时,从输入框中获取地址。示例代码:importtkinterastkfromtkinterimportmessageboximport
- vue按照官网设置自动导入后ElMessageBox不生效问题
cc.ChenLy
前端
按照官网的方式导入之后,ElMessageBox不用再引入了,不然就会造成冲突不生效解决的方法:将组件中的引入删除,直接使用
- 全渠道小程序引流指南
爱分享的程序员
微信小程序小程序
一、微信生态内部渠道1.会话场景1.1好友会话点击查看商品详情onShareAppMessage(){return{title:'爆款特惠',path:'/pages/goods?id=123',imageUrl:'/images/share.jpg'}}1.2微信群//获取群ID实现群场景服务wx.getGroupEnterInfo({success(res){console.log('群ID:
- C#调用企业微信机器人推送数据(文字)
请熟读并背诵文档
企业微信机器人信息推送c#企业微信机器人
--WeChatRobotMessageSender类用于封装与企业微信机器人发送Markdown消息相关的操作usingNewtonsoft.Json;usingSystem;usingSystem.Net.Http;usingSystem.Text;usingSystem.Threading.Tasks;namespace企业微信接口测试{//WeChatRobotMessageSender类
- git 中 git stash命令
胡小花~
gitgithub
常用gitstash命令:gitstashsave"savemessage":执行存储时,添加备注,方便查找,只有gitstash也要可以的,但查找时不方便识别。gitstashlist:查看stash了哪些存储gitstashshow:显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个gitstashshowstash@{1}gitstash
- SpringBoot-引入jackson-dataformat-xml之后,本返回json的接口返回xml
LIUYEYEA
xmljavajavaxmljson
一、问题当我们项目中需要引入"jackson-dataformat-xml"后,我们会发现我们原本返回json数据的接口也开始返回xml数据格式了二、原因publicabstractclassAbstractMessageConverterMethodProcessorextendsAbstractMessageConverterMethodArgumentResolverimplementsHa
- 【学习笔记】Git常用命令
玄二
学习笔记学习笔记git
目录Git常用命令1.gitinit(初始化一个新的Git仓库)2.gitclone[url](克隆远程仓库到本地计算机)3.gitstatus(查看当前工作区的状态)4.gitadd[file](将文件添加到暂存区)5.gitcommit-m"commitmessage"(提交暂存区中的更改)6.gitlog(查看提交历史记录)7.gitdiff(查看工作区与上次提交之间的代码差异)8.gitr
- elementUI el-input金额必填校验
木头没有瓜
elementuivue.jsjavascript
提交exportdefault{data(){return{form:{amount:''},rules:{amount:[{required:true,message:'请输入金额',trigger:'blur'},{validator:(rule,value,callback)=>{if(!value){returncallback();}if(!/^(\d+|\d+.\d{1,2})$/.t
- Python完整代码实现跳动的爱心
wv15889726201
python开发语言源代码管理
今天用Pthon实现跳动的爱心,以下是部分代码,需要完整代码可以私信喔~importtkinterastkimporttkinter.messageboximportrandomfrommathimportsin,cos,pi,logfromtkinter.constantsimport*width=888height=500heartx=width/2hearty=height/2side=11
- 【同源战略下的暗网通道:BroadcastChannel 拆解与跨维度攻防实战】
Gazer_S
前端javascript缓存chrome
BroadcastChannel诞生的技术背景BroadcastChannel的背景故事,前世今生️前BroadcastChannel时代的通信困局postMessage的繁琐性需维护窗口引用链:父窗口↔iframe↔子iframe消息路由需手动管理,复杂度O(n²)//传统多级通信parent.window.frames[0].postMessage(data,origin);localStor
- C++ 练习2
四代目 水门
C++学习笔记c++算法开发语言
题目1:定义Person类要求:字段:idCard(身份证号)、name(姓名)、gender(性别)、age(年龄)、profession(职业)、phone(联系方式),并定义构造函数初始化这些字段。方法message():输出个人信息。答案:cpp#include#includeusingnamespacestd;classPerson{private:stringidCard,name,g
- RabbitMQ系列(零)概要
yyueshen
RabbitMQrabbitmq分布式消息队列
一、消息队列总览1.什么是消息队列?消息队列(MessageQueue)是一种异步通信机制,允许分布式系统中的服务通过生产-消费模型传递数据。其核心价值在于:解耦性:生产者与消费者无需同时在线或直接交互削峰填谷:应对流量突发场景,避免系统过载(如秒杀系统请求缓冲)可靠性:通过持久化、重试机制保障消息不丢失2.典型应用场景场景实现原理案例服务异步化耗时操作异步执行(如日志记录)用户注册后异步发送通知
- Deepseek Api 对话补全(Chat Completion)、补全(Completion)、FIM补全(Fill-in-Middle,Beta)区别
Dontla
人工智能大模型LLMdeepseek
文章目录1.对话补全(ChatCompletion)2.补全(Completion)3.FIM补全(Fill-in-Middle,Beta)主要对比使用建议DeepSeekAPI中的不同接口针对不同场景设计,主要区别如下:1.对话补全(ChatCompletion)输入结构:使用messages数组,包含多轮对话消息(用户/助理角色)。上下文处理:自动维护对话历史,适合多轮交互。适用场景:聊天机器
- RabbitMQ实战:构建可靠的异步消息系统
AI天才研究院
计算DeepSeekR1&大数据AI人工智能大模型计算科学神经计算深度学习神经网络大数据人工智能大型语言模型AIAGILLMJavaPython架构设计AgentRPA
RabbitMQ实战:构建可靠的异步消息系统1.背景介绍1.1异步消息系统的重要性在现代软件系统中,各个组件和服务之间通常需要进行大量的通信和数据交换。同步通信会导致系统耦合度高,可扩展性差。异步消息系统应运而生,通过将消息发送者和接收者解耦,提高了系统的灵活性、可靠性和性能。1.2RabbitMQ的优势RabbitMQ是一个开源的消息队列系统,基于AMQP(AdvancedMessageQueu
- Qt for Android下QMessageBox背景黑色、文字点击闪烁
子建莫敌
Qtqtandroidc++QMessageBox文字闪烁背景黑色
最近在基于Qt开发安卓应用的时候,在红米平板上默认QMessageBox出现之后,背景黑色,并且点击提示文字会出现闪烁,影响用户体验。问题分析1、设置QMessageBox样式,设置背景色、文字颜色,如下所示:QMessageBox{background:white;color:white;}尝试之后,问题仍存在2、继承QMessageBox,自定义MessageboxMessagebox:pub
- 支持selenium的chrome driver更新到133.0.6943.126
代码的乐趣
seleniumchromepython
最近chrome释放新版本:133.0.6943.126如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated:ThisversionofChromeDriveronlysupportsChromev
- 支持selenium的chrome driver更新到133.0.6943.98
代码的乐趣
seleniumchromepython
最近chrome释放新版本:133.0.6943.98如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated:ThisversionofChromeDriveronlysupportsChromeve
- 支持selenium的chrome driver更新到133.0.6943.141
代码的乐趣
seleniumchromepython
最近chrome释放新版本:133.0.6943.141如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。selenium.common.exceptions.SessionNotCreatedException:Message:sessionnotcreated:ThisversionofChromeDriveronlysupportsChromev
- 关于uniapp和H5的通信交互传参问题
水水水水水水水水水水水
uni-app交互
在h5index.html中引入1.在uniapp中创建webview通信的vue页面2.h5通信webview中绑定@messageuvue中绑定@onmessage3.h5组件中获取从uniapp传过来的参数(生命周期中获取)constqueryString=window.location.search;//使用URLSearchParams对象解析查询字符串consturlParams=ne
- 学习Flask:Day 1:基础搭建
昨今
学习flaskpython
学习目标:完成第一个Flask应用#app.pyfromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhome():return'HelloFlask!'@app.route('/api/greet/')defgreet(name):return{'message':f'Hello{name}!'}if__name__=='__main_
- 《Operating System Concepts》阅读笔记:p125-p146
操作系统
《OperatingSystemConcepts》学习第14天,p125-p146总结,总计20页。一、技术总结1.IPC(InterprocessesComunicating)(1)sharedmemory(2)messagepassing2.primitive(1)语言中的primitiveprimitive:primus("first",参考prime)+-itive(asuffixthat
- QtC++读取文件内容
galaxy_strive
qtc++
QFilefile("../sys_database/canshu.txt");//目标文件路径if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){QMessageBox::critical(this,"警告","文件读取失败!");return;}//创建一个QTextStream对象,用于从文件中读取文本数据。QTextStreamin(&f
- CMake学习记录
Spoon_94
C/C++CMake
参考文章:CMakePractice文章目录PROJECTSETMESSAGEADD_EXECUTABLE变量ADD_SUBDIRECTORYLIBRARY_OUTPUT_PATH/EXECUTABLE_OUTPUT_PATHINSTALL安装普通文件非目标文件的可执行程序安装(脚本)目录安装CMAKE脚本执行静态库与动态库SET_TARGET_PROPERTIESGET_TARGET_PROPE
- 探秘MoonMQ:一款高速分布式消息队列系统
蒙丁啸Sharp
探秘MoonMQ:一款高速分布式消息队列系统moonmqafastdistributedmessagequeueimplementedwithgo项目地址:https://gitcode.com/gh_mirrors/mo/moonmq在当今的微服务架构和高并发场景下,消息队列作为连接各个服务的桥梁,其重要性不言而喻。今天,我们要向大家隆重推荐一个基于Go语言实现的高速分布式消息队列——MoonM
- SOME/IP-SD -- 协议英文原文讲解1
忆源
SOME/IP-SDtcp/ip网络网络协议
前言SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块:1.SOME/IP协议讲解2.SOME/IP-SD协议讲解3.python/C++举例调试讲解1IntroductionandoverviewThisprotocolspecificationspecifiestheformat,messages
- 深度学习-133-LangGraph之应用实例(二)使用面向过程和面向对象的两种编程方式构建带记忆的聊天机器人
皮皮冰燃
深度学习深度学习人工智能LangGraph
文章目录1通用配置1.1大语言模型ChatOllama1.2函数trim_messages1.2.1函数概述1.2.2函数参数1.2.3测试应用2面向过程编程2.1不裁剪历史信息2.1.1创建图2.1.2调用图2.2裁剪历史信息2.2.1创建图2.2.2调用图3面向对象编程3.1定义类MyState3.2定义类AIChat3.3应用4附录4.1问题及解决tokenizer4.2参考附录1通用配置L
- 【微服务】SpringBoot 自定义消息转换器使用详解
小码农叔叔
springboot入门到精通springboot消息转换器spring消息转换器详解消息转换器使用详解springmvc消息转换器spring自定义消息转换器自定义消息转换器
目录一、前言二、SpringBoot内容协商介绍2.1什么是内容协商2.2内容协商机制深入理解2.2.1内容协商产生的场景2.3内容协商实现的常用方式2.3.1前置准备2.3.2通过HTTP请求头2.3.2.1操作示例2.3.3通过请求参数三、SpringBoot消息转换器介绍3.1HttpMessageConvertor介绍3.1.1常用的HttpMessageConvertor3.2如何确定使
- Android 轻量级双向 IPC 通信 Messenger
SunshineBoy的博客
面试专栏android
Service服务端示例://MessengerService.ktclassMessengerService:Service(){//处理客户端消息的Handlerprivatevalhandler=object:Handler(Looper.getMainLooper()){overridefunhandleMessage(msg:Message){when(msg.what){MSG_SAY
- RPC 框架项目剖析
C语言扫地僧
Linux专栏rpc网络协议学习c++
RPC框架项目剖析说明本文用于梳理一个rpc项目的实现细节,此项目基于cpp语言大概三千行左右,用于学习目的。项目链接:rpc项目项目底层类1.抽象消息类描述:各种消息的基类属性:消息id,消息类型,序列化返序列化方法。派生类:JsonMessage,再派生出请求,应答等。2.抽象缓冲区类型描述:消息缓冲区(方便扩展,本项目使用的moduo库的缓冲区)属性:读缓冲区数据方法,判断缓冲区是否有数据等
- extend() 方法的处理和to_bytes(2, ‘big‘) 方法的作用
huiyuanzhenduo
python
先看代码#假设register_addr是一个寄存器地址register_addr=0x1234#初始化一个空列表作为messagemessage=[]#将register_addr转换为2字节的大端字节序表示,并添加到message列表中message.extend(register_addr.to_bytes(2,'big'))print(message)#输出:[18,52],因为0x12十
- jQuery 键盘事件keydown ,keypress ,keyup介绍
107x
jsjquerykeydownkeypresskeyup
本文章总结了下些关于jQuery 键盘事件keydown ,keypress ,keyup介绍,有需要了解的朋友可参考。
一、首先需要知道的是: 1、keydown() keydown事件会在键盘按下时触发. 2、keyup() 代码如下 复制代码
$('input').keyup(funciton(){  
- AngularJS中的Promise
bijian1013
JavaScriptAngularJSPromise
一.Promise
Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性。其核心是,promise是一个带有then()函数的对象。
为了展示它的优点,下面来看一个例子,其中需要获取用户当前的配置文件:
var cu
- c++ 用数组实现栈类
CrazyMizzz
数据结构C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T, int SIZE = 50>
class Stack{
private:
T list[SIZE];//数组存放栈的元素
int top;//栈顶位置
public:
Stack(
- java和c语言的雷同
麦田的设计者
java递归scaner
软件启动时的初始化代码,加载用户信息2015年5月27号
从头学java二
1、语言的三种基本结构:顺序、选择、循环。废话不多说,需要指出一下几点:
a、return语句的功能除了作为函数返回值以外,还起到结束本函数的功能,return后的语句
不会再继续执行。
b、for循环相比于whi
- LINUX环境并发服务器的三种实现模型
被触发
linux
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。
1 循环服务器与并发服务器模型
在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。
目前最常用的服务器模型有:
·循环服务器:服务器在同一时刻只能响应一个客户端的请求
·并发服务器:服
- Oracle数据库查询指令
肆无忌惮_
oracle数据库
20140920
单表查询
-- 查询************************************************************************************************************
-- 使用scott用户登录
-- 查看emp表
desc emp
- ext右下角浮动窗口
知了ing
JavaScriptext
第一种
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/
- 浅谈REDIS数据库的键值设计
矮蛋蛋
redis
http://www.cnblogs.com/aidandan/
原文地址:http://www.hoterran.info/redis_kv_design
丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。
- maven编译可执行jar包
alleni123
maven
http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven
<build>
<plugins>
<plugin>
<artifactId>maven-asse
- 人力资源在现代企业中的作用
百合不是茶
HR 企业管理
//人力资源在在企业中的作用人力资源为什么会存在,人力资源究竟是干什么的 人力资源管理是对管理模式一次大的创新,人力资源兴起的原因有以下点: 工业时代的国际化竞争,现代市场的风险管控等等。所以人力资源 在现代经济竞争中的优势明显的存在,人力资源在集团类公司中存在着 明显的优势(鸿海集团),有一次笔者亲自去体验过红海集团的招聘,只 知道人力资源是管理企业招聘的 当时我被招聘上了,当时给我们培训 的人
- Linux自启动设置详解
bijian1013
linux
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。
阅读之前建议先看一下附图。
本文中假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc
- Spring Aop Schema实现
bijian1013
javaspringAOP
本例使用的是Spring2.5
1.Aop配置文件spring-aop.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmln
- 【Gson七】Gson预定义类型适配器
bit1129
gson
Gson提供了丰富的预定义类型适配器,在对象和JSON串之间进行序列化和反序列化时,指定对象和字符串之间的转换方式,
DateTypeAdapter
public final class DateTypeAdapter extends TypeAdapter<Date> {
public static final TypeAdapterFacto
- 【Spark八十八】Spark Streaming累加器操作(updateStateByKey)
bit1129
update
在实时计算的实际应用中,有时除了需要关心一个时间间隔内的数据,有时还可能会对整个实时计算的所有时间间隔内产生的相关数据进行统计。
比如: 对Nginx的access.log实时监控请求404时,有时除了需要统计某个时间间隔内出现的次数,有时还需要统计一整天出现了多少次404,也就是说404监控横跨多个时间间隔。
Spark Streaming的解决方案是累加器,工作原理是,定义
- linux系统下通过shell脚本快速找到哪个进程在写文件
ronin47
一个文件正在被进程写 我想查看这个进程 文件一直在增大 找不到谁在写 使用lsof也没找到
这个问题挺有普遍性的,解决方法应该很多,这里我给大家提个比较直观的方法。
linux下每个文件都会在某个块设备上存放,当然也都有相应的inode, 那么透过vfs.write我们就可以知道谁在不停的写入特定的设备上的inode。
幸运的是systemtap的安装包里带了inodewatch.stp,位
- java-两种方法求第一个最长的可重复子串
bylijinnan
java算法
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class MaxPrefix {
public static void main(String[] args) {
String str="abbdabcdabcx";
- Netty源码学习-ServerBootstrap启动及事件处理过程
bylijinnan
javanetty
Netty是采用了Reactor模式的多线程版本,建议先看下面这篇文章了解一下Reactor模式:
http://bylijinnan.iteye.com/blog/1992325
Netty的启动及事件处理的流程,基本上是按照上面这篇文章来走的
文章里面提到的操作,每一步都能在Netty里面找到对应的代码
其中Reactor里面的Acceptor就对应Netty的ServerBo
- servelt filter listener 的生命周期
cngolon
filterlistenerservelt生命周期
1. servlet 当第一次请求一个servlet资源时,servlet容器创建这个servlet实例,并调用他的 init(ServletConfig config)做一些初始化的工作,然后调用它的service方法处理请求。当第二次请求这个servlet资源时,servlet容器就不在创建实例,而是直接调用它的service方法处理请求,也就是说
- jmpopups获取input元素值
ctrain
JavaScript
jmpopups 获取弹出层form表单
首先,我有一个div,里面包含了一个表单,默认是隐藏的,使用jmpopups时,会弹出这个隐藏的div,其实jmpopups是将我们的代码生成一份拷贝。
当我直接获取这个form表单中的文本框时,使用方法:$('#form input[name=test1]').val();这样是获取不到的。
我们必须到jmpopups生成的代码中去查找这个值,$(
- vi查找替换命令详解
daizj
linux正则表达式替换查找vim
一、查找
查找命令
/pattern<Enter> :向下查找pattern匹配字符串
?pattern<Enter>:向上查找pattern匹配字符串
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找
字符串匹配
pattern是需要匹配的字符串,例如:
1: /abc<En
- 对网站中的js,css文件进行打包
dcj3sjt126com
PHP打包
一,为什么要用smarty进行打包
apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。
为什么要进行打包呢,主要目的是为了合理的管理自己的代码 。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的J
- php Yii: 出现undefined offset 或者 undefined index解决方案
dcj3sjt126com
undefined
在开发Yii 时,在程序中定义了如下方式:
if($this->menuoption[2] === 'test'),那么在运行程序时会报:undefined offset:2,这样的错误主要是由于php.ini 里的错误等级太高了,在windows下错误等级
- linux 文件格式(1) sed工具
eksliang
linuxlinux sed工具sed工具linux sed详解
转载请出自出处:
http://eksliang.iteye.com/blog/2106082
简介
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾
- Android应用程序获取系统权限
gqdy365
android
引用
如何使Android应用程序获取系统权限
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点
- HoverTree开发日志之验证码
hvt
.netC#asp.nethovertreewebform
HoverTree是一个ASP.NET的开源CMS,目前包含文章系统,图库和留言板功能。代码完全开放,文章内容页生成了静态的HTM页面,留言板提供留言审核功能,文章可以发布HTML源代码,图片上传同时生成高品质缩略图。推出之后得到许多网友的支持,再此表示感谢!留言板不断收到许多有益留言,但同时也有不少广告,因此决定在提交留言页面增加验证码功能。ASP.NET验证码在网上找,如果不是很多,就是特别多
- JSON API:用 JSON 构建 API 的标准指南中文版
justjavac
json
译文地址:https://github.com/justjavac/json-api-zh_CN
如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 就是你的 anti-bikeshedding 武器。
通过遵循共同的约定,可以提高开发效率,利用更普遍的工具,可以是你更加专注于开发重点:你的程序。
基于 JSON API 的客户端还能够充分利用缓存,
- 数据结构随记_2
lx.asymmetric
数据结构笔记
第三章 栈与队列
一.简答题
1. 在一个循环队列中,队首指针指向队首元素的 前一个 位置。
2.在具有n个单元的循环队列中,队满时共有 n-1 个元素。
3. 向栈中压入元素的操作是先 移动栈顶指针&n
- Linux下的监控工具dstat
网络接口
linux
1) 工具说明dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是,
- C 语言初级入门--二维数组和指针
1140566087
二维数组c/c++指针
/*
二维数组的定义和二维数组元素的引用
二维数组的定义:
当数组中的每个元素带有两个下标时,称这样的数组为二维数组;
(逻辑上把数组看成一个具有行和列的表格或一个矩阵);
语法:
类型名 数组名[常量表达式1][常量表达式2]
二维数组的引用:
引用二维数组元素时必须带有两个下标,引用形式如下:
例如:
int a[3][4]; 引用:
- 10点睛Spring4.1-Application Event
wiselyman
application
10.1 Application Event
Spring使用Application Event给bean之间的消息通讯提供了手段
应按照如下部分实现bean之间的消息通讯
继承ApplicationEvent类实现自己的事件
实现继承ApplicationListener接口实现监听事件
使用ApplicationContext发布消息