- ESP32-s3开发板按键中断处理详解 - 从零开始实现Boot按键功能
ESP32-s3开发板按键中断处理详解-从零开始实现Boot按键功能前言各位小伙伴们好!今天给大家带来一篇ESP32开发板上按键中断处理的干货教程。在嵌入式开发中,按键是最基础但也最常用的输入方式,掌握了按键中断的处理,你就能实现更加灵活的人机交互功能。本文将带你一步步实现ESP32开发板上Boot按键的中断检测功能,希望能对你的项目开发有所帮助!目录开发环境准备按键硬件介绍官方示例代码运行从零创
- 深入理解STM32的Cortex-M内核:从架构到寄存器的全面解析
景彡先生
STM32stm32架构嵌入式硬件
前言:为什么要学习Cortex-M内核?在嵌入式开发领域,STM32系列微控制器凭借其高性能、低功耗和丰富的外设支持,成为了众多开发者的首选平台。而STM32的强大性能,很大程度上得益于其采用的ARMCortex-M系列内核。无论是基础的GPIO操作,还是复杂的DSP算法,都离不开内核的支持。对于STM32开发者来说,仅仅掌握外设的使用是远远不够的。深入理解Cortex-M内核的架构和工作原理,能
- ThreadX 配置入门:CubeMX下的关键参数全解
初生牛犊不怕苦
c语言
本文目标受众:有FreeRTOS或裸机基础的嵌入式开发人员初次接触ThreadX的开发者希望基于STM32+ThreadX构建可维护项目的工程师目录内核配置软件定时器Timer配置配置建议总结后续开发注意事项你是否在使用STM32的ThreadX时,遇到过任务莫名卡死、系统异常重启、资源调度失控的情况?很可能是你在配置ThreadX参数时忽略了这些关键细节!今天我们就基于STM32CubeMX+T
- 【速成速通】嵌入式软硬件学习路径:从 0 到实战的知识图谱
Hy行者勇哥
#硬件知识学习物联网嵌入式硬件嵌入式实时数据库
核心摘要本路径以"实战用驱动学习"为原则,24周即可掌握嵌入式开发核心能力。通过"硬件基础→编程入门→外设实战→系统进阶→项目落地"五阶段递进,覆盖80%常用知识点,规避90%冗余内容,适合零基础小白快速上手。一、硬件基础层(1-4周):看懂电路,玩转元件1.电子元件通识(1周)核心元件:电阻(色环读数)、电容(极性判断)、二极管(正向导通)、三极管(开关作用)、LED(限流电阻计算)模块认知:电
- 代码改到崩溃?嵌入式开发的“乐高式”设计,让你少掉一半头发!
宋一平工作室
单片机嵌入式硬件c语言物联网stm32
代码改到崩溃?嵌入式开发的“乐高式”设计,让你少掉一半头发!你有没有过这种经历?嵌入式代码写着写着就成了“一团乱麻”:改个传感器逻辑,结果通信模块突然罢工;加个新功能,整个系统响应速度慢了一半;团队里两个人同时改代码,合并时冲突到想掀桌子——如果你点头如捣蒜,那多半是没搞懂“模块化设计”这个救星。啥是模块化?就是给代码“搭乐高”说白了,模块化设计就是把复杂的嵌入式系统,拆成一个个像乐高积木一样的“
- STM32裸机开发基础:寄存器直接操作详解
SuperMale-zxq
微服务嵌入式硬件stm32单片机软件工程
##我的个人网站『摸鱼网站』『摸鱼游戏』STM32裸机开发基础:寄存器直接操作详解文章导览:本文将深入解析STM32裸机开发中的寄存器直接操作技术,从基础概念到高级应用,帮助读者掌握不依赖库函数的底层开发能力。文章包含详细的寄存器操作原理、实用技巧、常见陷阱及其解决方案,并提供针对不同经验水平开发者的实践路径。为什么要学习寄存器直接操作?⚡在一个被各种库函数和抽象层层层包裹的嵌入式开发世界里,为什
- STM32 IAP升级失败之谜:时钟源配置的陷阱与解决方案
朽木自雕i
《单片机项目实战》系列《STM32》系列stm32嵌入式硬件单片机
问题背景在嵌入式开发中,IAP(In-ApplicationProgramming)技术是实现固件远程升级的关键。最近我在一个STM32项目中遇到了一个令人困惑的问题:相同的芯片、相同的硬件设计、相同的bootloader和应用程序代码,在一块板子上IAP升级正常,但在另一块板子上却完全失败。经过深入排查,最终发现问题根源在于bootloader程序中使用的时钟源配置。问题现象❌大多数板卡不能正常
- YTM32B1M 外设SDK学习笔记
VehSwHwDeveloper
学习YTM32B1M
引言:解锁嵌入式开发的密码在嵌入式系统开发的浩瀚海洋中,微控制器SDK如同一座座灯塔,指引着开发者前行的方向。YTM32B1M作为云途半导体精心打造的高性能32位微控制器,其SDK蕴含着丰富的外设驱动和强大的功能模块。然而,面对数十个驱动文件和成千上万行代码,许多开发者往往望而却步,或是浅尝辄止。本系列学习笔记将带您深入YTM32B1MSDK的内核,逐一解析每个驱动模块的设计理念、实现原理和应用技
- 函数调用栈回溯机制详解
硬核科技
嵌入式单片机开发实战嵌入式嵌入式硬件软件单片机
函数调用回溯Backtrace是现代软件系统调试中的关键技术之一,尤其在嵌入式开发和Linux平台调试中更显重要。它提供了程序在运行或崩溃时的函数调用路径,有助于快速定位错误源。一、函数调用栈与Backtrace的理论基础1.1什么是函数调用栈?函数调用栈(CallStack)是一种由编译器和运行时系统共同维护的后进先出(LIFO)数据结构。每次函数调用时,当前函数的返回地址、局部变量、保存的寄存
- 嵌入式开发
王明列
zynqfpga开发
逻辑开发与软件开发,皆为高度专业化的技术领域,能在两者之间自由穿梭、解决复杂问题的工程师,凤毛麟角。然而,“精通”本身并无边界。在实际工程中,无论是算法实现、高速接口,还是雷达系统、电机控制,每一个方向都深邃如海,足以让人终身钻研。真正重要的,从来不是“掌握一切”,而是在关键问题域中,构建起可闭环的解决路径,持续迭代,稳步积累。因为:再庞大的系统,也由一个个“可掌握的知识点”组成;再高的门槛,也能
- OpenHarmony外设驱动移植指南
你我皆是牛马星人
鸿蒙开发HarmonyOSOpenHarmonyharmonyosOpenHarmony鸿蒙开发源码分析迁移学习嵌入式硬件驱动开发
往期推文全新看点(文中附带最新·鸿蒙全栈学习笔记)鸿蒙(HarmonyOS)北向开发知识点记录~鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……外设驱动子
- 【OpenHarmony】鸿蒙开发:轻量系统服务管理|存储机制详解(一)
你我皆是牛马星人
HarmonyOS鸿蒙开发OpenHarmonyharmonyos鸿蒙开发OpenHarmony嵌入式硬件SAStore模块物联网
往期推文全新看点(文中附带最新·鸿蒙全栈学习笔记)鸿蒙(HarmonyOS)北向开发知识点记录~鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~鸿蒙应用开发与鸿蒙系统开发哪个更有前景?嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~对于大前端开发来说,转鸿蒙开发究竟是福还是祸?鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?记录一场鸿蒙开发岗位面试经历~持续更新中……一、前言本
- C++入门教程笔记·基本语法数据类型
编写不易,请勿搬运嵌入式开发学C++有必要嘛首先嵌入式开发的常用工具,keil5,Vscode,Esp-idf三个编译工具中都是支持C++语言的,也就是说常见芯片种类ST、ESP、等芯片类型都能够使用C++进行开发,同时在公司工程中,对于使用C++开发的工程对于项目的后续维护,改版都是需要懂C++的,所以能看懂C++,学好C++非常有必要。同时在ST开发的hal库中的函数驱动底层抽象库中,都是使用
- 【嵌入式开发——ARM】2ARM汇编指令
芒果柚
arm开发汇编c语言嵌入式硬件
intel和ARM公司都有自己的指令集,也就是说对应的汇编格式是不同的,不过好在目前基本很少在汇编语言层面编程了,最次也是在C语言级编程,要不说C语言是高级语言呢,很多人觉得难,无非是指针觉得头疼,但其实指针是个极其好用而且不难的工具,其本质就是地址,这也帮助C语言天然契合嵌入式,对指针有困惑的同学,可以翻看我之前的博客,专门有一篇介绍指针。虽然我们编程用的是C语言,实际在编译代码时,最终还是要先
- 从零开始学 Linux:循序渐进的学习指南
我爱学嵌入式
Linux基础linux服务器
Linux作为一款开源、稳定且安全的操作系统,在服务器领域、嵌入式开发、云计算等场景中占据着举足轻重的地位。对于程序员、运维工程师或IT爱好者而言,掌握Linux技能已成为一项核心竞争力。但面对命令行界面和复杂的系统架构,很多初学者往往感到无从下手。本文将为你梳理一条清晰的Linux学习路径,助你从入门到精通。一、明确学习目标:为什么学Linux?学习Linux前需明确目标,不同目标对应不同的学习
- 【亲测免费】 CAN总线嵌入式开发——从入门到实践:开启智能通信新篇章
邴洁沫Edna
CAN总线嵌入式开发——从入门到实践:开启智能通信新篇章去发现同类优质开源项目:https://gitcode.com/项目介绍在现代嵌入式系统中,CAN(ControllerAreaNetwork)总线技术因其高效、可靠的通信能力而备受青睐。为了帮助广大开发者、电子工程师以及对CAN总线技术感兴趣的学生和研究人员更好地掌握这一技术,我们推出了“CAN总线嵌入式开发——从入门到实践”项目。本项目不
- 关于字符编辑器vi、vim版本的安装过程及其常用命令:
DIY机器人工房
编辑器vimlinux嵌入式硬件DIY机器人工房stm32单片机
1.编辑器1.1图形编辑器平时常见的编辑器都是图形编辑器,比如记事本、notepad、office、wps等,图形编辑器的意思就是这些编辑器带有图形界面,有菜单选项。比如最简单的Windows的记事本:记事本当然,编程时不可能使用记事本来写代码,常用的专业编程IDE有vsCode、qtCreator等,常用的专业编辑器有sumlime、notepad++、vim等,它们各有所长。其中,在嵌入式开发
- 暑期自学嵌入式——Day03(C语言阶段)
一位搞嵌入式的 genius
嵌入式自学专栏c语言开发语言linux嵌入式C语言
个人主页:一位搞嵌入式的genius-CSDN博客https://blog.csdn.net/m0_73589512?spm=1010.2135.3001.5343点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!目录Day03:输入输出(上)Day03→嵌入式开发输入输出(上)知识纲要数据输出1)C语言IO特性2)字符输出函数(putchar)例题:putchar函数应用3)编
- 嵌入式单片机开发实战指南: 从RISC-V到TinyML全栈技术
CodeMicro
单片机单片机risc-v嵌入式硬件
前言:嵌入式单片机的2025年技术浪潮2025年,嵌入式系统正经历开源架构与边缘智能的双重革命。RISC-V指令集打破ARM垄断,国产芯片如兆易创新GD32VF103、先楫HPM6750实现工业级可靠性;TinyML技术让STM32L4系列在1MB内存下运行神经网络;低功耗设计使物联网节点电池寿命突破10年。本文将从架构选型→开发环境→核心技术→实战项目,全方位拆解嵌入式开发的热门技术,带你从入门
- STM32 USB开发详解:CDC虚拟串口与HID键盘鼠标(基于CubeUSB库)
景彡先生
STM32stm32计算机外设嵌入式硬件
前言:STM32的USB功能为何重要?在嵌入式开发中,设备与外界通信的方式多种多样(UART、SPI、I2C等),但USB凭借"即插即用"、"高速传输"和"供电能力"三大优势,成为设备与PC/手机通信的首选方案。STM32大部分中高端型号(如F103C8T6、F407IGH6、L431RCT6等)都集成了USB外设,支持从机、主机或OTG模式,可实现虚拟串口、键盘、鼠标等多种功能。本文聚焦STM3
- 【C++基础】内存对齐原则与性能影响:面试高频考点与真题解析
byte轻骑兵
#C++深度探索与实战专栏面试职场和发展
在计算机系统中,内存对齐是影响程序性能和跨平台兼容性的重要因素。无论是校招还是社招,内存对齐相关问题几乎是C/C++、嵌入式开发、操作系统等岗位的必考题。掌握内存对齐的原理和应用,不仅能应对面试,更是理解现代计算机体系结构的关键。一、内存对齐的基本概念1.1什么是内存对齐?内存对齐是指数据在内存中存储时,其起始地址必须是某个特定值(通常是数据类型大小的倍数)。例如,4字节的int类型变量应存储在4
- OpenHarmony解读之设备认证:解密流程全揭秘
陈乔布斯
HarmonyOS鸿蒙开发OpenHarmonyharmonyosopenHarmony嵌入式硬件鸿蒙开发respons
往期推文全新看点(文中附带最新·鸿蒙全栈学习笔记)①鸿蒙应用开发与鸿蒙系统开发哪个更有前景?②嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~③对于大前端开发来说,转鸿蒙开发究竟是福还是祸?④鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?⑤记录一场鸿蒙开发岗位面试经历~⑥持续更新中……一、概述本文重点介绍客户端收到end响应消息之后的处理过程。二、源码分析这一模块的源码位于:/bas
- 【第三十二天】STM32 平台全景解析与型号选择实战指南
观熵
每日一练:嵌入式C++开发365天stm32嵌入式硬件单片机学习C++
STM32平台全景解析与型号选择实战指南关键词:STM32、MCU选型、STM32F1、STM32G4、STM32H7、Flash/RAM、外设资源、封装选型、低功耗方案、嵌入式平台摘要:STM32系列是目前嵌入式开发中应用最广泛的ARMCortex-M微控制器平台之一,覆盖从入门级控制器到高性能边缘处理器的多种应用场景。本文从STM32的平台分类、架构演进、性能指标、外设组合、功耗管理等角度展开
- C语言的一课一得
awanj
c语言java开发语言
第一课:C语言基础环境搭建与第一个程序收获知识:了解了C语言的发展历程和广泛应用领域,知晓其在系统软件、嵌入式开发等多方面的重要性。掌握了C语言开发环境的搭建,如安装VisualStudioCode并配置MinGW编译器,或使用其他常见的集成开发环境(IDE),如Dev-C++等,为后续代码编写奠定基础。学会编写并成功运行第一个C语言程序“Hello,World!”,理解了main函数作为程序入口
- 嵌入式C语言中 `volatile` 的作用你真的懂吗?
欢乐熊嵌入式编程
c语言开发语言嵌入式开发嵌入式学习
“嵌入式C语言中volatile的作用你真的懂吗?”“有一天你调试到秃头,才发现变量少了个volatile。”——《嵌入式开发者的崩溃瞬间·第147集》一、volatile是什么?它和我调试卡死有啥关系?在你埋头写中断、轮询、寄存器驱动代码时,如果出现了:死循环出不来变量明明改了却没反应外设数据怎么读都是旧值恭喜你,可能又踩中了嵌入式三大毒瘤之一:忘写volatile。简单说:volatile是C
- ESP32设备驱动——使用I2S播放音频的物联网应用
JmwvOverflow
音视频物联网
在物联网应用中,使用嵌入式设备进行音频播放是一个常见的需求。ESP32是一款功能强大的嵌入式开发板,它集成了Wi-Fi和蓝牙功能,适用于物联网应用。本文将介绍如何在ESP32上使用I2S(Inter-ICSound)接口来播放音频。I2S是一种串行音频接口,用于高质量音频数据的传输。ESP32的I2S接口可以直接与音频编解码器、数字信号处理器(DSP)等设备连接,实现音频的输入和输出。下面我们将逐
- OpenHarmony实战—— 自定义构建函数:@Builder装饰器
我命油我不有天
HarmonyOSOpenHarmony鸿蒙开发harmonyosopenHarmony鸿蒙开发ArkUI物联网装饰器构建函数
往期推文全新看点(文中附带最新·鸿蒙全栈笔记)1️⃣鸿蒙(HarmonyOS)北向开发知识点记录~2️⃣鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~3️⃣鸿蒙应用开发与鸿蒙系统开发哪个更有前景?4️⃣嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~5️⃣对于大前端开发来说,转鸿蒙开发究竟是福还是祸?6️⃣鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?7️⃣记录一场鸿蒙开发
- 嵌入式C语言中void*的妙用与实战
隐身模式
C/C++c语言开发语言
嵌入式C语言中void*的工程应用详解在嵌入式开发中,void*指针无处不在,理解它的使用场景和注意事项,是写好通用接口和系统模块的关键。目录嵌入式C语言中`void*`的工程应用详解✳️一、什么是`void*`二、典型应用场景1.通用参数传递2.通用回调机制3.通用数据结构(链表、队列)4.封装模块接口(如SDK、HAL)⚠️三、使用`void*`的注意事项✅建议实践:四、实战案例:事件处理机制
- 位运算符详解
在C语言中,位运算符(BitwiseOperators)用于对整数类型(如int,unsignedint,long,char等)的二进制位进行操作。这些操作比算术运算更底层,常用于嵌入式开发、驱动开发、图像处理、网络协议、加密等场景。下面是C语言中所有的位运算符及其详解:一、位运算符列表运算符名称功能说明&位与(AND)两个二进制位都为1,结果才为1``位或(OR)^位异或(XOR)两个二进制位不
- 鸿蒙生态下的全能开发板:SC-3568HA如何解决多场景硬件开发痛点?
ShiMetaPi
鸿蒙系统OpenHarmony鸿蒙开发板SC-3568HARK3568树莓派嵌入式硬件
一、行业痛点分析1.1硬件碎片化兼容难题传统嵌入式开发中,不同硬件设备(摄像头、传感器、Wi-Fi模块)需要针对不同开发板重复适配驱动,导致开发周期长、维护成本高。鸿蒙优势:基于OpenHarmony统一内核抽象层(KAL)和硬件驱动框架(HDF),实现驱动标准化。硬件厂商只需基于统一接口开发,驱动即可跨设备复用,开发者调用统一API,无需关心底层差异。例:HDF驱动框架支持快速注册和加载摄像头驱
- 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