- 布隆过滤器详解及使用:解决缓存穿透问题
豪宇刘
缓存哈希算法散列表
在现代应用开发中,缓存技术被广泛应用于提升系统性能和响应速度。然而,缓存系统也带来了一些新的挑战,如缓存穿透、缓存击穿和缓存雪崩等问题。一、什么是布隆过滤器?布隆过滤器是一种空间效率很高的概率型数据结构,用于判断一个元素是否在一个集合中。它的优点是高效且占用内存少,但有一定的误判率(即可能会错误地认为某个不在集合中的元素存在于集合中),不过它不会漏报(即如果一个元素确实不在集合中,布隆过滤器一定能
- Linux 中的 .bashrc 是什么?配置详解
vvw&
技术文章Linuxlinuxchrome运维服务器ubuntu后端centos
如果你使用过Linux终端,那么你很可能接触过.bashrc文件。这个功能强大的脚本是个性化命令行环境并使其更高效运行的关键。在本文中,我们将向你介绍这个文件是什么,在哪里可以找到它,以及如何安全地编辑它。你还将学到一些实用技能,如创建省时的命令别名、编写强大的shell函数,以及自定义终端提示的外观。最后,我们还将介绍基本的最佳实践和常见错误,帮助你建立更高效、更强大的命令行工作流程。准备强烈简
- C语言 预处理详解
目录1.预定义符号2.#define定义常量3.#define定义宏4.带有副作用的宏函数5.宏替换的规则6.宏函数的对比1.预定义符号C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的//进行编译的源文件__FILE__//文件当前的行号__LINE__//文件被编译的日期__DATE__//文件被编译的时间__TIME__//如果编译器遵循ANSIC,其值为1,否则未定
- 大小不足5M,轻量级PDF阅读工具
“你是否也遇见过这样的窘境:明明只需要打开查看几页内容,却要安装一个几十兆甚至上百兆的软件,等待半天才能加载完成,老旧电脑更是卡顿得让人失去耐心。直到我发现了SmartPDF,才明白原来一款纯粹的PDF阅读器可以如此轻巧高效。它像一把精准的手术刀,剔除了所有冗余功能,只留下最核心的阅读体验,却解决了日常使用中的诸多痛点。4.7M的体积,装得下所有阅读需求第一次看到SmartPDF的安装包时,我简直
- freertos 外设同步
is0815
stm32arm开发
是的,多个任务共享SPI、I2C、UART等外设时,通常必须加锁,否则会出现资源竞争、数据错乱、通信失败等问题。这是RTOS编程中常见的同步问题。为什么需要加锁?外设通常是共享资源,比如:SPI是一个总线,发送和接收过程是连续的,不能被中断打断;I2C通常只有一个控制器(master),多任务如果同时发起通信,会造成仲裁冲突;UART发送过程可能被打断,导致拼接成一条乱码。✅加锁的方法1.使用互斥
- TDengine 集群节点管理
TDengine (老段)
TDengineSQL手册tdengine数据库时序数据库大数据物联网iotdbiot
简介组成TDengine集群的物理实体是dnode(datanode的缩写),它是一个运行在操作系统之上的进程。在dnode中可以建立负责时序数据存储的vnode(virtualnode),在多节点集群环境下当某个数据库的replica为3时,该数据库中的每个vgroup由3个vnode组成;当数据库的replica为1时,该数据库中的每个vgroup由1个vnode组成。如果要想配置某个数据库为
- 84.7k Star!Excalidraw:开源的在线白板工具,具备手绘风格和实时协作功能
蚝油菜花
每日AI项目与应用实例人工智能开源画板实时协作
❤️如果你也关注大模型与AI的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的AI应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!微信公众号|搜一搜:蚝油菜花快速阅读Excalidraw是一款开源的在线白板工具,具备手绘风格和实时协作功能。支持多种绘图工具、便捷导出、离线可用及跨平台兼容性。适用于远程协作、头脑风暴、产品设计和技术绘图等多个场景。正文(附运行
- Python中什么时候需要返回值,什么时候不需要返回值???
似乎很简单
Python学习日记python开发语言
在Python中,函数是否需要返回值取决于它的设计目的和功能需求。需要返回值的情况计算结果需要被后续代码使用当函数的主要目的是计算或生成数据,且调用方需要这些结果时:defadd(a,b):returna+b#结果需要被其他代码使用total=add(3,5)#需要返回值需要传递状态或信息如果函数执行后需要告诉调用方是否成功、返回状态码或错误信息:defvalidate_input(input):
- Redis 实现同步锁
1、技术方案1.1、redis的基本命令1)SETNX命令(SETifNoteXists)语法:SETNXkeyvalue功能:当且仅当key不存在,将key的值设为value,并返回1;若给定的key已经存在,则SETNX不做任何动作,并返回0。2)expire命令语法:expireKEYseconds功能:设置key的过期时间。如果key已过期,将会被自动删除。3)DEL命令语法:DELkey
- 使用 p6spy,拦截到持久层执行的sql及参数
Peter-OK
一些问题p6spysql
声明:文章内容是自己使用后整理,大部分工具代码出自大牛,但因无法确认出处,故仅在此处由衷的对无私分享源代码的作者表示感谢与致敬!本人在拦截到sql的基础上加了分析功能和异常告警功能1、导入p6spy的jar包,如果是maven项目引入pomp6spyp6spy3.9.12、修改datasource数据源的driverClassName驱动和url地址为com.p6spy.engine.spy.P6
- C++系列(十):面向对象编程终极指南!从封装到多态,彻底掌握类与对象的核心奥秘
傅里叶的耶
C++语言系列(教程+实战)c++类和对象
引言面向对象编程(OOP)是现代软件开发的核心范式,C++通过封装、继承和多态三大特性提供了强大的面向对象能力。这些特性使代码更易维护、扩展和复用,是构建复杂系统的基石。本章将深入探讨C++类和对象的方方面面,从基础封装到高级多态应用,帮助您掌握面向对象编程的精髓。最后,如果大家喜欢我的创作风格,请大家多多关注up主,你们的支持就是我创作最大的动力!如果各位观众老爷觉得我哪些地方需要改进,请一定在
- DMA技术与音频数据的存储和播放
曹小满2579
Android基础音视频Android
基本概念采样率:每秒采集的采样点次数。如480000HZ,就是我们常见的48KHZ采样点(Sample):每一个采样点代表一个时间点的声音幅度值。对于立体声,每个采样点包含了两个声道(左声道,右声道)的数据。帧:一帧就是一个时刻采集的数据,如果音频是立体声则会产生2个采样点,如果是更复杂的比如5.1,则会产生更多的采样点。例如PCM数据是48KHZ,16bit的,立体声,则一秒的PCM数据有48K
- 稀缺工具,效率拉满!
在办公场景中,图像和文档是最常接触的两类文件类型。日常工作中经常需要对多个文件进行批量处理,如图片转文档、PDF文件空白页删除、PDF转双层、图片校正等操作。这些重复性操作如果逐个处理不但效率极低下,还可能出现错误,而利用批量操作工具。可以快速完成大量文件的批量操作;分享一款高效的文档、图片批量操作工具:图档批处理助手v1.2.1;图档批处理助手是一款专注于高效处理文档与图像批任务的轻量级工具,软
- RAG 之 Prompt 动态选择的三种方式
2301_79306982
promptragai
“如果我有5个prompt模板,我想只选择一个每次都自动五选一能做到吗怎么做?”完全可以做到。这在复杂的RAG或Agentic工作流中是一个非常普遍且关键的需求,通常被称为“条件路由(ConditionalRouting)”或“动态调度(DynamicDispatching)”。其核心思想是系统需要根据输入的上下文(Query)或其他中间状态,智能地判断哪一个Prompt模板最适合用于生成最终答案
- Redis队列
关于「把Redis当作队列来用是否合适」的问题。有些人表示赞成,他们认为Redis很轻量,用作队列很方便。也些人则反对,认为Redis会「丢」数据,最好还是用「专业」的队列中间件更稳妥。从最简单的开始:List队列首先,我们先从最简单的场景开始讲起。如果你的业务需求足够简单,想把Redis当作队列来使用,肯定最先想到的就是使用List这个数据类型。因为List底层的实现就是一个「链表」,在头部和尾
- Nginx中如何配置WebSocket代理?
m0_74824025
面试学习路线阿里巴巴nginxwebsocket运维
Nginx可以配置为WebSocket代理,将WebSocket连接从客户端转发到后端服务器。以下是如何在Nginx中配置WebSocket代理的详细步骤和示例配置。1.安装Nginx确保你已经安装了Nginx。如果没有安装,可以使用以下命令进行安装:sudoapt-getupdatesudoapt-getinstallnginx2.配置WebSocket代理编辑Nginx配置文件,通常位于/et
- SpringBoot AOP+注解 全局日志记录
xdscode
springbootjavaAOP
一、需求描述如何优雅地记录用户操作日志?网站后台,功能开发完成后,新增了一个需求,即需要记录用户的各种操作记录。由于是在开发后期,如果针对每一个功能都去添加一段记录日志的代码,工作量较大、代码侵入性太强,因此采用AOP+注解的方式实现。可读性大大提高,且便于维护和扩展。AOP:面向切面编程,在不修改现有逻辑代码的情况下,增强功能,恰好体现了spring的理念:无入侵式自定义注解:当被注解的方法执行
- Shusen Wang推荐系统学习 --召回 ItemCF
我.佛.糍.粑
学习深度学习人工智能推荐算法
学习b站up主ShusenWang的推荐系统基于物品的协同过滤(ItrmCF)中心思想就是,如果你喜欢a,b,c三件商品,d商品与abc相似,那么你也可能喜欢d商品对此就要计算物品的相似程度物品相似度物品相似度的思想是,一个物品的相同用户很多就意味着这两件物品是相似的sim(i1,i2):=∣V∣∣W1∣∣W2∣sim(i_{1},i_{2}):={\frac{\big|\mathcal{V}\b
- oracle批量插入优化,oracle批量插入优化方案
Eric Q
oracle批量插入优化
今天听DBA说如果从一个表批量查询出一批数据之后批量插入另外一张表的优化方案:1)不写归档日志;2)采用独占关于insert/*+append*/我们需要注意以下三点:a、非归档模式下,只需append就能大量减少redo的产生;归档模式下,只有append+nologging才能大量减少redo。b、insert/*+append*/时会对表加锁(排它锁),会阻塞表上的除了select以外所有D
- CentOS 7系统 设置MYSQL每天定时备份
AMING20220827
MySQLmysql数据库centos
目录一、MySQL定时备份数据设置定时定时任务脚本如果出现问题:"mysqldump:commandnotfound"备份MySQL数据库步骤二、连接MySQL一、MySQL定时备份数据设置定时定时任务脚本1.修改/etc/my.cnf文件#vim/etc/my.cnf增加本机、用户名、密码vim/etc/my.cnf[client]host=localhostuser=你的数据库用户passwo
- 如何解决小程序发布之后不能访问任何请求的问题?
嘉琪001
小程序apachephp
(1)域名白名单设置不正确:小程序需要在微信公众平台后台请求域名添加到request合法域名白名单中,否则无法发送请求,确保所有域名添加到白名单中服务器SSL/HTTPS配置问题:小程序要求必须使用HTTPS协议进行网络请求,如果服务器没有配置好SSL证书,就无法访问,跨域问题:在服务器配置好CORS的跨域策略接口权限限制:如果请求是像某个特定的接口发送,确保你在小程序后台设置了相应接口权限有些接
- Google Play上架审核问题解决指南:权限与功能声明篇
wzj_what_why_how
Android#Android——编译签名打包Android
这是《GooglePlayAndroid应用打包指南》的续篇。如果你还没看过基础的打包和上架流程,建议先阅读:GooglePlayAndroid应用打包指南相信很多Android开发者都有过这样的经历:应用打包完成,信心满满地提交到GooglePlay,结果没过多久就收到了审核被拒的邮件。别问我怎么知道的,问就是经验丰富…下面整理了几个GooglePlay审核中最容易踩坑的几个问题,适配设备为0,
- 神经网络初步学习3——数据与损失
X Y O
神经网络学习人工智能
一、传统机器学习与神经网络前言:该部分需要一定的机器学习与数学基础(很浅的基础),如果有不理解的地方可以自行查阅。(1)区别这里不妨以图像识别为例子:(1)在传统的机器学习视角中:我们需要人工手动去设置并提取我们的特征量,例如常见的SIFT、SURF和HOG等,随后需要我们选择合适的分类器(例如:SVM、KNN等分类器),接着把我们的参数训练出来。(2)而在神经网络的视角中:我们只需要把图片喂给它
- 初识.git文件泄露
wyjcxyyy
git
.git文件泄露当在一个空目录执行gitinit时,Git会创建一个.git目录。这个目录包含所有的Git存储和操作的对象。如果想备份或复制一个版本库,只需把这个目录拷贝至另一处就可以了这是一种常见的安全漏洞,指的是网站的.git目录被意外暴露在公网上,导致攻击者可以通过访问.git目录获取网站的源代码、版本历史、配置文件等敏感信息。这种漏洞通常是由于服务器配置不当或开发人员的疏忽导致的。如何检测
- brew java 切换_如何在Mac下配置多个Java版本
weixin_39904522
brewjava切换
说明使用工具:brewcaskbrewcask是一个用命令行管理Mac下应用的工具,提供了自动安装和卸载功能,能够自动从官网上下载并安装最新的版本,它是基于homebrew的一个增强工具。一.安装最新版的Java#如何没有安装brewcask。请执行$brewtapcaskroom/versions$brewcaskinstalljava二.安装其他版本的Java如果你需要安装其他的jdk(JDK
- 构建一个vue2的项目并安装echarts
啃火龙果的兔子
开发DEMOechartsjavascript前端
构建Vue2项目并安装ECharts5.2.2下面是从零开始构建Vue2项目并安装指定版本ECharts的完整步骤:1.创建Vue2项目#安装VueCLI(如果尚未安装)npminstall-g@vue/cli#创建Vue2项目vuecreatevue2-echarts-demo#选择Vue2预设#手动选择特性时确保选择Vue2.x2.进入项目目录并安装ECharts5.2.2cdvue2-ech
- 【macOS】【Swift】【RTF】黑色文字在macOS深色外观下看不清的解决方法
goodmao
macos
【macOS】【Swift】【RTF】黑色文字在macOS深色外观下看不清的解决方法遇到这个问题,Cursor高效率地忙乎了一个小时,给出了很多方案并做了修改,但都没生效。kimi还给出了:在深色外观下,将黑色文字转成白色;保存时,再反转的方法。我都感觉:不是我当前App所需要的效果。==========最后,找到很简单的方法,一行代码即可。当macOS的外观设置为深色时,RTF文件读取后,如果文
- LeetCode 393. UTF-8 编码验证
Sasakihaise_
LeetCodeleetcode模拟
题目链接:力扣https://leetcode-cn.com/problems/utf-8-validation/【模拟】先转为二进制,直接用Integer.toString(int,2)即可,然后不足八位的前面补0;接下来遍历,如果以‘0’开头直接不用管,如果以‘1’开头,则遍历这个字符串记录1的个数,如果是1或者>4则直接false,否则将t--(除去自身),然后继续遍历剩下的字符串,每当出现
- vue中如何关闭eslint
方案一:vue脚手架创建工程的时候,不要选择Linter/Formatter选项,(那如何选择启用,请参照方案二)方案二:如果已经选择了eslint,我们可以通过删包的方法来使他失效。在packge.json中,将devDependencies下的关于eslint的依赖包给删除掉。然后退出服务为,重新npmi,在重启服务即可。再次基础上,如果又想使用eslint了。就需要在重新将这几个包手动安装。
- Web 前端性能优化:从代码到加载速度的全面剖析
码力无边-OEC
前端性能优化web
Web前端性能优化:从代码到加载速度的全面剖析当用户访问你的网站时,如果页面加载时间超过3秒,跳出率会飙升至40%以上。更糟糕的是,移动端用户的耐心只有2秒。这意味着性能优化不仅仅是技术问题,更直接关系到业务成果。经过多年的前端开发实践,我发现很多开发者在性能优化时存在一个误区:过分关注工具和框架的选择,却忽略了最基础但最关键的优化策略。今天我们就来深入剖析前端性能优化的核心要点。性能优化的核心指
- jvm调优总结(从基本概念 到 深度优化)
oloz
javajvmjdk虚拟机应用服务器
JVM参数详解:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
- 【Scala十六】Scala核心十:柯里化函数
bit1129
scala
本篇文章重点说明什么是函数柯里化,这个语法现象的背后动机是什么,有什么样的应用场景,以及与部分应用函数(Partial Applied Function)之间的联系 1. 什么是柯里化函数
A way to write functions with multiple parameter lists. For instance
def f(x: Int)(y: Int) is a
- HashMap
dalan_123
java
HashMap在java中对很多人来说都是熟的;基于hash表的map接口的非同步实现。允许使用null和null键;同时不能保证元素的顺序;也就是从来都不保证其中的元素的顺序恒久不变。
1、数据结构
在java中,最基本的数据结构无外乎:数组 和 引用(指针),所有的数据结构都可以用这两个来构造,HashMap也不例外,归根到底HashMap就是一个链表散列的数据
- Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
周凡杨
java更新swingJTextArea
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现
- servlet或struts的Action处理ajax请求
g21121
servlet
其实处理ajax的请求非常简单,直接看代码就行了:
//如果用的是struts
//HttpServletResponse response = ServletActionContext.getResponse();
// 设置输出为文字流
response.setContentType("text/plain");
// 设置字符集
res
- FineReport的公式编辑框的语法简介
老A不折腾
finereport公式总结
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式。
简单的说下自己感觉的公式要注意的几个地方:
1.if语句语法刚接触感觉比较奇怪,if(条件式子,值1,值2),if可以嵌套,if(条件式子1,值1,if(条件式子2,值2,值3)
- linux mysql 数据库乱码的解决办法
墙头上一根草
linuxmysql数据库乱码
linux 上mysql数据库区分大小写的配置
lower_case_table_names=1 1-不区分大小写 0-区分大小写
修改/etc/my.cnf 具体的修改内容如下:
[client]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/va
- 我的spring学习笔记6-ApplicationContext实例化的参数兼容思想
aijuans
Spring 3
ApplicationContext能读取多个Bean定义文件,方法是:
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[]{“bean-config1.xml”,“bean-config2.xml”,“bean-config3.xml”,“bean-config4.xml
- mysql 基准测试之sysbench
annan211
基准测试mysql基准测试MySQL测试sysbench
1 执行如下命令,安装sysbench-0.5:
tar xzvf sysbench-0.5.tar.gz
cd sysbench-0.5
chmod +x autogen.sh
./autogen.sh
./configure --with-mysql --with-mysql-includes=/usr/local/mysql
- sql的复杂查询使用案列与技巧
百合不是茶
oraclesql函数数据分页合并查询
本片博客使用的数据库表是oracle中的scott用户表;
------------------- 自然连接查询
查询 smith 的上司(两种方法)
&
- 深入学习Thread类
bijian1013
javathread多线程java多线程
一. 线程的名字
下面来看一下Thread类的name属性,它的类型是String。它其实就是线程的名字。在Thread类中,有String getName()和void setName(String)两个方法用来设置和获取这个属性的值。
同时,Thr
- JSON串转换成Map以及如何转换到对应的数据类型
bijian1013
javafastjsonnet.sf.json
在实际开发中,难免会碰到JSON串转换成Map的情况,下面来看看这方面的实例。另外,由于fastjson只支持JDK1.5及以上版本,因此在JDK1.4的项目中可以采用net.sf.json来处理。
一.fastjson实例
JsonUtil.java
package com.study;
impor
- 【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架
bit1129
spring
HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
在
【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中
- 【Mahout二】基于Mahout CBayes算法的20newsgroup的脚本分析
bit1129
Mahout
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information re
- nginx三种获取用户真实ip的方法
ronin47
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户的真实IP地址,如果后端是apache,请跳转到<apache获取用户真实IP地址>,如果是后端真实服务器是nginx,那么继续往下看。
实例环境: 用户IP 120.22.11.11
- java-判断二叉树是不是平衡
bylijinnan
java
参考了
http://zhedahht.blog.163.com/blog/static/25411174201142733927831/
但是用java来实现有一个问题。
由于Java无法像C那样“传递参数的地址,函数返回时能得到参数的值”,唯有新建一个辅助类:AuxClass
import ljn.help.*;
public class BalancedBTree {
- BeanUtils.copyProperties VS PropertyUtils.copyProperties
诸葛不亮
PropertyUtilsBeanUtils
BeanUtils.copyProperties VS PropertyUtils.copyProperties
作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业
- [金融与信息安全]最简单的数据结构最安全
comsci
数据结构
现在最流行的数据库的数据存储文件都具有复杂的文件头格式,用操作系统的记事本软件是无法正常浏览的,这样的情况会有什么问题呢?
从信息安全的角度来看,如果我们数据库系统仅仅把这种格式的数据文件做异地备份,如果相同版本的所有数据库管理系统都同时被攻击,那么
- vi区段删除
Cwind
linuxvi区段删除
区段删除是编辑和分析一些冗长的配置文件或日志文件时比较常用的操作。简记下vi区段删除要点备忘。
vi概述
引文中并未将末行模式单独列为一种模式。单不单列并不重要,能区分命令模式与末行模式即可。
vi区段删除步骤:
1. 在末行模式下使用:set nu显示行号
非必须,随光标移动vi右下角也会显示行号,能够正确找到并记录删除开始行
- 清除tomcat缓存的方法总结
dashuaifu
tomcat缓存
用tomcat容器,大家可能会发现这样的问题,修改jsp文件后,但用IE打开 依然是以前的Jsp的页面。
出现这种现象的原因主要是tomcat缓存的原因。
解决办法如下:
在jsp文件头加上
<meta http-equiv="Expires" content="0"> <meta http-equiv="kiben&qu
- 不要盲目的在项目中使用LESS CSS
dcj3sjt126com
Webless
如果你还不知道LESS CSS是什么东西,可以看一下这篇文章,是我一朋友写给新人看的《CSS——LESS》
不可否认,LESS CSS是个强大的工具,它弥补了css没有变量、无法运算等一些“先天缺陷”,但它似乎给我一种错觉,就是为了功能而实现功能。
比如它的引用功能
?
.rounded_corners{
- [入门]更上一层楼
dcj3sjt126com
PHPyii2
更上一层楼
通篇阅读完整个“入门”部分,你就完成了一个完整 Yii 应用的创建。在此过程中你学到了如何实现一些常用功能,例如通过 HTML 表单从用户那获取数据,从数据库中获取数据并以分页形式显示。你还学到了如何通过 Gii 去自动生成代码。使用 Gii 生成代码把 Web 开发中多数繁杂的过程转化为仅仅填写几个表单就行。
本章将介绍一些有助于更好使用 Yii 的资源:
- Apache HttpClient使用详解
eksliang
httpclienthttp协议
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会
- zxing二维码扫描功能
gundumw100
androidzxing
经常要用到二维码扫描功能
现给出示例代码
import com.google.zxing.WriterException;
import com.zxing.activity.CaptureActivity;
import com.zxing.encoding.EncodingHandler;
import android.app.Activity;
import an
- 纯HTML+CSS带说明的黄色导航菜单
ini
htmlWebhtml5csshovertree
HoverTree带说明的CSS菜单:纯HTML+CSS结构链接带说明的黄色导航
在线体验效果:http://hovertree.com/texiao/css/1.htm代码如下,保存到HTML文件可以看到效果:
<!DOCTYPE html >
<html >
<head>
<title>HoverTree
- fastjson初始化对性能的影响
kane_xie
fastjson序列化
之前在项目中序列化是用thrift,性能一般,而且需要用编译器生成新的类,在序列化和反序列化的时候感觉很繁琐,因此想转到json阵营。对比了jackson,gson等框架之后,决定用fastjson,为什么呢,因为看名字感觉很快。。。
网上的说法:
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。
- 基于Mybatis封装的增删改查实现通用自动化sql
mengqingyu
DAO
1.基于map或javaBean的增删改查可实现不写dao接口和实现类以及xml,有效的提高开发速度。
2.支持自定义注解包括主键生成、列重复验证、列名、表名等
3.支持批量插入、批量更新、批量删除
<bean id="dynamicSqlSessionTemplate" class="com.mqy.mybatis.support.Dynamic
- js控制input输入框的方法封装(数字,中文,字母,浮点数等)
qifeifei
javascript js
在项目开发的时候,经常有一些输入框,控制输入的格式,而不是等输入好了再去检查格式,格式错了就报错,体验不好。 /** 数字,中文,字母,浮点数(+/-/.) 类型输入限制,只要在input标签上加上 jInput="number,chinese,alphabet,floating" 备注:floating属性只能单独用*/
funct
- java 计时器应用
tangqi609567707
javatimer
mport java.util.TimerTask; import java.util.Calendar; public class MyTask extends TimerTask { private static final int
- erlang输出调用栈信息
wudixiaotie
erlang
在erlang otp的开发中,如果调用第三方的应用,会有有些错误会不打印栈信息,因为有可能第三方应用会catch然后输出自己的错误信息,所以对排查bug有很大的阻碍,这样就要求我们自己打印调用的栈信息。用这个函数:erlang:process_display (self (), backtrace).需要注意这个函数只会输出到标准错误输出。
也可以用这个函数:erlang:get_s