- 嵌入式面试真题——上半部与下半部
70000cc
嵌入式面试真题面试单片机linuxc语言嵌入式硬件
软中断运行在中断上下文,它是静态分配的,内核编译时就已经确定,不能动态注册或删除。这限制了它们的灵活性,但提高了性能。软中断可以在多个CPU上并行运行,包括同一种类型的软中断,所以需要处理好同步问题,比如使用自旋锁。不过,软中断的代码必须是可以重入的,这增加了实现的复杂性。常见的应用例子是网络和块设备的数据处理。Tasklet也是在中断上下文中运行,它是在软中断的基础上构建的。比如,tasklet
- Linux 内核移植
River-D
Driver
NXP官方开发板Linux内核编译37.2.1修改顶层Makefile修改顶层Makefile,直接在顶层Makefile文件里面定义ARCH和CROSS_COMPILE这两个的变量值为arm和arm-linux-gnueabihf-37.2.2配置并编译Linux内核和uboot一样,在编译Linux内核之前要先配置Linux内核。每个板子都有其对应的默认配置文件,这些默认配置文件保存在arch
- Android构建系统 - 03 编译执行流程
Mr.pyZhang
构建系统androidlinux
文章目录执行编译Linux内核编译make编译系统选择编译命令makem..makemmmmma...其他命令代码搜索导航指令makeclean/update-apiMakefile分类解析过程树根节点droid`/Makefile``main.mk``droid`droidcore节点.imgfilesmodules_to_install`INSTALLED_ANDROID_INFO_TXT_T
- 内核编译及安装步骤
蓝色的夏天qy
简介Linux内核是操作系统的核心,也是操作系统最基本的部分。Linux内核的体积结构是单内核的、但是他充分采用了微内核的设计思想、使得虽然是单内核、但工作在模块化的方式下、并且这个模块可以动态装载或卸载;Linux负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。如是我们在了解Linux内核的基础上根据自己的需要、量身定制一个更高效,更稳定的内核,就需要我们手动去
- 一文了解riscv软件系列之linux内核编译运行
Linux加油站
linux服务器运维
一、交叉编译工具链的安装【推荐阅读文章】代码大佬的【Linux内核开发笔记】分享,前人栽树后人乘凉!一篇长文叙述Linux内核虚拟地址空间的基本概括一文了解Linux内核的Oops需要多久才能看完linux内核源码?详细讲解磁盘及文件系统管理(图例解析)交叉编译工具链可以通过源码进行编译安装:1.下载工具链源码:该仓库包含多个submodules,因此需要添加--recursive选项来下载所有子
- linux4.0内核编译步骤,Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译过程(2) -Go语言中文社区...
Up酱彡
linux4.0内核编译步骤
前面因为博客园维修,所以内核编译过程一直没有发出来,现在把整个内核过程分享出来。本随笔给出内核的编译实现过程,在编译前需要参照我前面一篇随笔:Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译前准备(1):https://www.cnblogs.com/iFrank/p/14556664.html切记:注意一点需要参照前一篇随笔,不然编译过程十有八九出问题。开发环境Ub
- 手把手教你Linux内核编译:从零开始编写
深度Linux
C/C++全栈开发操作系统linux内存管理内核编译
在计算机技术的广袤星空中,Linux内核宛如一颗最为璀璨而神秘的巨星,散发着无尽的魅力与诱惑。它是操作系统的心脏,掌控着计算机系统的一切核心资源与底层运作。如今,我们即将踏上一场激动人心的冒险之旅——一步步解锁Linux内核,开启从零开始的编程征程。一、简介Linux内核作为操作系统的核心,其魅力在于多方面。首先,它负责资源管理和设备驱动等重要任务。学习Linux内核编程,能够让开发者深入了解操作
- 13_Linux内核配置选项
Leon_George
带你学习Linux系统移植linuxLinux内核编译时配置
内核配置选项内核配置通常是对内核支持的各个功能进行取舍配置,将配置的方案保存到configure文件中。在编译内核的时候,就会根据此配置对内核进行取舍编译。编译内核之前要先配置。为了正确、合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,主要有以下4个方面需要考虑:小尺寸。自己定制内核可以使代码尺寸减小,运行将会更快。省内存。由于内核部分代码永远占用物理内存,定制内核可以使系统拥有更多的
- zynq 编译过程
法号:行颠
Linuxlinux
zynq编译过程zynq编译过程配置硬件生成BOOT.BIN生成boot.scr设备树文件编译内核设备树配置内核编译编译根文件系统配置编译在`SD`卡上生成根文件系统制作SD启动卡参考文档zynq编译过程最近在做zynq的驱动开发,学习了一下zynq的编译过程。在petalinux工程中进行配置硬件sptl//设置petalinux工作环境petalinux-create-tproject--te
- Linux内核编译出来的Image文件解析
物随心转
嵌入式开发linux
一、内核镜像image介绍Image:是在Linux内核编译时,使用objcopy去掉vmlinux中的一些符号表等信息后,生成的仅包含可执行二进制数据的内核镜像。Image是一个可引导的内核镜像文件,它包含了Linux内核和一些启动参数,所以可直接引导Linux启动。不过Image没有经过压缩(itisUncompressedkernelimage)因此也比较大在很多下,我们需要构造自定义的Li
- zybo上运行linux,Zybo开发板linux作业系统移植
周行文
zybo上运行linux
文章主要介紹zyboboard上linux作业系统移植过程。分别介绍了开发环境搭建、U-boot编译、linux内核编译、busybox制作等流程及注意事项。文章使用的开发板是zynq7000系列的zyboboard。Vivado版本是2015.1.主机系统是Debian9.1.开发环境搭建工欲善其事必先利其器,做开发前搭建好编译环境是重要的一步,这些步骤大体上都相同,然而对于不同的系统平台、硬件
- Linux外设接口使用及内核驱动开发---Ubuntu搭建Linux内核开发环境
Jason.rr
linuxubuntu驱动开发
文章目录前言一、安装依赖二、下载Linux内核源代码1.从Github下载2.从官网下载三、编译安装内核配置内核编译安装内核/模块:选用内核四、内核驱动例子前言进行Linux嵌入式系统开发时,如果还没有嵌入式系统的开发环境,可以先基于PC机Ubuntu系统进行开发.第一步就需要搭建内核开发环境.一、安装依赖sudoapt-getupdatesudoapt-getinstallbuild-essen
- ubuntu linux kernel内核操作
谭长友
LinuxKerneldeveloplinux
替换linux内核实验步骤(在root权限下进行)1.内核编译前的准备工作2.下载内核4.编译新内核5.内核安装6.安装模块7.生成initrd.img文件8.切换到/boot/grub/目录下,自动查找新内核,并添加至grub引导9.重启Ubantu,在previousversion中选择启动新编译的内核实验环境VMware虚拟机Ubantu20.04,Linux5.8.1内核源代码包实验步骤(
- linux使用内核编译其中一个模块
唐维康
linux服务器arm
内核有一个模块未编译,如mpt3sas,需要自己编译加载进去查看Makefile看到$号后面的变量,我的是CONFIG_SCSI_MPT3SAScd**/mpt3sasvimMakefile编译需要切换到sas驱动目录:cd**/mpt3sasmakeARCH=arm64CROSS_COMPILE=aarch64-linux-gnu-CONFIG_SCSI_MPT3SAS=m-C/home/twk
- Linux第47步_安装支持linux的第三方库和mkimage工具
LaoZhangGong123
产品研发linux服务器经验分享STM32
安装支持linux的第三方库和mkimage工具,做好移植前的准备工作。编译linux内核之前,需要先在ubuntu上安装“lzop库”和“libssl-dev库”,否则内核编译会失败。mkimage工具会在zImage镜像文件的前面添加0x40个字节的头部信息,就可以得到uImage镜像文件。因此,需要安装mkimage工具。1、打开终端输入“sudoapt-getupdate回车”,在安装前,
- system.map文件
zixiang_w
开发语言linux
概述system.map文件记录了所有符号(函数名和变量)的运行地址,帮助我们理解内核编译。每次编译内核都会生成新的system.map文件。作用对于计算机而言,只认识0和1,没有符号的概念,但是我们更容易理解函数名这样的符号,因此system文件就是计算机和人类在理解程序中的桥梁。当程序报错的时候,计算机会在堆栈信息里保存出错的内存地址,但是我们单看内存地址是无法知道哪里出了错误,于是就可以通过
- linux内核编译太慢,现在的linux内核编译太简单了:linux kernel2.6.36.2编译手记
A学历提升黄老师
linux内核编译太慢
先show一下新内核:[feng@fsc~]$uname-aLinuxfsc2.6.36.2fsc#2SMPMonDec1321:02:02CST2010i686i686i386GNU/Linux硬件环境:asusA8jr笔记本(07年的机器,比较老了)cpucore12250GHzRAM3Gddr2667VGAATIx2300......背景:使用fedora13(fedora14已经正式版发布
- ftrace工具学习笔记
显微镜下的内核
工具学习笔记linux
ftrace是一个功能强大的Linux内核跟踪工具,可用于分析内核的行为和性能问题。它可以用来收集各种内核跟踪数据,如函数调用、内存分配、中断处理等。以下是ftrace的一些主要特点和用法:ftrace是内核自带的跟踪工具,因此无需安装。要启用ftrace,需要在内核编译时启用CONFIG_FUNCTION_TRACER配置选项。可以使用以下命令检查内核是否支持ftrace:cat/boot/co
- arm linux内核编译
zd845101500
UbootandKernel
1、配置的关键是得到.config文件(1).config以.开头,是一个隐藏文件,因此平时是看不到的,需要ls-a来看(2)当我们makedistclean后(也就是说默认情况下)是没有.config文件的,我们配置的两步过程就是为了得到内容合适的.config文件(3).config文件是linux内核在编译过程中很重要的一个文件,其作用类似与uboot中的include/configs/x2
- Arm架构Linux内核编译记录
Yahooo-
Linux学习linux运维服务器
一、下载内核下载地址,命令如下:wgethttps://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.1.tar.xz二、解压内核命令如下:sudotar-xvJflinux-6.2.1.tar.xz三、安装编译内核所需软件命令如下:sudoaptinstallkernel-packagelibncurses-dev四、配置内核使用arm64架构下的
- Linux内核编译流程-x86
低头看月亮不如抬头看太阳
linux服务器运维
步骤一、官网下载源码后解压linuxkernel官网步骤二、安装软件sudoapt-getinstallncurses-devsudoapt-getinstallflexsudoapt-getinstallbisonsudoaptinstalllibgtk2.0-devlibglib2.0-devlibglade2-devsudoaptinstalllibssl-dev步骤三、启动gconfig,
- Linux内核编译-ARM
低头看月亮不如抬头看太阳
linuxarm开发运维
步骤一、下载源码及交叉编译器后解压linuxkernel官网ARMGCC交叉编译器步骤二、安装软件sudoapt-getinstallncurses-devsudoapt-getinstallflexsudoapt-getinstallbisonsudoaptinstalllibgtk2.0-devlibglib2.0-devlibglade2-devsudoaptinstalllibssl-de
- 交叉编译环境下对linux内核编译
hello_ludy
#linux操作系统#linux内核工具/软件/解决方案linux交叉编译arm
本文基于ubuntu,以目标arm64为例,搭建交叉编译环境,并对linux4.19.186内核源码进行交叉编译。所谓的交叉编译是:编译环境的平台与编译成果所要运行的平台,不是一类平台。通常指X86平台下编译的成果,提供给arm下要运行的程序或内核。因此需要交叉编译工具链来解决平台差异化问题。文章目录工具和源码准备安装交叉编译环境linux源码编译内核安装一些报错处理工具和源码准备1、下载交叉编译
- Linux Kdump内核崩溃转储部署详解
hello_ludy
#linux操作系统#调试调优/内核奔溃转储存#linux内核kdump内核转储crash
最近在回顾kdump内核崩溃转储技术,刚好可以整理下相关知识点,系统性地讲解下Kdump的部署过程以及原理。kdump内核崩溃转储技术在处理linux内核遇到宕机等异常问题中,可以将其崩溃瞬间的内存映像(包括函数栈,内存,CPU等信息)都保留下来,方便开发者分析故障原因。类似于应用层的coredump机制。部署Kdump过程需要了解几个知识点:内核编译过程怎么开启?kexec机制?系统启动怎么适配
- Linux内核及内核编译
孤独memories
Linux设备驱动开发linux运维linux内核内核编译
Linux内核及内核编译文章目录Linux内核及内核编译Linux内核的发展内核抢占线程模型虚拟内存的变化Linux内核组成Linux内核源代码的目录结构Linux内核的组成部分Linux内核空间与用户空间Linux内核的编译及加载Linux内核的编译Kconfig和Makefile内核的引导Linux下的编码风格编译工具链Linux内核的发展Linux的发展一直是朝着多cpu、多硬件设备、支持更
- Linux: 介绍make menuconfig中的每个选项含义【转】
weixin_34162401
运维网络操作系统
转自:http://blog.csdn.net/gaoyuanlinkconcept/article/details/8810468介绍makemenuconfig中的每个选项含义Linux2.6.19.x内核编译配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着GPL的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中
- Linux: 介绍make menuconfig中的每个选项含义
非与非
Linux
介绍makemenuconfig中的每个选项含义Linux2.6.19.x内核编译配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着GPL的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信
- [转]Linux 2.6.19.x内核编译配置选项简介[来自:Linux联盟收集整理]
answerzy
linuxdebuggingalgorithminterfaceattributestransformation
Linux2.6.19.x内核编译配置选项简介Codematurityleveloptions代码成熟度选项Promptfordevelopmentand/orincompletecode/drivers显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择Generalsetup常规设置Localversion-appendtokernelrelease在内核版本后面加上
- linux 内核补丁编译,linux安装补丁及内核编译的过程
weixin_39612038
linux内核补丁编译
下面以当前版本为linux-2.4.22升级到linux-2.6.15.6为例,先从上下载一个源代码包和两个补丁文件,它们是linux-2.6.14.tar.bz2patch-2.6.15.bz2patch-2.6.15.6.bz2保存到/usr/src/下.具体步骤如下:1、释放内核源代码用tar命令释放内核源代码#cd/usr/src#tar-jxvflinux-2.6.14.tar.bz2文
- BBB linux内核及模块编译
zhang433
linuxarm开发ubuntu
BBB基于TI公司的AM335X开发的Linux内核编译先进行环境变量导出,参考上一篇文章:exportPATH=/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$PATHroot@joe-virtual-machine:/home/joe#cat/etc/profile#/etc/profile:system-wide.profilefilef
- SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
- 为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linuxlinux运维linux资料linux视频linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
- Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
- informatica session的使用
18289753290
workflowsessionlogInformatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing 
- Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
- java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
- 强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
- GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
- 谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
- Connection reset 连接被重置的解决方法
百合不是茶
java字符流连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
- web.xml配置详解之filter
bijian1013
javaweb.xmlfilter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
- Heritrix
Bill_chen
多线程xml算法制造配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
- 【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
- The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
- javascript中showModelDialog刷新父页面
bozch
JavaScript刷新父页面showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
- 编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
- 关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
strutsWEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
- [电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
- oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
- 比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
- C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
- apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
- 2种办法让HashMap线程安全
flyfoxs
javajdkjni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
- Spring Security(04)——认证简介
234390216
Spring Security认证过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
- Java 位运算
Javahuhui
java位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
- mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
- MFC和ado数据库使用时遇到的问题
你不认识的休道人
sqlC++mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
- 表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
- Java String 十大常见问题
tomcat_oracle
java正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
- SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23