自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (12)
  • 收藏
  • 关注

原创 关于C、C 、Java、Python语言类型的分类

C和C++是编译型语言,编译器将源文件编译成目标机器码,机器可直接运行,下次运行无需编译。但是如果要换一个平台执行,则必须重新编译。 Java可以说是半编译型半解释型语言,Java源文件.java文件首先编译成.class(字节码),然后在解释器(JVM)中取出一行解释一行的方式来执行,也正是这个原因,不同平台有不同的JVM,使得Java实现了夸平台。 Python算是...

2019-10-24 11:04:08 982

原创 设计模式------抽象工厂模式

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。首先回顾工厂方法模式,定义一个用于创建对象的接口,让子类决定去实例化哪个类。下面通过一个改进程序来引出工厂方法模式的思考方式。首先看一个没有涉及模式的例子:/* * * 无任何涉及模式,在一个数据库中添加数据和查询 * */class user{ String _name; int ...

2019-05-24 16:51:10 191

原创 设计模式------建造者模式

建造者模式又叫生成器模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式将一个复杂的对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。如果用了建造者模式,那么用户只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道。在上图中Builder是控制大致流程的抽象类或接口。ConcreteBuilder是集成Builder后重...

2019-05-09 17:05:53 178

原创 设计模式----迪米特法则

迪米特法则也叫最少知识原则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。在类的结构设计上,每一个类都应当尽量降低成员之间的访问权限,这一点和类的封装特性不谋而合。所以迪米特法则的根本思想强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。...

2019-05-09 15:29:28 164

原创 设计模式------外观模式

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式应用场景有三:1. 在设计初期阶段,应该有意识的将不同的层分开,比如经典三层架构数据访问层、业务逻辑层、表示层。2. 在开发阶段,子系统不断重构越来越复杂,很多类最好提供一个fade进行接口封装,减少他们之间的依赖。3. 维护大型系统时,提供fade管理陈旧代码,新开发的代码只与...

2019-05-09 11:52:38 110

原创 设计模式------模板方法模式

模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是通过把不变行为搬移到超类,去除子类中重复代码,以体现它的优势。模板方法模式提供了一个很好的代码复用平台。所以,当不变和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬移到单一的地方...

2019-05-09 11:45:33 133

原创 设计模式----原型模式

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式就是从一个对象再创建另一个可定制对象,而且不需知道任何创建的细节。省去了new对象时调用构造函数等的开销,只需一个clone函数即可搞定对象创建。创建对象时因为是新建对象所以和C++一样存在浅拷贝和深拷贝的问题。举例来讲,像MemberwiseClone()方法,如果字段是值类型的,则对该字段执行逐位复制,如...

2019-05-08 11:13:38 137

原创 设计模式------代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问。代理一般分为几种:远程代理、虚拟代理、安全代理等。远程代理:为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。虚拟代理:是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。这样就可以达到性能的最优化,比如说打开一个很大的html网页,里面有很多图片和文字,但还是可以很快的打开它,...

2019-04-29 23:45:42 115

原创 设计模式----装饰模式

装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。下面举两个例子实现相同的一个人穿衣的功能流程,比较有无装饰模式的区别,装饰模式把所需的功能按正确的顺序串联起来进行控制,感觉封装的更好。装饰模式结构图:Component是定义一个对象接口,可以给这些对象动态的添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加...

2019-04-29 15:53:53 111

原创 设计模式------依赖倒转原则和里式替换原则

依赖倒转原则原话解释抽象不应该依赖细节,细节应该依赖对象,也就是要针对接口编程,不要对实现编程。官方定义两方面:A.高层模块不应该依赖底层模块,两个都应该依赖抽象;B.抽象不应该依赖细节,细节应该依赖抽象。对于抽象,所谓依赖了抽象的接口或抽象类就不怕更改,还需要介入介绍里式替换原则。里式替换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且他察觉不出父类对象和子类对象的...

2019-04-29 01:03:04 138

原创 设计模式------工厂方法模式

工厂方法模式主要与简单工厂模式相比较,通过前面的文章“计算器简单工厂模式”可知,简单工厂模式的最大优点就是工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。设想:如果新加一个运算比如开放,我们一方面要加开方类(这是扩展),另一方面我们要在工厂类中加case条件(这是修改),所以违背了开—闭原则。工厂方法模式定义一个用于创建对象的接口,...

2019-04-28 23:42:34 88

原创 设计模式------单一职责原则和开—闭原则

单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意向不到的破坏。比如说俄罗斯方块游戏,考虑哪些是界面,哪些是逻辑,然后封装成不同的类。软件设计真正要做的许多内容就是发现职责并把那些职责相互分离,如何判断是否应该分离出类来,就...

2019-04-26 00:06:43 227

原创 设计模式------策略模式

策略模式:他定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响使用算法的客户。父类Strategy定义所有算法的公共接口,比如说不管打折、原价、或者满减模式,都会得到一个价格的接口getResult()伪代码示例:// 抽象算法父类abstract class father{ // 算法方法 public void fun();...

2019-04-23 23:28:29 105

原创 设计模式-----计算器简单工厂模式

简单工厂模式就是使用父类指针指向实例化对象,思考到底使用多态要实例化谁,将来增加一个单独的类来创造实例,但是在外观实现上还是使用之前的父类指针。下面以一个面向对象思想的计算器程序来实现简单工厂模式。class interator{ protected double ValueA; protected double ValueB; public void setA(double s...

2019-04-20 22:56:44 904

原创 嵌入式linux------编写C语言程序点亮led灯

使用c语言替代汇编的原理也是往寄存器地址写数值,访问寄存器地址和访问内存是一样的。给出C语言程序:int main(){ unsigned int *pGPFDAT = (unsigned int*)0x56000050; unsigned int *pGPFCON = (unsigned int*)0x56000054; *pGPFDAT = 0x400; *pGPFCON =...

2019-04-01 22:38:35 1823

原创 嵌入式linux------大小字节序和位操作

字节序:ARM芯片存储数据的方式,多数默认使用小字节序。低位存放在低地址是小字节序,高位存放在低地址是大字节序。2440默认使用小字节序,但是可以通过设置某个寄存器去设置系统使用大或小字节序。使用C语言程序判断大小字节序程序如下:void judge(){ union stru{ int a; char b; } stru.a = 1; ...

2019-03-24 10:20:52 283

原创 嵌入式linux------汇编码和机器码

使用点亮LED的简单程序分析其汇编码和机器码,通过直接修改bin文件中的机器码修改功能,点亮其他的LED灯。首先修改Makefile文件把elf文件反汇编生成dis文件,查看其真正的汇编指令:all: arm-linux-gcc -c -o Led_on.o Led_on.S arm-linux-ld -Ttext 0 Led_on.o -o Led_on.elf arm-linu...

2019-03-23 22:33:41 956

原创 嵌入式linux------第一个嵌入式程序,点亮LED灯

开发嵌入式程序一般需要三个步骤:1.看原理图,确定引脚,在此程序中就是找到控制LED的引脚。2. 查阅主芯片手册,确定如何设置控制引脚。3. 写程序。查看手册过程:在芯片手册中搜索led找到对应gpio引脚n_LED1,(在芯片引脚连接中,同名网络(net)表示连接在一起),n表示低电平有效,低电平时灯亮。n_LED1连接GPF4,对于引脚的设置一般分为两步首先设置为输出或者输入引脚,其次...

2019-03-19 23:17:54 5277

原创 真机部署Openstack环境踩坑记录

最近项目上需要部署openstack云测试环境,遂在戴尔R730和联想ThinkServer350上部署环境。1. 制作CentOS7.3系统的U盘安装盘并安装,注意安装带有桌面系统的版本,安装过程中有两个问题,其一是在安装开始界面设置U盘的引导,U盘的分区比较靠后,可以使用ls /dev | grep sd来过滤,一般在最后面,比如/dev/sdb4或者/dev/sdc4;其二是在安装过程中...

2019-03-13 21:59:35 1074

原创 嵌入式linux------MMU内存映射和访问权限检查

在JZ2440中有64MB的内存,假设在内存SDRAM中有n个APP在同时运行,他们的地址各不相同。程序在运行时所处的地址是链接地址,所以在编译某个APP时需要单独指定其链接地址,但是这是不可能的,因为有可能在同一时间有成百上千个APP在同时运行,APP太多不可能全部重新编译,也不可能预测它的地址。为了解决这个问题,必须引入虚拟地址,即虽然这些APP保存在内存中的地址各不一样,但是当CPU运行...

2019-03-11 11:58:33 655

原创 PMP---回顾pmp知识要点

转眼间距离去年考PMP已经过去整整一年了,虽然在工作中并没有大范围应用到其中的知识,但是作为周年纪念,还是回顾一下当初学习的知识点,以不枉当初三月的苦读。项目管理就是将知识、技能、工具与技术应用于项目活动,以满足项目的要求。项目管理包含10大知识领域项目整合管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理、项目干系人管理,...

2019-03-09 16:07:18 331

原创 嵌入式linux----ARM入门,熟悉ARM处理器S3C2440

ARM(Advanced RISC Machines),是一个公司的名字,也是对一类微处理器的统称,也可以是一种技术的名字。ARM公司设计了很多处理器,他们根据内核的不同划分到各个系列中,系列划分是基于ARM7、ARM9、ARM10、ARM11内核的,在每个系列中,存储器管理、cache和TCM处理器扩展也有多种变化。ARM7内核是冯诺依曼体系结构,数据和指令使用同一条总线,内核有一条3级流水...

2019-02-26 22:55:10 1602

原创 嵌入式linux------MMU和Cache

内存管理单元(MMU)负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。现代多用户多进程操作系统通过MMU使得各个用户进程都拥有自己独立的地址空间:地址映射使得各进程拥有看起来一样的地址空间,内存访问权限的检查可以保护每个进程所用的内存不会被其他进程破坏。虚拟存储器在逻辑上对内存容量进行扩充,给人们一种内存很大的假象。虚拟地址范围是0~0xFFFFFFFF,这个地址范围称为虚拟地...

2019-02-25 23:16:21 535

原创 嵌入式linux------不同位宽设备的连接和数据读取

在S3C2440中各设备都属cpu统一编址。cpu发出地址送达内存控制器,然后内存控制器发出地址有一部分接到芯片上,有一部分未接,接到芯片上的引脚用来确定读取这个芯片上哪个单元,把这些单元返回给内存控制器,而内存控制器会使用那些未接的引脚来确定从这个单元中取出哪个字节返回给cpu,所以,不管连接情况如何,这些地址线都会用到。内存控制器与不同位宽rom连接方式如下:下面以两个例子来分析此...

2019-02-18 16:41:34 258

原创 嵌入式linux------通用异步收发UART(数据传输)

通用异步收发UART用来传输穿行数据,以全双工方式传输,最精简的连线方式只有三条线:TxD用于发送数据,RxD用于接收数据,Gnd为地线为双方提供参考电平。                                        UART采用标准的TTL/CMOS逻辑电平,高电平表示1,低电平表示0。转换为RS232逻辑电平后往往传输距离远、抗干扰能力强。数据传输TxD和RxD以...

2019-02-17 12:25:35 929

原创 嵌入式linux------S3C2440时钟体系

S3C2440的时钟控制逻辑既可以外接晶振,然后通过内部电路产生时钟源;也可以直接使用外部提供的时钟源,通过引脚来选择。三种时钟:1. FCLK,用于cpu核;2. HCLK,用于AHB总线上的设备,AHB总线用于高性能模块之间的连接。3. PCLK,用于APB总线上的设备,APB总线用于低带宽周边外设,如uart、i2c等。计算机通过外接晶振后通过内部电路,也就是时钟控制逻辑的锁相环PLL来...

2019-02-16 16:14:26 223

原创 嵌入式linux------使用uboot烧写裸板程序

1. 使用op/eop把u-boot.bin烧写到nor flash2. 开发板设置为nor启动,上电后马上在串口输入空格,使板子进入uboot而不是启动板子上的内核3. 连接pc----开发板的usb device口,安装驱动4. 在uboot串口菜单中输入n,表示接受usb文件并烧写到nand5. 使用dnw——100ask.exe发送bin文件6. uboot会自动接受并...

2019-02-03 10:47:51 576

原创 嵌入式linux------使用eop烧写文件

1. 将eop连接到Pc2. 安装eop驱动,需要多次安装。3. 安装app,01.OpenOCD with GUI setup.exe,默认路径C:\Program Files (x86)\openocd\0.6.0\bin会添加oflash.exe,在命令行中输入oflash可查看安装情况。4. 开发板连接到eop,eop连接到pc5. cmd进入bin文件目录,执行oflas...

2019-02-03 09:49:39 1033

原创 linux内核----概念

1. linux参照了Unix的设计理念,并且保证了应用程序编程接口一致,但并未使用任何Unix的源码。2. 操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分,这些部分包括内核、设备驱动程序、启动引导程序、命令行shell获取其他种类的用户界面。3. 内核是管理者或操作系统核心,通常由负责响应中断的中断服务程序、负责管理多个进程而分享处理器时间的调度程序、负责管理进程地址空间...

2019-01-31 16:37:14 398

原创 linux 批量系统安装服务PXE+Kickstart

无人值守安装系统:使用PXE+TFTP+FTP+DHCP+Kickstart服务搭建出一个无人值守安装系统。PXE预启动执行环境,用于在无人值守安装系统中引导客户端主机安装linux操作系统。Kickstart的工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数的时候自动匹配Kickstart生成的文件。一. 配置DHCP服务程序    DH...

2019-01-19 20:28:49 164

原创 linux MariaDB数据库

本章介绍MariaDB数据库的基本用法,包括新建数据库、创建账户和账户、创建数据库和表单、管理表单和数据、数据库备份和恢复等。一.新建数据库1. 安装部署MariaDB数据库主程序和服务端程序。yum install mariadb mariadb-server2. 重启服务。systemctl start mariadb;  systemctl enable mariadb;3....

2019-01-16 23:07:46 233

原创 linux iSCSI服务网络存储

iSCSI是一种将SCSI接口与以太网技术相结合的新型存储技术,通过网络获取其他电脑的硬盘资源。iSCSI-HBA卡连接SCSI接口或FC(光纤通道)总线和内存,基于iSCSI协议把硬盘设备命令和数据打包成标准的TCP/IP数据包,然后通过以太网传送到目标存储设备,然后目标存储设备基于iSCSI协议把TCP/IP数据包解压成硬盘设备命令和数据。一. 服务器端    1. 创建安全的服务...

2019-01-15 14:41:52 308 4

原创 linux 代理缓存服务squid(正向代理(标准、透明)、反向代理)

正向代理模式:让用户通过squid服务程序获取网站页面资源,以及基于访问控制列表(ACL)功能对用户访问网站行为进行限制,在具体服务方式上又分为标准代理模式和透明代理模式。标准正向代理模式是把网站数据缓存到服务器本地,提高数据资源再次被访问时的效率,但是用户在上网时必须在浏览器等软件中填写代理服务器的IP地址和端口号信息,否则不可以使用服务。透明正向代理模式的作用与标准正向代理模式相同,区...

2019-01-13 12:31:27 608

原创 linux RHEL7虚拟机安装

1. 安装完Vmware Workstation 12以后打开,点击创建新的虚拟机2. 选择典型推荐,点击下一步。2. 选择稍后安装操作系统3. 客户机操作系统类型选择linux,版本为Red Hat Enterprise Linux7 64,然后单击下一步4. 填写虚拟机名称,选择安装位置,然后点击下一步5. 最大磁盘大小选择20G,默认即可,单击下一步...

2019-01-12 15:24:58 939

原创 linux 部署邮件系统(postfix和dovecot服务)

邮件用户代理(MUA)是用户收发邮件的服务。邮件投递代理(MDA)用户离线时,用于保存用户邮件的“信箱”服务,把MTA的邮件保存到本地邮箱中。邮件传输代理(MTA)转发处理不同电子邮件服务供应商之间的邮件。本次实验通过虚拟机服务器搭建一个邮件服务系统,并与处于同一个物理IP地址段的真机互通邮件,真机上安装outlook进行测试。一. 服务系统搭建1. 设置服务器的主机名称。vi...

2019-01-11 11:08:01 1760

原创 linux 动态管理主机地址DHCP服务

动态主机配置协议(DHCP)用于自动管理局域网内主机IP地址、子网掩码、网关地址、DNS地址等。此协议基于UDP协议且仅限于在局域网内使用。涉及几个术语:作用域:一个完整的IP地址网段。 超级作用域:管理处于同一个物理网络中的多个逻辑子网段。 排除范围:排除出去的某些IP地址,确保不分配给客户端。 地址池:作用域减去排除范围剩余的IP地址们,用于分配给客户端。 租约:客户端能够使用动态...

2019-01-10 11:51:03 173

原创 linux 自动挂载服务autofs

很多服务都需要挂载操作,/etc/fstab文件在系统启动时执行自动挂载,然而并不是所有的挂载都会被用到,造成了资源的浪费,所以autofs实现了在相关服务用到对应的挂载操作时执行自动挂载,灵活性更高。1. 安装自动挂载服务。 yum install sutofs2. 自动挂载服务具有主配置文件和子配置文件。主配置文件中写明“挂载目录   子配置文件”;子配置文件对挂载信息进行进一步说明,...

2019-01-09 16:04:54 305

原创 linux 文件共享NFS

当服务器和客户端都是linux系统时,可以采用配置NFS(网络文件系统)实现共享。1. RHEL7系统已经默认安装了NFS服务。 yum install nfs-utils2. 处理一下防火墙。iptables -F ;  service iptables save3. 在服务器上创建共享文件夹mkdir /nfsfile1    设置开放的所有人都可读写操作chmod -Rf 7...

2019-01-09 15:40:23 132

原创 linux 文件共享samba

Samba服务可以支持在windows和linux之间、linux和linux系统之间文件共享。NFS网络文件系统,支持linux和linux之间文件共享。一. Samba服务实现Samba是服务程序的名称,恰好也是软件包的名称。安装服务: yum install samba 查看Samba服务的主配置文件cat /etc/samba/smb.conf,去掉注释、空白行,精简一下的方...

2019-01-08 23:15:32 123

原创 linux BIND提供DNS域名解析服务的正(反)向解析

    DNS域名解析技术是一种用于管理和解析域名与IP地址对应关系的技术。正向解析技术将域名解析为IP地址,反向解析技术是将IP地址解析为域名。提供DNS服务的三种类型服务器:1. 主服务器,在特定区域内具有唯一性,负责维护该区域内的域名和IP地址之间对应关系。2. 从服务器,从主服务器中获取域名与IP地址对应关系并进行维护,以防主服务器宕机等情况。3. 缓存服务器,通过向其他域名解析服务器查询...

2018-12-30 18:47:14 370

python自动化电子书.zip

自己看过的对自己比较有帮助的自动化测试方面的Python书籍,希望与大家分享。

2019-07-08

openstack的qcow2格式的可用镜像

包含qcow2格式的镜像,无需自己重新制作,离线情况下制作镜像非常繁琐,镜像包括windows_server_2012_r2_x64.qcow2.tar win7.qcow2.tar.gz windows_server_2008_r2_x64.qcow2.tar virtio驱动 ubuntu14.04.3_server.qcow2.tar CentOS7.2.qcow2.tar CentOS6.5.qcow2.tar等

2019-03-05

openstack工具MirantisOpenStack-9.0 mirrors bootstraps VirtualBox等

openstack工具,fuel一键安装镜像光盘MirantisOpenStack-9.0 上传本地源mirrors bootstraps 虚拟机VirtualBox等

2019-03-04

MobaXterm_Installer_v11.1亲测好用

特别好用的工具,可以用来管理串口,远程登录服务器等,多种功能集于一身。

2019-01-31

windows环境Java SDK10安装包

自己在网上寻找的windows系统的java sdk10安装包,亲测可用。

2018-11-13

vs2010编译openssl库_1.1.0版本

使用vs2010编译的32位和64位的openssl库,lib文件和dll文件都可直接使用,也包含必要头文件,1.1.0版本。

2018-11-13

vs2008版ocilib库文件

自己编译的vs2008版本的oci的lib和dll的库文件和必要头文件,经过亲自验证可用,直接加入到工程中即可。

2018-11-08

Qt的TcpIp客户端和服务端程序

用qt写的一个tcpip连接方式的客户端和服务端程序,工程代码和库配置齐全可以直接调试运行,对于学习qt的网络通信很有帮助。

2018-10-17

qt线程池的小例子

自己写的一个qt线程池的小工程,qt版本486,也可直接运行

2018-10-13

个人辛苦收藏OpenSceneGraph和Osg_Earth文档资料(多个)

文档资料目录: 6884_Chapter10.pdf OpenSceneGraph 3 Cookbook.pdf OpenSceneGraph 3.0 Beginner's Guide.pdf OpenSceneGraphReferenceDocs-3.4.0.chm OSG_EARTH用户引导.pdf OSG_王锐《最长的一帧》.pdf osgearth.pdf OSGEarth-2.8.chm osgEarth的121个案例详解.pdf osgEarth手册.pdf OSG快速入门指导.pdf

2018-09-28

Qt加载qss(含代码和图片资源)

qt加载qss,界面优化,包含代码和所需图片资源,黑色炫酷和白色靓丽两种

2018-09-03

华为机试题库

比较全面的华为机试题库 带有答案 可以上机调试对比

2014-08-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除