Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

设计模式——抽象工厂模式及Java实现

设计模式——抽象工厂模式及Java实现

设计模式在大型软件工程中很重要,软件工程中采用了优秀的设计模式有利于代码维护,方便日后更改和添加功能。设计模式有很多,而且也随着时间在不断增多,其中最著名的是四人组写的23种设计模式,并分为三大类:创建型模式,结构型模式,行为型模式。抽象工厂模式属于创建型模式里面的五种之一,其中的工厂模式由于违背开闭原则(也就是对扩展开发,对修改关闭),所以抽象工厂模式可以有效解决这里先给出java的抽象工厂模式的示例代码://抽象的人类,为所有的人造人提供一个相同的人造...
OpenCV_haar分类器的训练

OpenCV_haar分类器的训练

因为工作的原因,本人需要用到分类器来检测目标,所以需要训练自己的分类器在这里我就简单的说下步骤和注意事项。HaarTraining步骤1.正负样本处理正样本处理需要对正样本进行归一化处理,一般情况下可以用Photoshop对图像进行尺寸统一处理,比如都是20*20或者24*24,其中其它尺寸比如240*15也可以做成样本的,不要求是正方形,或者20*20,24*24,。这是取决于你的目标的形状,不过正样本的分辨率不要太高,太高的话在训练时会内存分配不足引起...
Spring学习之第一个Spring MVC程序(IDEA开发环境)

Spring学习之第一个Spring MVC程序(IDEA开发环境)

回顾Java平台上Web开发历程来看,从Servlet出现开始,到JSP繁盛一时,然后是Servlet+JSP时代,最后演化为现在Web开发框架盛行的时代。一般接触到一个新的Web框架,都会想问这个框架优势在哪?或者比其他框架好在哪里?如果没有使用Spring MVC框架,而是使用其他框架并且能够很好地满足要求,这样转换框架或许不是一个好主意。如果像我这样首次接触Web开发框架,Spring MVC还是值得优先考虑的。Web层,更确切说是在框架处理器方面,...
SpringMVC总结篇

SpringMVC总结篇

SpringMVC是基于MVC设计理念的一款优秀的Web框架,是目前最流行的MVC框架之一,SpringMVC通过一套注解,让POPJ成为处理请求的控制器,而无需实现任何接口,然后使用实现接口的控制器也完全没问题;支持REST风格的URL请求;采用松散耦合架构,比其他MVC框架更具有灵活性和扩展性。关于SpringMVC工程如何搭建请点击:Spring学习之第一个Spring MVC程序(IDEA开发环境)。0 XML配置文件 web.xml配置Disp...
Linux动态库文件 soname realname linkname 详解

Linux动态库文件 soname realname linkname 详解

先明白动态库文件的3个名字soname :通过gcc/g++ -soname,libtest2.so.1 设置他是程序中连接文件的时候找的文件,本身为一个连接,他包含大版本,如果任何小版本的变化,直接替换到 realname,然后ln -s 建立同样的soname 到新的realname文件即可,不需要重新编译程序。realname:是动态库文件的真实的名字及-o libtest2.so.1.1 生成的,sonanme 软连接指向它,虽然程序连接的...
C++ 类构造函数和析构函数

C++ 类构造函数和析构函数

C++ 类构造函数和析构函数1、构造函数:构造函数用于对对象的数据进行初始化,构造函数的和一般的方法(函数)有一些不同 他的名字必须是类的名字,不能带返回值。一般来说即使你不建立构造函数,也会 为你建立默认的构造函数,但是默认的构造函数是什么都不干的。如: stu::stu(void){}2、析构函数:析构函数用于对对象的内存进行回收,(如用malloc和new分配的内存空间)析构函数在 对象消亡的时候会被自动调用,...
C/C++ 静态变量解析

C/C++ 静态变量解析

静态变量:这种变量的内存将保存到整个程序的结束,他的内存是独立存放到一个叫做静态内存区的。 所有的静态的变量如果不赋值,会默认赋值为0,不管是结构体还是其他类型的变量, 当然静态变量的初始化也分为静态初始化和动态初始化,如果有一些不可确定的因素会使用动态初始化 比如: int a = 1;静态初始化。 double a = sqrt(2);动态初始化因为sqrt是一个不确定的因素。 有几个概念 内部全局:内部...
Python基础学习之Dict

