- Linux内核编程(十四)IIC总线驱动FT5X06触摸屏
小仇学长
LinuxlinuxIIC驱动FT5X06
本文目录前述:一、IIC子系统框架二、I2C设备驱动层1.i2c_client编写(C语言版-旧内核)2.i2c_client编写(设备树版-新内核) 前述:对于IIC的基础知识,这里不做过多的介绍,详细情况查看下面的两篇文章。文章一:超详细!新手必看!STM32基础-IIC串行通信协议-IO口模拟IIC操作BMP180。文章二:Linux应用编程(四)IIC(获取BMP180温度/气压数据)。
- Linux内核编程1-- 低精度定时器的使用
流浪在人间
linux
参考链接1参考链接2利用定时器,我们可以设定在未来的某一时刻,触发一个特定的事件。所谓低精度定时器,是指这种定时器的计时单位基于jiffies值的计数,也就是说,它的精度只有1/HZ,假如你的内核配置的HZ是1000,那意味着系统中的低分辨率定时器的精度就是1ms。早期的内核版本中,内核并不支持高精度定时器,理所当然只能使用这种低分辨率定时器,我们有时候把这种基于HZ的定时器机制称为时间轮:tim
- Linux 内核 VS 内存碎片 (上)
奇小葩
内存管理linux内存管理操作系统
转载:https://pingcap.com/zh/blog/linux-kernel-vs-memory-fragmentation-1(外部)内存碎片是一个历史悠久的Linux内核编程问题,随着系统的运行,页面被分配给各种任务,随着时间的推移内存会逐步碎片化,最终正常运行时间较长的繁忙系统可能只有很少的物理页面是连续的。由于Linux内核支持虚拟内存管理,物理内存碎片通常不是问题,因为在页表的
- 计算机经典书籍
sun_xin_1001
计算机c/c++设计模式c#
各种计算机语言的经典书籍1.算法导论(第3版)2.代码大全(第2版)3.C++Primer中文版(第4版)4.设计模式:可复用面向对象软件的基础5.浪潮之巅6.Java编程思想(第4版)7.Java核心技术卷1:基础知识8.Java核心技术卷2:高级特性9.人月神话10.Linux内核编程11.C程序设计语言(第2版新版)12.******与画家:硅谷创业之父PaulGraham文集13.编程之美
- module_init和module_exit,init_module和cleanup_module
bytxl
linux内核
就像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include#include#include其中,init.h定义了驱动的初始化和退出相关的函数,kernel.h定义了经常用到的函数原型及宏定义,module.h定义了内核模块相关的函数、变量及宏。几乎每个linux驱动都有个module_init(与mod
- linux内核编程之二:vm_area_struct结构体
隨意的風
linux内核编程
结构体structvm_area_struct它表示的是一块连续的虚拟地址空间区域,给进程使用的,地址空间范围是0~3G,对应的物理页面都可以是不连续的结构体structvm_struct表示一块连续的虚拟地址空间区域。给内核使用,地址空间范围是(3G+896M+8M)~4G,对应的物理页面都可以是不连续的两者的区别是什么呢?在Linux中,structvm_area_struct表示的虚拟地址是
- linux内核api书,(特价书)Linux内核API完全参考手册
小肉卷
linux内核api书
前言本书使用方法第1章Linux内核API分析必备知识1Linux内核编程注意事项1本书中模块编译Makefile模板1内核调试函数printk2内核编译与定制4温馨提示10参考文献11第2章Linux内核模块机制API12函数:__module_address()12函数:__module_ref_addr()14函数:__module_text_address()16函数:__print_sy
- Linux内核编程——内核定时器
萝卜D大哥
LinuxUWBStackLinuxlinux智能硬件信息与通信
在LinuxUWBStack的内核模块实现中,较多的使用了内核定时器,本文基于fakeMCPS实现中的应用为背景,介绍了内核定时器的使用。1.内核定时器 Linux内核用来控制在未来某个时间点【基于jiffies(节拍总数)】调度执行某个函数的一种机制,相关函数位于和文件中。 当内核定时器定时时间到达时,会进入用户指定的函数,相当于软中断。内核定时器注册开启后,运行一次就不会再运行(相当于自动
- linux内核编程-qemu环境搭建
我想这条路
#linux综合#Android综合linuxarm开发嵌入式
linux内核编程-qemu环境搭建1.背景最近想学习linux内核和驱动开发,但是不想买开发板,其实我觉得买了也买时间玩耍。以前读书的时候买过2440,后面到杭州买了6410和4412,买的时候兴致勃勃,买了之后新鲜了两天,由于各种原因还是放弃了,现在看到有虚拟环境,工作之余希望可以学习一下。2.目的深入学习linux内核和驱动。3.虚拟机+Ubuntu虚拟机可以装15/6;ubuntu可以装1
- 零基础小白速通北邮操作系统课程设计(一)Linux内核编程输出HelloWorld
夏洛特兰兰
北邮操作系统课设linuxubuntuvim
笔者学习Linux内核编程主要是为了对付北邮操作系统课设,但是由于完全不熟悉Linux系统,因此记录一些从0开始面向LinuxKernelPrograming的一些知识点。课程任务:开发一个内核模块或组件,完成如下功能:读取∼/targets文件。格式如下,pid:100,234prog:program,anotherprogramfile:afilename;anotherfilename记录p
- Linux内核编程Hello World
C4ndy
Linux网络编程linux运维服务器
1.ker_HelloWorld.c程序编写这里首先给出编写的源代码程序,后面对每行代码进行一一说明。#include#include#includestaticchar*cmd="";module_param(cmd,charp,S_IRUGO);staticint__inithelloworld_init(void){printk(KERN_ALERT"Helloworldmoduleinit
- 【ARM 嵌入式 编译系列 4 -- linux 编译属性 __read_mostly 介绍】
CodingCos
#ARMBSP编译系列介绍arm开发__read_mostly.data.read_most
文章目录__read_mostly介绍__read_mostly在linux中的使用.data.read_mostly介绍__read_mostly介绍__read_mostly是一个在Linux内核编程中用到的宏定义,这是一个gcc编译器的属性,用于告诉编译器此变量主要用于读取,很少进行写入,最好将此变量放在具有相同特性的变量附近。使用这个宏可以优化程序在运行时的缓存性能,因为处理器会缓存经常读
- Linux内核编程--字符设备文件,进行进程间通信,弄清open调用流程
鹏_921010
前言:进程间通信有:socket,共享内存,消息队列,信号量,信号,环境变量等一、字符设备驱动框架流程:字符设备驱动框架流程:二、实列代码跑的效果:发送数据接收数据Makefile我们可以单独看mmap和pollpoll的实现主要是使用的内核,驱动程序常用的等待队列关于系统调用:(以调用open函数)系统调用触发中断,中断会去找系统调用表通过基地址寻址调用内核sys_open,然后调用file_o
- Linux下C语言asm,linux下的C语言的asm内嵌式汇编
SBZH
Linux下C语言asm
Linux嵌入式汇编在Linux内核编程中需要完成大量与具体硬件相关的操作,由于C语言无法直接对硬件操作。GCC提供了嵌入式汇编的功能,即可以在C语言代码中内嵌汇编语言完成对硬件的直接操作。下面先给出一个例子:内嵌汇编格式:asm(汇编语句模板:输出部分:输入部分:破坏描述)内嵌汇编格式总共4个部分:汇编语句、输出部分、输入部分、破坏描述。各个部分之间用英文中的分号(colon)隔开。汇编语句模板
- linux驱动概念学习笔记
未燃机智鱼
嵌入式linux驱动arm开发驱动开发arm
文章目录1,什么是用户空间和内核空间?2,为什么要区分用户空间和内核空间?3,如何从用户空间进入内核空间?4,设备号的具体意义是什么?5,printk对打印消息的分类有哪些?6,如何修改printk的打印等级?7,linux内核编程中怎么创建线程?8,linux驱动开发中i2c的开发流程.9,怎么调试linux驱动程序?如调试i2c的驱动程序10,linux驱动代码中schedule()函数的作用
- Linux内核编程09期:设备模型和sysfs文件系统
宅学部落-王利涛
Linux内核编程驱动开发嵌入式Linux内核设备模型sysfs文件系统
设备模型是Linux内核中一个非常重要的概念,很多复杂的驱动(比如platform、USB、I2C),都是以设备模型为基础进行构建的。如果你在阅读驱动源码时感觉很吃力,感觉太复杂,错综复杂,无法真正理解其全景框架和底层的运行逻辑,这里真诚地建议你可以尝试从设备模型学起:设备模型以最核心的kobject和kset数据结构构建了设备树的基本骨架,又通过device、bus、driver、class进一
- 【Linux学习】跨平台开发 Linux + VS2019 环境配置(Ubantu16.04)
猿力猪
Linux学习linuxc++visualstudio运维ubuntu
目录前言一、Ubantu配置二、Linux安装远程调试Linux设置远程调试ssh允许root登录测试主机和虚拟机连接三、VisualStudio2019安装安装步骤创建新项目配置连接器编写并调试运行程序前言本文主要学习Linux内核编程,结合VisualStudio2019进行跨平台编程,内容包括Linux+VisualStudio2019的环境配置(Ubantu16.04)相关操作一、Uban
- 【Linux学习】高并发服务器框架 线程池介绍+线程池封装
猿力猪
Linux学习linux网络tcp/ipc++ubuntu
目录前言一、线程池介绍线程池基本概念线程池组成部分线程池工作原理二、线程池代码封装main.cppThreadPool.hThreadPool.cppChildTask.hChildTask.cppBaseTask.hBaseTask.cpp三、测试效果四、总结创建线程池的好处前言本文主要学习Linux内核编程,结合VisualStudio2019进行跨平台编程,内容包括线程池介绍以及线程池封装一
- 【Linux学习】网络基础 和 SOCKET套接字 服务器与客户端 详细案例说明
猿力猪
Linux学习linux服务器网络c++
目录前言一、网络编程三要素1.IP地址2.通信协议3.端口号二、SOCKET套接字SOCKET概述SOCKET分类三、代码实现1.编程思路2.建立服务器服务器完整代码3.建立客户端客户端完整代码4.代码测试前言本文主要学习Linux内核编程,结合VisualStudio2019进行跨平台编程,内容包括网络编程基础知识,以及服务器和客户端的案例编程及测试一、网络编程三要素IP地址:主机(电脑)的标识
- 【Linux学习】IO复用技术 select、poll、epoll函数使用 服务器/客户端举例
猿力猪
Linux学习学习网络linuxc++服务器
目录前言一、IO复用基本概念阻塞I/O非阻塞I/OI/O复用select函数poll函数epoll函数二、利用I/O复用搭建服务器/客户端服务器完整代码客户端完整代码测试效果前言本文主要学习Linux内核编程,结合VisualStudio2019进行跨平台编程,内容包括IO复用技术相关知识介绍以及用服务器客户端实例说明(详细举例epoll的使用)一、IO复用基本概念阻塞I/O最流行的I/O模型是阻
- 【Linux学习】 进程管理 fork系统调用 创建子进程 阻塞父进程
猿力猪
Linux学习学习linuxc++
目录前言一、进程进程IDLinux下的进程结构进程状态init进程二、fork系统调用fork相关头文件fork函数原型Linux手册查看fork创建代码示例运行效果注意点前言本文主要学习Linux内核编程,结合VisualStudio2019进行跨平台编程,内容包括进程相关知识介绍,fork系统调用相关知识一、进程首先,思考下以下问题:什么是进程?什么是程序?进程:是一个动态的概念程序开启才会启
- 【Linux学习】高并发服务器 socket+epoll封装 服务器/客户端举例
猿力猪
Linux学习linux服务器学习c++ubuntu
目录前言一、高并发服务器什么是高并发?高并发的处理指标?高并发和多线程的关系和区别?二、搭建服务器/客户端服务器代码(4种类的封装)地址类【CHostAddress】socket类【CBaseSocket】TCP类【CTcpServer】epoll类【CEpollServer】客户端代码案例测试前言本文主要学习Linux内核编程,结合VisualStudio2019进行跨平台编程,内容包括高并发服
- 入门内核编程-20220410
艾满
今天开始跟着B站学习Linux内核编程,打开一个新世界!视频地址:https://www.bilibili.com/video/BV1QU4y1n7YD?spm_id_from=333.999.0.0环境搭建:1.查看本机的Linux信息image.png2.安装对应的包image.png3.查看安装内容image.png4.build是实际的资源指向(makefile中要用到)1.目标:在Lin
- C语言宏函数container of()简介
在linux内核编程中,会经常见到一个宏函数container_of(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???怎么还有0呢???哎,算了,还是放弃吧。。。)。这就是内核大佬们厉害的地方,随便两行代码就让我们怀疑人生,凡是都需要一个过程,慢慢来吧。其实,原理很简单:已知结构体type的成员member的地址pt
- C语言container of()函数案例详解
在linux内核编程中,会经常见到一个宏函数container_of(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???怎么还有0呢???哎,算了,还是放弃吧。。。)。这就是内核大佬们厉害的地方,随便两行代码就让我们怀疑人生,凡是都需要一个过程,慢慢来吧。其实,原理很简单:已知结构体type的成员member的地址pt
- linux内核编程container of()函数介绍
前言在linux内核编程中,会经常见到一个宏函数container_of(ptr,type,member),但是当你通过追踪源码时,像我们这样的一般人就会绝望了(这一堆都是什么呀?函数还可以这样定义???怎么还有0呢???哎,算了,还是放弃吧。。。)。这就是内核大佬们厉害的地方,随便两行代码就让我们怀疑人生,凡是都需要一个过程,慢慢来吧。其实,原理很简单:已知结构体type的成员member的地址
- Linux内核编程helloworld代码演示
linux内核
1.hello.c#include#include#include#include#includestaticshortinta=1;staticintb=2;staticlongintc=3;staticchar*d="bp";staticintmyintArray[2]={-1,-1};staticintarr_argc=0;module_param(a,short,S_IRUSR|S_IWU
- Linux内核编程helloworld代码演示
linux内核
1.hello.c#include#include#include#include#includestaticshortinta=1;staticintb=2;staticlongintc=3;staticchar*d="bp";staticintmyintArray[2]={-1,-1};staticintarr_argc=0;module_param(a,short,S_IRUSR|S_IWU
- Linux 内核 VS 内存碎片 (上)
PingCAP
内核内存
(外部)内存碎片是一个历史悠久的Linux内核编程问题,随着系统的运行,页面被分配给各种任务,随着时间的推移内存会逐步碎片化,最终正常运行时间较长的繁忙系统可能只有很少的物理页面是连续的。由于Linux内核支持虚拟内存管理,物理内存碎片通常不是问题,因为在页表的帮助下,物理上分散的内存在虚拟地址空间仍然是连续的(除非使用大页),但对于需要从内核线性映射区分配连续物理内存的需求来说就会变的非常困难,
- 32位linux程序到64位linux程序移植
何大草
linux
前段时间在32位linux下开发的程序,需要移植到64位服务器上去,老板说需要高性能测试吞吐量,所以不得已移植到64位。(整体操作是linux内核编程,以模块的形式加载,当然我相信用户级应用开发也一样)从这次移植中,我认识到了一点,以后编程需要考虑平台的问题,如果涉及到指针的操作,或者强制转换,32位操作系统中尽量用long来替代int,因为long是跟着系统位宽改变而改变的,而int一直都是32
- 安装数据库首次应用
Array_06
javaoraclesql
可是为什么再一次失败之后就变成直接跳过那个要求
enter full pathname of java.exe的界面
这个java.exe是你的Oracle 11g安装目录中例如:【F:\app\chen\product\11.2.0\dbhome_1\jdk\jre\bin】下的java.exe 。不是你的电脑安装的java jdk下的java.exe!
注意第一次,使用SQL D
- Weblogic Server Console密码修改和遗忘解决方法
bijian1013
Welogic
在工作中一同事将Weblogic的console的密码忘记了,通过网上查询资料解决,实践整理了一下。
一.修改Console密码
打开weblogic控制台,安全领域 --> myrealm -->&n
- IllegalStateException: Cannot forward a response that is already committed
Cwind
javaServlets
对于初学者来说,一个常见的误解是:当调用 forward() 或者 sendRedirect() 时控制流将会自动跳出原函数。标题所示错误通常是基于此误解而引起的。 示例代码:
protected void doPost() {
if (someCondition) {
sendRedirect();
}
forward(); // Thi
- 基于流的装饰设计模式
木zi_鸣
设计模式
当想要对已有类的对象进行功能增强时,可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能。
自定义的类成为装饰类
模仿BufferedReader,对Reader进行包装,体现装饰设计模式
装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象功能,提供更强的功能。
装饰模式比继承灵活,避免继承臃肿,降低了类与类之间的关系
装饰类因为增强已有对象,具备的功能该
- Linux中的uniq命令
被触发
linux
Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行。在正常情 况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如 果输入文件用“- ”表示,则从标准输入读取。
AD:
uniq [选项] 文件
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个
- 正则表达式Pattern
肆无忌惮_
Pattern
正则表达式是符合一定规则的表达式,用来专门操作字符串,对字符创进行匹配,切割,替换,获取。
例如,我们需要对QQ号码格式进行检验
规则是长度6~12位 不能0开头 只能是数字,我们可以一位一位进行比较,利用parseLong进行判断,或者是用正则表达式来匹配[1-9][0-9]{4,14} 或者 [1-9]\d{4,14}
&nbs
- Oracle高级查询之OVER (PARTITION BY ..)
知了ing
oraclesql
一、rank()/dense_rank() over(partition by ...order by ...)
现在客户有这样一个需求,查询每个部门工资最高的雇员的信息,相信有一定oracle应用知识的同学都能写出下面的SQL语句:
select e.ename, e.job, e.sal, e.deptno
from scott.emp e,
(se
- Python调试
矮蛋蛋
pythonpdb
原文地址:
http://blog.csdn.net/xuyuefei1988/article/details/19399137
1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:
IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:
http://www.ibm.com/d
- webservice传递自定义对象时函数为空,以及boolean不对应的问题
alleni123
webservice
今天在客户端调用方法
NodeStatus status=iservice.getNodeStatus().
结果NodeStatus的属性都是null。
进行debug之后,发现服务器端返回的确实是有值的对象。
后来发现原来是因为在客户端,NodeStatus的setter全部被我删除了。
本来是因为逻辑上不需要在客户端使用setter, 结果改了之后竟然不能获取带属性值的
- java如何干掉指针,又如何巧妙的通过引用来操作指针————>说的就是java指针
百合不是茶
C语言的强大在于可以直接操作指针的地址,通过改变指针的地址指向来达到更改地址的目的,又是由于c语言的指针过于强大,初学者很难掌握, java的出现解决了c,c++中指针的问题 java将指针封装在底层,开发人员是不能够去操作指针的地址,但是可以通过引用来间接的操作:
定义一个指针p来指向a的地址(&是地址符号):
- Eclipse打不开,提示“An error has occurred.See the log file ***/.log”
bijian1013
eclipse
打开eclipse工作目录的\.metadata\.log文件,发现如下错误:
!ENTRY org.eclipse.osgi 4 0 2012-09-10 09:28:57.139
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContai
- spring aop实例annotation方法实现
bijian1013
javaspringAOPannotation
在spring aop实例中我们通过配置xml文件来实现AOP,这里学习使用annotation来实现,使用annotation其实就是指明具体的aspect,pointcut和advice。1.申明一个切面(用一个类来实现)在这个切面里,包括了advice和pointcut
AdviceMethods.jav
- [Velocity一]Velocity语法基础入门
bit1129
velocity
用户和开发人员参考文档
http://velocity.apache.org/engine/releases/velocity-1.7/developer-guide.html
注释
1.行级注释##
2.多行注释#* *#
变量定义
使用$开头的字符串是变量定义,例如$var1, $var2,
赋值
使用#set为变量赋值,例
- 【Kafka十一】关于Kafka的副本管理
bit1129
kafka
1. 关于request.required.acks
request.required.acks控制者Producer写请求的什么时候可以确认写成功,默认是0,
0表示即不进行确认即返回。
1表示Leader写成功即返回,此时还没有进行写数据同步到其它Follower Partition中
-1表示根据指定的最少Partition确认后才返回,这个在
Th
- lua统计nginx内部变量数据
ronin47
lua nginx 统计
server {
listen 80;
server_name photo.domain.com;
location /{set $str $uri;
content_by_lua '
local url = ngx.var.uri
local res = ngx.location.capture(
- java-11.二叉树中节点的最大距离
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class MaxLenInBinTree {
/*
a. 1
/ \
2 3
/ \ / \
4 5 6 7
max=4 pass "root"
- Netty源码学习-ReadTimeoutHandler
bylijinnan
javanetty
ReadTimeoutHandler的实现思路:
开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException
这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如
private final ChannelHandler timeoutHandler =
new ReadTim
- jquery验证上传文件样式及大小(好用)
cngolon
文件上传jquery验证
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery1.8/jquery-1.8.0.
- 浏览器兼容【转】
cuishikuan
css浏览器IE
浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同
问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
daizj
shell$#$?特殊变量
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:
$echo $$
运行结果
29949
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个
- 程序设计KISS 原则-------KEEP IT SIMPLE, STUPID!
dcj3sjt126com
unix
翻到一本书,讲到编程一般原则是kiss:Keep It Simple, Stupid.对这个原则深有体会,其实不仅编程如此,而且系统架构也是如此。
KEEP IT SIMPLE, STUPID! 编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原
- android Activity间List传值
dcj3sjt126com
Activity
第一个Activity:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import a
- tomcat 设置java虚拟机内存
eksliang
tomcat 内存设置
转载请出自出处:http://eksliang.iteye.com/blog/2117772
http://eksliang.iteye.com/
常见的内存溢出有以下两种:
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: Java heap space
------------
- Android 数据库事务处理
gqdy365
android
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事
- Java 打开浏览器
hw1287789687
打开网址open浏览器open browser打开url打开浏览器
使用java 语言如何打开浏览器呢?
我们先研究下在cmd窗口中,如何打开网址
使用IE 打开
D:\software\bin>cmd /c start iexplore http://hw1287789687.iteye.com/blog/2153709
使用火狐打开
D:\software\bin>cmd /c start firefox http://hw1287789
- ReplaceGoogleCDN:将 Google CDN 替换为国内的 Chrome 插件
justjavac
chromeGooglegoogle apichrome插件
Chrome Web Store 安装地址: https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice
由于众所周知的原因,只需替换一个域名就可以继续使用Google提供的前端公共库了。 同样,通过script标记引用这些资源,让网站访问速度瞬间提速吧
- 进程VS.线程
m635674608
线程
资料来源:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000 1、Apache最早就是采用多进程模式 2、IIS服务器默认采用多线程模式 3、多进程优缺点 优点:
多进程模式最大
- Linux下安装MemCached
字符串
memcached
前提准备:1. MemCached目前最新版本为:1.4.22,可以从官网下载到。2. MemCached依赖libevent,因此在安装MemCached之前需要先安装libevent。2.1 运行下面命令,查看系统是否已安装libevent。[root@SecurityCheck ~]# rpm -qa|grep libevent libevent-headers-1.4.13-4.el6.n
- java设计模式之--jdk动态代理(实现aop编程)
Supanccy2013
javaDAO设计模式AOP
与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java 反射机制可以生成任意类型的动态代理类。java.lang.reflect 包中的Proxy类和InvocationHandler 接口提供了生成动态代理类的能力。
&
- Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持
wiselyman
spring 4
2.1 默认方法(default method)
java8引入了一个default medthod;
用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展
使用default关键字
Spring 4.2支持加载在默认方法里声明的bean
2.2
将要被声明成bean的类
public class DemoService {