- 《Windows核心编程》若干知识点应用实战分享
dvlinker
C/C++技术分享Windows核心编程虚拟内存分区多线程汇编代码死锁检测DLL延迟加载与远程注入SEH异常与C++异常
目录1、进程的虚拟内存分区与小于0x10000的小地址内存区1.1、进程的虚拟内存分区1.2、小于0x10000的小地址内存区2、保存线程上下文的CONTEXT结构体3、从汇编代码角度去理解多线程运行过程的典型实例4、调用TerminateThread强制结束线程会导致线程中的资源没有释放的问题5、调用WaitForSingleObject监测目标程序有没有退出5.1、WaitForSingleO
- 《Windows核心编程》笔记(一)
拉普拉斯妖kk
字符及字符串处理UTF-16将每个字符编码为2个字节(或者说16位)。UTF-8将一些字符编码为1个字节,一些字符编码为2个字节,一些字符编码为3个字节,一些字符编码为4个字节。UTF-32将每个字符都编码为4个字节。C运行库中现有的字符串处理函数,在应用程序中包含StrSafe.h时,String.h也会包含进来。比如_tcscpy宏背后的那些函数,已标记为废弃不用。如果使用了这些函数,编译时就
- 《Windows核心编程》笔记(一)
拉普拉斯妖1228
Windowsc++windows操作系统
字符及字符串处理UTF-16将每个字符编码为2个字节(或者说16位)。UTF-8将一些字符编码为1个字节,一些字符编码为2个字节,一些字符编码为3个字节,一些字符编码为4个字节。UTF-32将每个字符都编码为4个字节。C运行库中现有的字符串处理函数,在应用程序中包含StrSafe.h时,String.h也会包含进来。比如_tcscpy宏背后的那些函数,已标记为废弃不用。如果使用了这些函数,编译时就
- Windows核心编程 HOOK
貌美不及玲珑心,贤妻扶我青云志
Windows核心编程windowsC++
目录HOOK概述HOOKAPISetWindowsHookExA函数(winuser.h)UnhookWindowsHookEx函数(winuser.h)NextHookEx函数(winuser.h)局部钩子全局钩子为什么全局钩子需要用dll作为过程函数?HOOK概述本质:Windows消系统的消息过滤器。全局钩子原理:将自己的dll注入到别的进程。并不是一开始就注入所有程序。钩子种类:局部钩子:
- Windows核心编程 第四章 进程(上)
TK13
windows核心编程windows核心编程进程
第4章进程本章介绍系统如何管理所有正在运行的应用程序。首先讲述什么是进程,以及系统如何创建进程内核对象,以便管理每个进程。然后将说明如何使用相关的内核对象来对进程进行操作。接着,要介绍进程的各种不同的属性,以及查询和修改这些属性所用的若干个函数。还要讲述创建或生成系统中的辅助进程所用的函数。当然,如果不深入说明如何来结束进程的运行,那么这样的介绍肯定是不完整的。现在就来介绍进程的有关内容。进程通常
- Windows核心编程对于临界区的详细描述
Aaronpack
winows内核c++
临界区是指一个小代码段,在代码执行前能够独占某些资源的访问权;需要注意的是,系统仍然能够控制线程的运行,去安排其他线程。不过,在线程退出临界区之前,系统不会调度其他试图访问相同资源的线程。来看一段代码:constintp=1000;//对这个全局变量进行操作intg_index=0;DWORDg_time[p];DWORDWINAPIThread1(DWORDpParam){while(g_ind
- [笔记]Windows核心编程《二十二》注入DLL和拦截API
二进制怪兽
#windows核心编程windowsvisualstudioc++
系列文章目录[笔记]Windows核心编程《一》错误处理、字符编码[笔记]Windows核心编程《二》内核对象[笔记]Windows核心编程《三》进程[笔记]Windows核心编程《四》作业[笔记]快乐的LInux命令行《五》什么是shell[笔记]Windows核心编程《五》线程基础[笔记]Windows核心编程《六》线程调度、优先级和关联性[笔记]Windows核心编程《七》用户模式下的线程同
- [笔记]Windows核心编程《四》作业
二进制怪兽
#windows核心编程windows
系列文章目录[笔记]Windows核心编程《一》错误处理、字符编码[笔记]Windows核心编程《二》内核对象[笔记]Windows核心编程《三》进程[笔记]Windows核心编程《四》作业[笔记]快乐的LInux命令行《五》什么是shell[笔记]Windows核心编程《五》线程基础[笔记]Windows核心编程《六》线程调度、优先级和关联性[笔记]Windows核心编程《七》用户模式下的线程同
- Windows核心编程(第五版)_1_错误处理_字符处理_内核对象
A1v1n
系统安全windowsc++
ʕ•ᴥ•ʔɔ:1WindowsAPI返回值调用Windows函数时,它会先验证我们传给它的参数,然后再开始执行任务。如果传入的参数无效,或者由于其他原因导致操作无法执行,则函数的返回值将指出函数因为某些原因失败了。表1-1展示了大多数Windows函数使用的返回值的数据类型。1.1函数的错误码通常情况下,如果Windows函数能返回错误代码,将有助于我们理解函数调用为什么会失败。Microsoft
- Windows核心编程 注册表
貌美不及玲珑心,贤妻扶我青云志
Windows核心编程windowsC++注册表
目录注册表概述打开关闭注册表创建删除子健查询写入删除键值子健和键值的枚举常用注册表操作注册表概述注册表是Windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是一个非常巨大的树状分层结构的数据库系统注册表是一个存储计算机配置信息的数据库,用于存储计算机上的硬件、安装的软件、系统设置以及用户账户配置等重要信息。对注册表的编辑不当可能会影响计算机的正常运行。应
- C++Windows核心编程读书笔记(转)
weixin_30627381
驱动开发运维c/c++
http://www.makaidong.com/(马开东博客)这篇笔记是我在读《windows核心编程》第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和windows实际机制可能有出入,但应该是合理的。开头几章由于我追求简洁,往往是很多单独的字句,后面的内容更为连贯。海量细节。第1章错误处理1.getlasterror返回的是最后
- TUP对话大师系列:微软技术大师Jeffrey Richter(现场实录)
csdnmarket
微软windowsc#云计算.net活动
[Csdn.net现场报道]继成功举办前两期《UML之父IvarJacobson》和《jQuery之父JohnResig》之后,CSDN和《程序员》杂志联合组织的线下活动TUP对话大师系列第三期如期而至。今天的主角是享誉全球的技术作家和“微软传奇人物”JeffreyRichter,其经典著作《Windows高级编程指南》和《Windows核心编程》早已成为Windows程序设计领域的巅峰之作,培育
- 《windows核心编程》- 线程栈
weixin_34233421
c/c++
当系统创建线程的时候,会为线程栈预订一块地址空间区域,并给该区域调拨一些物理存储器。默认会预订1MB的地址空间并调拨两个页面的存储器。但是在构建应用程序的时候可以改变这个默认值在构建应用程序的时候链接器会把栈的大小写入到exe和dll文件的pe文件头中,当创建线程的时候会根据PE文件头中的大小来预订空间区域。在调用CreateThread或_beginthreadex的时候开发人员可以指定需要在一
- 《windows核心编程》第2章 UNICODE字符
herb.dr
windows
一、基础内容1.1UNICODE和UTF-8下面是我个人的理解UNICODE用2个字节来代表一个字符UTF-8用1-4个字节来表示一个字符。可变长度的实现原理是ASCII字符只有7位,首位如果是1表示不是ASCII,说明这个字符和后面的字符联合起来形成新字符。1.2字符的数据类型UNICODE类型的字符都是宽字符,在C语言中的数据类型是:wchar_t,这是一个基本数据类型用宏TEXT()可以兼容
- 《windows核心编程》第3章 内核对象
herb.dr
windows
一、内核对象简介1.1内核对象有哪些令牌对象token、事件对象Event、文件对象File、文件映射对象Mapping_File、线程对象Thread、时钟对象Timer、线程池对象ThreadPool、I/O完成端口对象Completionport、工作对象job、邮槽对象mailslot、互斥对象Mutex、管道对象pipe、进程对象process、信号灯对象semaphore1.2内核对象
- [笔记]Windows核心编程《十七》内存映射文件
二进制怪兽
#windows核心编程windows
系列文章目录[笔记]Windows核心编程《一》错误处理、字符编码[笔记]Windows核心编程《二》内核对象[笔记]Windows核心编程《三》进程[笔记]Windows核心编程《四》作业[笔记]快乐的LInux命令行《五》什么是shell[笔记]Windows核心编程《五》线程基础[笔记]Windows核心编程《六》线程调度、优先级和关联性[笔记]Windows核心编程《七》用户模式下的线程同
- 《windows核心编程》第1章 错误处理
herb.dr
windows
一、错误信息的获取1.1C库错误信息1、获取错误信息#include#include#includeintmain(){fopen("D:\\ASC","r");printf("%s\n",strerror(errno));getchar();return0;}2、设置错误信息#include#include#includeintmain(){fopen("D:\\ASC","r");_set_e
- 2021年10月9日-2021年10月15日(osg最长的一帧+ogre抄写200行/天+ue4视频1个/天+windows核心编程催眠)
directx3d_beginner
验证第二个1万小时定律windowsogreue4
因为转岗Ue,所以计划适当调整,也就是说以前抄300行/天,现在改为200行/天+1个ue视频教程,其余不动。10月11日-10月17日,应剩下47881行即10月11日,Ogre源码应剩下48881行,1个Ue4视频10月12日,Ogre源码应剩下48681行,1个Ue4视频10月13日,Ogre源码应剩下48481行,1个Ue4视频10月14日,Ogre源码应剩下48281行,1个Ue4视频1
- 《Windows核心编程》读书笔记二十五章 未处理异常,向量化异常处理与C++异常
sesiria
Windows异常处理
第二十五章未处理异常,向量化异常处理与C++异常本章内容25.1UnhandledExceptionFilter函数详解25.2即时调试25.3电子表格示例程序25.4向量化异常和继续处理程序25.5C++异常与结构化异常的比较25.6异常与调试器前一章讨论的异常过滤函数返回EXCEPTION_CONTINUE_SEARCH会继续向外层搜索异常处理代码块。如果每个异常过滤程序都返回EXCEPTIO
- windows核心编程---进程
raindayinrain
3.2.系统-Windows进程windows
进程-进程组成1.一个内核对象,保存进程统计信息,操作系统用它来管理进程。2.一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据。还报错动态分配内存。-两类应用程序GUI,CUI用MicrosoftVisualStudio创建一个应用程序项目时,集成开发环境会设置各种链接器开关,使链接器将子系统的正确类型嵌入最终生成的可执行文件中。对CUI,链接器开关是/SUBSYSTEM:CONSOL
- 程序单实例运行的一种实现
shanql
Win32/MFC单实例运行
技术背景知识来自《Windows核心编程》创建自定义段Section来自《Windows核心编程》举例(获取当前总共运行的实例数)创建自定义段并设置属性#include"stdafx.h"#include"MFCApplication1.h"#include"MFCApplication1Dlg.h"//创建自定义段#pragmadata_seg("MyShare")volatilelongg_n
- Windows 进程之四 CreateProcess函数
BluceTao
Windows核心编程操作系统
Windows进程之四CreateProcess函数一、CreateProcess函数1.1、pszImageName和pszCmdLine参数一、CreateProcess函数这几天被微软的sfc.exe这个工具整蒙了,用匿名管道和进程来重定向sfc.exe没有任何输出,最后实在老同学的帮助下解决了这个问题。本篇只是对《Windows核心编程》的学习,加深印象。本篇共有7个小节,从CreateP
- 注意 ansi c 库函数 在多线程时可能出错的问题
观海ao
https://blog.csdn.net/qq_22423659/article/details/53426953windows核心编程-C/C++标准库与多线程由于历史原因,标准C/C++库在开始时并没有正对多线程做考虑(比如使用了一些全局变量)ARMC库中的线程安全性https://blog.csdn.net/syrchina/article/details/24657485from:htt
- windows钩子保护自身进程不被破坏
qiufeng_xinqing
windowswindowshookwindows进程保护
代码来自于《windows核心编程》作者:APIHOOK.h头文件:#pragmaonce#includeclassCAPIHOOK{public:CAPIHOOK(LPTSTRlpszModName,LPSTRpszFuncName,PROCpfnHook,BOOLbExcludeAPIHookMod=TRUE);~CAPIHOOK(void);private:staticvoidReplace
- 空指针赋值
瓯江畔
嵌入式linux
为什么通过空指针读写的时候就会出现异常?除了NULL表示空指针,是否还有其他的值也是空指针?如果还有其他的值,你们这些表示空指针的值都是什么?为什么?首先解答第一个问题,在windows核心编程第四版的windows的内存结构一章中,表13-1有提到NULL指针分配的分区。其范围是从0x00000000到0x0000FFFF。这段空间是空闲的,对于空闲的空间而言,没有相应的物理存储器与之相对应,所
- 【Windows核心编程学习笔记】远程注入DLL
guyue35
操作系统操作系统
远程注入DLL一、概述为了隐藏自身的进程信息,我们希望将进程作为一个合法进程的线程运行。由于系统进程间不允许直接操作资源,因而我们需要在合法进程内部创建一个线程,为其指定要执行的代码。一种简单的方式是令远程线程载入一个我们编写的DLL,通过DllMain()函数执行我们需要的代码。基本思路是将LoadLibrary()函数作为一个线程函数来调用:CreateRemoteThread()---->L
- 【Windows系统编程】01.文件与目录操作-笔记
WdIg-2023
Windows系统编程windows笔记
本专栏从这篇文章开始做Windows系统编程的笔记,本章主要讲解:Windows文件操作(读写文件,删除文件,拷贝文件,移动文件等),目录操作(遍历目录,删除目录等)硬盘的一点小知识。参考书:Windows核心编程文件,内核对象#include#includeintmain(){//打开文件或I/O设备HANDLEhFile=CreateFile(L"E:\\TestA\\111.txt",//文
- 新手——win32程序的半生(CreateProcess)
看雪学院
工具1、静态分析:IDAPRO2、动态分析:Ollydbg/X32dbg/windbg3、ARK工具:PCHunter环境1、虚拟机:VMwareWORKSTATION14PRO2、系统版本:win7专业版知识背景1、Windows的应用层基础知识:《Windows核心编程》2、Windows的内核的基础知识:《Windows内核情景分析》目标研究win7系统下通过CreateProcess所创建
- Windows核心编程第一课。windows发展史
最帅的大白哥哥
windows编程
自己理解后的产物内核:操作系统版本号,NTxx.xNT结构:微软写的Windows系统的一种架构;将操作系统分为用户态,和核心态为什么是16位,32位,64位系统?操作系统位数是基于CPU的计算位数来决定的,比如32位CPU装32位操作系统,但是不跑起64位的系统,可向下兼容,64位的操作系统搭配64位CPU。反正就是CPU是多少位就是多少位的操作系统,可向下兼容,不可向上兼容。。。。。。。。。。
- 【Windows核心编程实验一】实现windows程序和进程编程
SunJ3t
Windows核心编程系列文章仅作为实验报告和Windows编程学习参考,不作为任何技术文章,还望大佬们勿喷。具体的系列文章想访问我的语雀:https://www.yuque.com/sunj3t1.实验名称实现windows程序和进程编程2.实验环境VC6.0++Windows73.实验目的完成一个Windows程序,并掌握进程的概念、进程的状态下载processExplorer软件和spy++
- tomcat基础与部署发布
暗黑小菠萝
Tomcat java web
从51cto搬家了,以后会更新在这里方便自己查看。
做项目一直用tomcat,都是配置到eclipse中使用,这几天有时间整理一下使用心得,有一些自己配置遇到的细节问题。
Tomcat:一个Servlets和JSP页面的容器,以提供网站服务。
一、Tomcat安装
安装方式:①运行.exe安装包
&n
- 网站架构发展的过程
ayaoxinchao
数据库应用服务器网站架构
1.初始阶段网站架构:应用程序、数据库、文件等资源在同一个服务器上
2.应用服务和数据服务分离:应用服务器、数据库服务器、文件服务器
3.使用缓存改善网站性能:为应用服务器提供本地缓存,但受限于应用服务器的内存容量,可以使用专门的缓存服务器,提供分布式缓存服务器架构
4.使用应用服务器集群改善网站的并发处理能力:使用负载均衡调度服务器,将来自客户端浏览器的访问请求分发到应用服务器集群中的任何
- [信息与安全]数据库的备份问题
comsci
数据库
如果你们建设的信息系统是采用中心-分支的模式,那么这里有一个问题
如果你的数据来自中心数据库,那么中心数据库如果出现故障,你的分支机构的数据如何保证安全呢?
是否应该在这种信息系统结构的基础上进行改造,容许分支机构的信息系统也备份一个中心数据库的文件呢?
&n
- 使用maven tomcat plugin插件debug关联源代码
商人shang
mavendebug查看源码tomcat-plugin
*首先需要配置好'''maven-tomcat7-plugin''',参见[[Maven开发Web项目]]的'''Tomcat'''部分。
*配置好后,在[[Eclipse]]中打开'''Debug Configurations'''界面,在'''Maven Build'''项下新建当前工程的调试。在'''Main'''选项卡中点击'''Browse Workspace...'''选择需要开发的
- 大访问量高并发
oloz
大访问量高并发
大访问量高并发的网站主要压力还是在于数据库的操作上,尽量避免频繁的请求数据库。下面简
要列出几点解决方案:
01、优化你的代码和查询语句,合理使用索引
02、使用缓存技术例如memcache、ecache将不经常变化的数据放入缓存之中
03、采用服务器集群、负载均衡分担大访问量高并发压力
04、数据读写分离
05、合理选用框架,合理架构(推荐分布式架构)。
- cache 服务器
小猪猪08
cache
Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。
1.Cache 是怎么样工作的?
Cache 是分配在服务器上
- mysql存储过程
香水浓
mysql
Description:插入大量测试数据
use xmpl;
drop procedure if exists mockup_test_data_sp;
create procedure mockup_test_data_sp(
in number_of_records int
)
begin
declare cnt int;
declare name varch
- CSS的class、id、css文件名的常用命名规则
agevs
JavaScriptUI框架Ajaxcss
CSS的class、id、css文件名的常用命名规则
(一)常用的CSS命名规则
头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right
- 全局数据源
AILIKES
javatomcatmysqljdbcJNDI
实验目的:为了研究两个项目同时访问一个全局数据源的时候是创建了一个数据源对象,还是创建了两个数据源对象。
1:将diuid和mysql驱动包(druid-1.0.2.jar和mysql-connector-java-5.1.15.jar)copy至%TOMCAT_HOME%/lib下;2:配置数据源,将JNDI在%TOMCAT_HOME%/conf/context.xml中配置好,格式如下:&l
- MYSQL的随机查询的实现方法
baalwolf
mysql
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,
- JAVA的getBytes()方法
bijian1013
javaeclipseunixOS
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同OS下,返回的东西不一样!
String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:
byte[] b_gbk = "
- AngularJS中操作Cookies
bijian1013
JavaScriptAngularJSCookies
如果你的应用足够大、足够复杂,那么你很快就会遇到这样一咱种情况:你需要在客户端存储一些状态信息,这些状态信息是跨session(会话)的。你可能还记得利用document.cookie接口直接操作纯文本cookie的痛苦经历。
幸运的是,这种方式已经一去不复返了,在所有现代浏览器中几乎
- [Maven学习笔记五]Maven聚合和继承特性
bit1129
maven
Maven聚合
在实际的项目中,一个项目通常会划分为多个模块,为了说明问题,以用户登陆这个小web应用为例。通常一个web应用分为三个模块:
1. 模型和数据持久化层user-core,
2. 业务逻辑层user-service以
3. web展现层user-web,
user-service依赖于user-core
user-web依赖于user-core和use
- 【JVM七】JVM知识点总结
bit1129
jvm
1. JVM运行模式
1.1 JVM运行时分为-server和-client两种模式,在32位机器上只有client模式的JVM。通常,64位的JVM默认都是使用server模式,因为server模式的JVM虽然启动慢点,但是,在运行过程,JVM会尽可能的进行优化
1.2 JVM分为三种字节码解释执行方式:mixed mode, interpret mode以及compiler
- linux下查看nginx、apache、mysql、php的编译参数
ronin47
在linux平台下的应用,最流行的莫过于nginx、apache、mysql、php几个。而这几个常用的应用,在手工编译完以后,在其他一些情况下(如:新增模块),往往想要查看当初都使用了那些参数进行的编译。这时候就可以利用以下方法查看。
1、nginx
[root@361way ~]# /App/nginx/sbin/nginx -V
nginx: nginx version: nginx/
- unity中运用Resources.Load的方法?
brotherlamp
unity视频unity资料unity自学unityunity教程
问:unity中运用Resources.Load的方法?
答:Resources.Load是unity本地动态加载资本所用的方法,也即是你想动态加载的时分才用到它,比方枪弹,特效,某些实时替换的图像什么的,主张此文件夹不要放太多东西,在打包的时分,它会独自把里边的一切东西都会集打包到一同,不论里边有没有你用的东西,所以大多数资本应该是自个建文件放置
1、unity实时替换的物体即是依据环境条件
- 线段树-入门
bylijinnan
java算法线段树
/**
* 线段树入门
* 问题:已知线段[2,5] [4,6] [0,7];求点2,4,7分别出现了多少次
* 以下代码建立的线段树用链表来保存,且树的叶子结点类似[i,i]
*
* 参考链接:http://hi.baidu.com/semluhiigubbqvq/item/be736a33a8864789f4e4ad18
* @author lijinna
- 全选与反选
chicony
全选
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>全选与反选</title>
- vim一些简单记录
chenchao051
vim
mac在/usr/share/vim/vimrc linux在/etc/vimrc
1、问:后退键不能删除数据,不能往后退怎么办?
答:在vimrc中加入set backspace=2
2、问:如何控制tab键的缩进?
答:在vimrc中加入set tabstop=4 (任何
- Sublime Text 快捷键
daizj
快捷键sublime
[size=large][/size]Sublime Text快捷键:Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:
- php 引用(&)详解
dcj3sjt126com
PHP
在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 复制代码代码如下:
<?
$a="ABC";
$b =&$a;
echo
- SVN中trunk,branches,tags用法详解
dcj3sjt126com
SVN
Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tags这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
- 对软件设计的思考
e200702084
设计模式数据结构算法ssh活动
软件设计的宏观与微观
软件开发是一种高智商的开发活动。一个优秀的软件设计人员不仅要从宏观上把握软件之间的开发,也要从微观上把握软件之间的开发。宏观上,可以应用面向对象设计,采用流行的SSH架构,采用web层,业务逻辑层,持久层分层架构。采用设计模式提供系统的健壮性和可维护性。微观上,对于一个类,甚至方法的调用,从计算机的角度模拟程序的运行情况。了解内存分配,参数传
- 同步、异步、阻塞、非阻塞
geeksun
非阻塞
同步、异步、阻塞、非阻塞这几个概念有时有点混淆,在此文试图解释一下。
同步:发出方法调用后,当没有返回结果,当前线程会一直在等待(阻塞)状态。
场景:打电话,营业厅窗口办业务、B/S架构的http请求-响应模式。
异步:方法调用后不立即返回结果,调用结果通过状态、通知或回调通知方法调用者或接收者。异步方法调用后,当前线程不会阻塞,会继续执行其他任务。
实现:
- Reverse SSH Tunnel 反向打洞實錄
hongtoushizi
ssh
實際的操作步驟:
# 首先,在客戶那理的機器下指令連回我們自己的 Server,並設定自己 Server 上的 12345 port 會對應到幾器上的 SSH port
ssh -NfR 12345:localhost:22
[email protected]
# 然後在 myhost 的機器上連自己的 12345 port,就可以連回在客戶那的機器
ssh localhost -p 1
- Hibernate中的缓存
Josh_Persistence
一级缓存Hiberante缓存查询缓存二级缓存
Hibernate中的缓存
一、Hiberante中常见的三大缓存:一级缓存,二级缓存和查询缓存。
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存是由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存
- 对象关系行为模式之延迟加载
home198979
PHP架构延迟加载
形象化设计模式实战 HELLO!架构
一、概念
Lazy Load:一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。
延迟加载貌似很简单,就是在数据需要时再从数据库获取,减少数据库的消耗。但这其中还是有不少技巧的。
二、实现延迟加载
实现Lazy Load主要有四种方法:延迟初始化、虚
- xml 验证
pengfeicao521
xmlxml解析
有些字符,xml不能识别,用jdom或者dom4j解析的时候就报错
public static void testPattern() {
// 含有非法字符的串
String str = "Jamey친ÑԂ
- div设置半透明效果
spjich
css半透明
为div设置如下样式:
div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;}
说明:
1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opaci
- 你真的了解单例模式么?
w574240966
java单例设计模式jvm
单例模式,很多初学者认为单例模式很简单,并且认为自己已经掌握了这种设计模式。但事实上,你真的了解单例模式了么。
一,单例模式的5中写法。(回字的四种写法,哈哈。)
1,懒汉式
(1)线程不安全的懒汉式
public cla