- 企业应用架构笔记-软件设计的原则
九指程序员
架构专栏架构笔记
软件设计的原则所有编程都是维护编程,因为你很少写原创代码。只有你在最初10分钟里键入的代码是原创的。仅此而已。-----DaveTomas和AndyHunt软件开发的一个流行格言是:好的架构就是所有艰难决定最终都被证明是正确的架构。软件设计的通用原则可维护代码的基础包含两个核心原则——内聚与耦合。内聚内聚表示软件模块承担的众多职责关联性很强,不管是子程序,类,还是库。内聚用来衡量通过类的各个方法、
- 实战C++手写线程池
GeniusAng丶
C/C++编程c++OOP线程池
课程总目录文章目录一、项目必备基础概念1.1并发和并行1.2多线程的优势1.3线程的消耗1.4线程池的优势1.5线程池的两种模式:fixed模式和cached模式1.6线程同步之线程互斥1.7线程同步之线程通信1.7.1条件变量1.7.2信号量1.8项目设计图浏览二、线程池代码展示三、线程池资源回收死锁问题分析四、线程资源回收策略修改优化五、Linux平台编译线程池动态库六、packaged_ta
- redis 快速入门
栀夏613
数据库redis数据库缓存
目录数据库的分类NoSQL非结构化认识redis特征安装redis单机安装Docker安装redis的基本配置启动redis关闭redisredis开机自启redis客户端redis数据结构介绍基本类型String的基础操作List基本操作Set基本操作SortedSet基本操作Hash基本操作redis通用命令key的层级格式数据库的分类关系型数据库结构化数据表中存储的数据格式是一样的数据与数据
- 从opencv-python入门opencv--GUI功能之绘图&鼠标与图像界面的交互
这是一个图像
python计算机外设opencvGUI计算机视觉图像处理交互
从opencv-python入门opencv--GUI功能之绘图和鼠标操作一、文章介绍二、opencv绘制直线、矩形、圆形1、cv.line()2、cv.circle()3、cv.rectangle()4、在图像上绘制直线、矩形和圆形5、cv.ellipse()(在空白画布上绘制椭圆)(1)img=cv.ellipse(img,center,axes,angle,startAngle,endAng
- 通俗理解-L、-rpath和-rpath-link编译链接动态库
linux运维
一、参考资料链接选项rpath的应用和原理|BewareMyPower的博客使用rpath和rpath-link确保samba-util库正确链接-CSDN博客编译参数-Wl和rpath的理解_-wl,-rpath-CSDN博客UsingLD,theGNUlinker-OptionsDirectoryOptions(UsingtheGNUCompilerCollection(GCC))交叉编译时-
- 【大模型】RAG检索增强生成
油泼辣子多加
深度学习算法chatgpt
RAG(Retrieval-AugmentedGeneration)是一种结合了信息检索(Retrieval)和生成(Generation)模型的混合型大模型架构,旨在解决传统生成模型在处理大规模外部知识时的局限性。简单来说,RAG通过在生成过程之前引入检索步骤,使得生成模型可以利用外部文档或知识库来增强其生成能力,提升对复杂问题的回答准确性。一、RAG的工作原理:检索阶段(Retrieval):
- Ubuntu系统下交叉编译bzip2
linux运维交叉编译
一、交叉编译bzip21.下载libpng源码下载bzip2:https://sourceware.org/bzip2/downloads.html下载并解压源码。tar-xvzfbzip2-1.0.8.tar.gzcdbzip2-1.0.82.设置环境变量设置交叉编译工具链的环境变量:exportPATH=/home/yoyo/360Downloads/toolchains/arm-linux-
- MySQL限制登陆失败次数配置
泠然一梦
mysqladb数据库linux服务器运维windows
目录一、限制登陆策略1、Windows2、Linux一、限制登陆策略1、Windows1)安装插件登录MySQL数据库mysql-uroot-p执行命令安装插件#限制登陆失败次数插件installpluginCONNECTION_CONTROLsoname'connection_control.dll';installpluginCONNECTION_CONTROL_FAILED_LOGIN_AT
- 理解CPP的命名空间【仓鼠学cpp】
仓鼠元plus
学习c++macos面试visualstudiocode算法开发语言
在C++中,命名空间(namespace)用于组织代码,防止名称冲突。尤其是当多个库或模块在同一个程序中使用时,可能会有相同的类、函数、变量名称,命名空间可以帮助区分它们。大家最耳熟能祥的莫过于“usingnamespacestd"了——当然,也许会有很多人很长一段时间内只知道这个。本文,我会举例讲解一下C++中的命名空间,因为我正好在写cpp17的专栏(大家可以去看一下!)也会提一下cpp-17
- Git版本管理逻辑解析:从核心原理到工作流实践
The god of big data
神器?三叉戟?教程大Big数据Datagit
一、版本控制的历史背景与Git的核心优势版本控制系统的演变经历了三个阶段:本地版本控制(如RCS)、集中式版本控制(如SVN)和分布式版本控制(如Git)。Git作为分布式系统的代表,其核心优势在于每个开发者本地都保存完整的版本库历史,避免了集中式系统因服务器宕机导致的历史丢失风险13。这种设计使得开发者可以离线工作,且任意本地仓库都可作为备份恢复源,类似于区块链的去中心化思想14。二、Git版本
- 【WPF命令绑定之--没有Command属性的控件如何进行命令绑定?】
吾与谁归in
C#学习WPFwpfc#
前言C#WPF之命令绑定内容有些控件不支持直接绑定命令,可以调用其他依赖实现命令的绑定。依赖:Microsoft.Xaml.Behaviors.Wpf使用如下代码可以实现事件的命令绑定,及传递参数:1、引用:xmlns:behavior=“http://schemas.microsoft.com/xaml/behaviors”2、添加命令绑定代码(如:代码①)3、创建实现ICommand的类pub
- 【复杂网络建模】真实网络数据集的读取和操作
钰云空间
复杂网络Pythonpython
文章目录概要1.获取真实网络数据集的常用网址1.1NetworkRepository.1.2StanfordLargeNetworkDatasetCollection1.3KONCET1.4Netzschleuder2.网络分析2.1计算度中心性2.2绘制网络图小结概要在复杂网络建模中,使用真实的网络数据集是理解和分析现实世界网络结构的关键。接下来将介绍如何使用Python中的工具库(如Netwo
- 获取小程序自定义分包大小的 4 种方法
爱分享的程序员
微信小程序小程序
获取小程序自定义分包大小的4种方法方法1:通过微信开发者工具查看打开代码分析在微信开发者工具中:点击顶部菜单栏工具➔代码分析选择代码依赖分析标签页查看分包大小分布图(自动标注超限部分)上传版本时校验提交代码包时,控制台会自动显示分包大小:[分包检测]主包大小:1.2MBsubpackage1:3.5MB(超过建议值2MB)subpackage2:1.8MB方法2:使用miniprogram-ci工
- C++数据结构之数组(详解)
画个逗号给明天"
C++常用数据结构数据结构c++开发语言
1.介绍在C++中,数组是一种基本的数据结构,用于存储相同类型的元素的集合。数组的元素在内存中是连续存储的,可以通过索引访问。下面将详细介绍C++数组的相关内容。2.数组的定义数组的定义需要指定元素的类型和数组的大小。typearrayName[arraySize];type:数组元素的类型(如int、char)等。arrayName:数组的名称。arraySize:数组的大小(必须是常量表达式)
- 《深入浅出TCP之4TCP是一种流协议》
kaydxh
tcp网络协议网络tcpip
4TCP是一种流协议数据是以字节流的形式传递给接收者,没有固有的报文或报文边界分概念。send通常只是将数据复制到主机的tcp/ip栈中,就返回了,由tcp来决定需要立即发送多少数据(取决于,发送窗口,拥塞窗口,MSS等)tcp会记录它发送了多少字节,以及确认的字节,但它不会记录这些字节是如何分组的变长报文,一般在每条报文前面加上一个首部,这个首部至少包含报文的长度,首先读取定长的报文头部,从首部
- 微信小程序 实现圆形进度条
.卡
问题记录小程序
将进度条百分比分成两种情况(顺时针方向,起点在顶部):百分比50%将整个圆,也对应分成左右两个部分:左半边和右半边。假设表示进度的颜色为黄色,圆环底部颜色为灰色。第一种情况:百分比percent50%,转换为度数(360*percent)为deg:圆环底部灰色。设置左半边圆环的颜色为黄色,然后顺时针旋转180度。设置右半边圆环的颜色为黄色,然后顺时针旋转(deg-180)度。代码见css圆环
- 基于单片机的GPS全球定位系统仿真设计-毕业设计protues仿真
AuroraFaye
单片机GPS定位系统
百度网盘下载地址(986):点击下载电路图如下:/***********************************************************************************************************************************************************///主函数(main.c):#incl
- 简单爬取一下电影排行
孟婆来包棒棒糖~
数据库python爬虫
主要用到了requests和xpath来解析数据,然后储存在mysql数据库中,不过代码方面我是先写好简单实现工作,然后让ai帮我用类封装来成功实现,博主比较菜,如果有反爬措施可以找js逆向视频来学习importrequestsfromfake_useragentimportUserAgentfromlxmlimportetreeimportpymysqlfrompymysql.cursorsim
- 昆仑通态-数据显示
创益无界
工业控制分享数据库
我遇到一个问题,在上位机界面给设备设参数时,某一个参数的值大于一个常数时给不下去,我检查了数据类型没有问题,我在显示界面打开参数的属性设置面板,最大值设置没有问题。后发现在实时数据库对数据范围也做了限制昆仑通态有两个数据库:分别是设备窗口的数据库和实时数据库。设备窗口的数据库可以添加多个设备分别存储数据,对数据类型、数据长度等自由定义;实时数据库存储所有的数据,确保数据共享。设备窗口的数据库数据存
- Github-介绍
创益无界
嵌入式学习github
GitHub是一个基于Git版本控制系统的代码托管平台,广泛用于开源项目、团队协作、代码管理等方面。它让开发者能够上传、分享、修改、协作、跟踪代码的更改。1.GitHub的基本功能:代码托管:GitHub提供云端存储代码的功能,可以方便开发者上传、下载和管理自己的代码。版本控制:通过Git进行版本管理,每次提交(commit)都会记录下代码的历史,方便回溯和协作。协作与分支管理:可以创建分支,开发
- maven:Maven插件开发实践:动态依赖注入与架构演进说明
10km
javamavenjavapluginartifact
最近的工作中设计了一个maven插件,需要在插件执行时的增加新的依赖库,本文作为总结,说明如何在插件执行时自主注入新的依赖库。动态依赖注入实现示例解析通过ExampleMojo插件,我们可以在编译阶段动态注入指定的依赖:publicvoidexecute()throwsMojoExecutionException{ArtifactSupport.injectCacheEngine(project,
- 微软正则表达式库的实现与应用
江卓尔
本文还有配套的精品资源,点击获取简介:正则表达式是一种用于文本处理的强大工具,在Windows环境下微软提供了相应的支持。本项目涉及的微软正则表达式库可能是一个内部或第三方开发的框架,以C++实现。regexpr2.cpp和syntax2.cpp文件可能包含核心匹配算法和语法解析处理,而reimpl2.h、regexpr2.h和syntax2.h可能定义了实现细节、API接口和语法定义。resta
- Vue 路由基础:Vue 2 和 Vue 3 的比较与使用
念九_ysl
Vuevue.js前端javascript
Vue.js是一款非常流行的前端框架,而VueRouter是Vue.js的官方路由管理库。在前端开发中,路由是处理页面跳转和视图管理的关键部分。Vue2和Vue3都使用VueRouter来管理路由,但是随着Vue3的发布,VueRouter也有了不少变化。在本文中,我们将详细介绍Vue2和Vue3中的路由使用,比较它们之间的不同,并提供一些示例代码。一、安装VueRouter在Vue项目中使用Vu
- 单点登录和普通登录的区别,来自百度AI的解释
mf_717714
前端
注意,以下回答均是百度AI伙伴回答,非博主的回答,仅供参考。1,什么是单点登录单点登录(SingleSignOn,简称SSO)是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现不需要管理员对用户的登录状态或其他信息进行修改。2,单点登录有哪些实现方式?SSO的实现方式有
- 一个Spring框架笔记
A_cot
spring数据库java后端开发语言springcloudspringboot
Spring框架基于JavaEE的轻量级框架,使用spring可以降低模块的耦合度,提高开发效率。Spring框架的两大核心技术:IOCIOC:控制反转DI:依赖注入AOP面向切面编程Spring的模块划分:SpringIOCSpringAOPSpringJDBC(Spring+MyBatis)Spring事务Spring作用Dao层(数据访问层)数据库的JDBC操作对应的框架:MyBatis或H
- fluent-ffmpeg 依赖详解
yqcoder
ffmpeg
fluent-ffmpeg是一个用于在Node.js环境中与FFmpeg进行交互的强大库,它提供了流畅的API来执行各种音视频处理任务,如转码、剪辑、合并等。一、安装npminstallfluent-ffmpeg二、基本使用要使用fluent-ffmpeg,首先需要确保系统中已经安装了FFmpeg,或者使用ffmpeg-static等库提供静态的FFmpeg二进制文件。如下,展示如何将视频文件转换
- 自动化办公|xlwings与pandas交互
游客520
自动化python从入门到出家实用代码pandasexcelpython自动化
1.介绍在数据分析和Excel自动化中,pandas作为Python处理数据的强大库,而xlwings则可以高效操作Excel。将pandas与xlwings结合使用,可以实现从Excel读取数据到DataFrame、将DataFrame写入Excel以及Excel的自动化处理。2.从Excel读取数据到PandasDataFrame2.1读取整个表格importxlwingsasxwimport
- Linux上用C++和GCC开发程序实现两个不同PostgreSQL实例下单个数据库中多个Schema稳定高效的数据迁移到其它PostgreSQL实例
weixin_30777913
c++数据库开发语言postgresql服务器
设计一个在Linux上运行的GCCC++程序,同时连接三个不同的PostgreSQL实例,其中两个实例中分别有两个数据库中多个Schema的表结构分别与第三实例中两个数据库中多个Schema个结构完全相同,同时复制两个实例中两个数据库中多个Schema里的所有表的数据到第三个实例中两个数据库中多个Schema里,使用以下快速高效的方法,加入异常处理,支持每隔固定时间重试一定次数,每张表的复制运行状
- 【RocketMQ 存储】ConsumeQueue 刷盘服务 FlushConsumeQueueService
月幻星影
RocketMQ源码分析rocketmqjavaConsumeQueue刷盘
文章目录1.前言2.为什么ConsumeQueue没有提交服务3.FlushConsumeQueueService刷盘服务3.1参数3.2run方法3.3doFlush方法刷盘3.4ConsumeQueue#flush刷盘3.5MappedFileQueue#flush4.小结本文章基于RocketMQ4.9.31.前言RocketMQ存储部分系列文章:【RocketMQ存储】-RocketMQ存
- Jenkins SSH 认证失败问题 (`com.jcraft.jsch.JSchException: Auth fail`)
jenkinsdocker
问题背景在Jenkins与目标服务器之间通过SSH进行自动化部署时,遇到以下错误:com.jcraft.jsch.JSchException:Authfail核心原因分析原因分类具体表现底层机制说明密钥格式不兼容-----BEGINOPENSSHPRIVATEKEY-----头部的密钥Jenkins使用的JSch库仅支持旧版PEM格式(-----BEGINRSAPRIVATEKEY-----)凭据
- 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