Python基础学习之Dict

一、什么是字典?字典是Python语言中唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。字典类型与序列类型的区别:1.存取和访问数据的方式不同。2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序...
Python运算符与表达式

Python运算符与表达式

Python运算符包括赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、成员运算符和身份运算符。表达式是将不同类型的数据(常亮、变量、函数)用运算符按照一定得规则连接起来的式子。算术运算符和算术表达式算术运算符包括四则运算符、求模预算符和幂运算符。算术运算符表达式说明+x + y加法运算-x - y减法运算*x * y乘法运算/x / y除法运算%x%y求模运算**x**yx的y次方//x // y两数相除向下取整Python中的除法运算(Pyth...
寻找KMeans的最优K

寻找KMeans的最优K

K-Means聚类算法是最为经典的,同时也是使用最为广泛的一种基于划分的聚类算法,它属于基于距离的无监督聚类算法。KMeans算法简单实用,在机器学习算法中占有重要的地位。对于KMeans算法而言,如何确定K值,确实让人头疼的事情。最近这几天一直忙于构建公司的推荐引擎。对用户群体的分类,要使用KMeans聚类算法,就研究了一下。探索K的选择 对数据进行分析之前,采用一些探索性分析手段还是很有必要的。 对于高维空间,我们可以采用降维的方式,把多维向量转化...
Java中文字符处理的四大迷题

Java中文字符处理的四大迷题

虽然计算机对英文字符的支持非常不错,我们也恨不得写的程序只会处理英文的数据,但是昨为中国人,无可避免地要处理一些中文字符。当很简单的一件事情,遇到了中文,一切就不同了!本文就会讲述实际生产环境中遇到的四个中文迷题,欢迎大家参与补充!1、“我”讲的其它机器听不懂? 当把一串中文字符,通过HTTP、TCP方式传递到另外一个系统时,会经常惊奇地发现,在发送前还是好好的,但是收到后却全坏了!怎么办?下面提供几种情况,对症下药: (1)发...
C++实用数据结构:二叉索引树

C++实用数据结构:二叉索引树

看下面这个问题(动态连续和查询):有一个数组A(长度为n),要求进行两种操作:add(i,x):让Ai增大x;query(a,b):询问Aa+Aa+1+...+Ab的和;若进行模拟,则每次query操作的最坏的时间复杂度为O(n),在n较大时速度较慢。用前缀和也不能提高效率(每次add操作最坏为O(n))。有一种数据结构,可以在O(n)时间里初始化,用O(logn)的速度执行add操作或查询前缀和,从而执行query操作。首先,我们来介绍“lo...
OpenGL 渲染方式在屏 离屏 CPU

OpenGL 渲染方式在屏 离屏 CPU

一、概念理解OpenGL中,GPU屏幕渲染有以下两种方式:On-Screen Rendering意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。Off-Screen Rendering意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。二、离屏渲染的是是非非相比于当前屏幕渲染,离屏渲染的代价是很高的,主要体现在两个方面:创建新缓冲区要想进行离屏渲染,首先要创建一个新的缓冲区。上下文切换离屏渲染的整个过程,...
再谈二叉树的深度

再谈二叉树的深度

题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根节点的深度为1。前文:二叉树的深度 http://www.linuxidc.com/Linux/2014-09/106591.htm思路:如果根节点为空,则深度为0,返回0,递归的出口,如果根节点不为空,那么深度至少为1,然后我们求他们左右子树的深度,比较左右子树深度值,返回较大的那一个,通过递归调用#include<stdio....
两个链表第一个公共结点

两个链表第一个公共结点

题目:输入两个链表,找出它们的第一个公共节点。链表的定义如下:struct ListNode{int m_nValue;ListNode *m_pNext;};思路1:采用蛮力的方法:在第一个链表上顺序遍历每个节点,每遍历到一个节点的时候,在第二个链表上顺序遍历每个节点。如果第二个链表上的节点和第一个链表上的节点一样,就说明两个链表在节点上重合,于是就找到了公共的节点。而通常蛮力并不是好的方法。思路2:首先遍历两个链表得到它们的长度,就能知道哪个链表比较长...
<< 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 >>