![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试、笔试
leek1727
这个作者很懒,什么都没留下…
展开
-
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它原创 2016-04-02 14:38:20 · 413 阅读 · 0 评论 -
C++类体系中,不能被派生类继承的
编辑器总是根据类型来调用类成员函数。但是一个派生类的指针可以安全转化为一个基类指针。这样删除一个基类的指针的时候,c++不管这个指针指向一个基类对象还是一个派生类对象,调用的都是基类的析构函数而不是派生类的。如果你依赖于派生类的析构函数的代码来释放资源,而没有重载析构函数,那么会有资源泄露。所以建议的方式是将析构函数声明为虚函数。也就是delete a的时候,也会执行派生类的析构函数。原创 2016-07-21 17:03:05 · 6630 阅读 · 0 评论 -
J2EE中,HttpServlet容器响应Web客户端请求流程
HttpServlet容器响应Web客户端请求流程如下:(1)Web客户向Servlet容器发出Http请求;(2)Servlet容器解析Web客户的Http请求;(3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;(4)Servlet容器创建一个HttpResponse对象;(5)Servlet容器调用HttpServlet的serv原创 2016-07-21 15:42:39 · 1457 阅读 · 0 评论 -
关于宏和函数、内联函数的一些区别
宏和函数的区别:1.宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型。2.宏的参数替换是不经过计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自热是经过计算得来的。3.宏在编译之前进行,即先用宏替换宏名,然后再编译的,而函数显然是编译之后,在执行时才调用的。因此,宏占用的是编译的时间,而原创 2016-07-21 15:15:52 · 475 阅读 · 0 评论 -
static和const关键字的作用
static关键字有以下作用:(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍然维持上一次的值;(2)在模块内的static全局变量可以被模块内的所有函数访问,但是不能被模块外其他函数访问;(3)在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内;(4)在类中的s原创 2016-07-19 22:32:26 · 350 阅读 · 0 评论 -
智能指针
1、auto_ptr的意义std::auto_ptr是C++标准库里面的模板库,属于智能指针。当系统异常退出的时候避免资源泄露(内存)。其他的资源还对应其他的智能指针。2、auto_ptr的使用std::auto_ptrtest(new int(1));test将是一个auto_ptr的对象,使用一个int指针进行初始化。test可以象其他指针一样使用,如使用*使用->但是++原创 2016-07-29 17:12:44 · 399 阅读 · 0 评论 -
关于UNIX系统代码段和数据段分开
(1)代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作----它是不可写的。(2)数据段:数据段用来存放可执行文件中已初始化全局变量,换句话说就是存放程序静态分配的变量和全局变量。(3)BSS段:BSS段包含了程序中未初始化的全局变量,在内存中bss段全部置零。(4)堆(原创 2016-07-19 09:46:59 · 1347 阅读 · 0 评论 -
解决hash冲突的方法
与开放定址法相比,拉链法有如下几个有点:(1)拉链法处理冲突简单,且无堆积现象,即非同义词绝不会发生冲突,因此平均查找长度较短;(2)由于拉链法中各链表上的节点空间是动态申请的,故它更适合于造表前无法确定表长的情况;(3)开放定址法为减少冲突,要求装填因子a较小,故当节点规模较大时会浪费很多空间。而拉链法中可取a>=1,且节点较大时,拉链法中增加的指针域可忽略不计,因此节省空间;(原创 2016-07-18 20:59:06 · 358 阅读 · 0 评论 -
关于P问题,NP问题和NPC问题
1、P问题P是一个判定问题类,这些问题可以用一个确定性的算法在多项式时间内判定或者解出。如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题集合。NP是一个判定问题类,这些问题可以用一个确定的算法在多项式时间内检查或者验证他们的解;P事实上很直观,我们通常在编程中求解的原创 2016-06-29 21:59:18 · 744 阅读 · 0 评论 -
支持向量机的核函数
支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,他通过引入和函数,巧妙地解决了在高维空间中的内积运算,从而很好的解决了非线性分类问题。构造出一个具有良好性能的SVM,核函数的选择是关键,核函数的选择包括两部分工作:一是核函数类型的选择,二是确定核函数类型后相关参数的选择。因此如何根据具体的数据选择恰当的核函数是SVM应用领域遇到的一个重原创 2016-05-31 23:09:35 · 2735 阅读 · 1 评论 -
几种不同的分类器
1、SVM对噪声(如来自其他分布的噪声样本)鲁棒SVM本身对噪声具有一定的鲁棒性,但是实验证明,是当噪声率低于一定水平的噪声对SVM没有太大的影响,但是随着噪声率的不断增加,分类器的识别率会降低2、在AdaBoost算法中所有被分错的样本的权重更新比例相同AdaBoost算法中不同的训练集是通过每个样本对应的权重来实现的。开始时,每个样本对应的权重是相同的,即其中N为样本个数,在此样本原创 2016-05-29 23:19:09 · 5081 阅读 · 0 评论 -
线性分类器
线性分类器有三大类:感知器准则函数、SVM、Fisher准则,而贝叶斯分类器不是线性分类器。感知器准则函数:代价函数J=-(W*X+W0),分类的准则是最小化代价函数。感知器是神经网络(NN)的基础,网上有很多的介绍。SVM:支持向量机也是很经典的算法,优化目标是最大间隔(margin),又称最大间隔分类器,是一种典型的线性分类器。(使用核函数可解决非线性问题)Fisher准则:更广泛原创 2016-05-28 10:46:48 · 1729 阅读 · 0 评论 -
基于二次准则函数的H-K算法较之于感知器算法的优点
HK算法的思想很朴实,就是在最小均方误差准则下求得权矢量。它相对于感知器算法的优点在于,它适用于线性可分和非线性可分的情况。对于线性可分的情况,给出最优权矢量,对于分线性可分的情况,能够判别出来,以退出迭代过程。原创 2016-05-28 10:33:36 · 11019 阅读 · 0 评论 -
UNIX操作系统中Shell程序设计
在UNIX操作系统中,若用户键入的命令参数的个数为1时,执行cat$1命令:若用户键入的命令个数为2时,执行cat>>$212345case() in 1)cat $1 2)cat>>$2 *)echo 'defult...'case原创 2016-04-12 19:53:59 · 1378 阅读 · 0 评论 -
C/C++分配内存的方法
(1)malloc函数:void *malloc(unsigned int size)在内存的动态分配区域中分配一个长度为size的连续空间,如果分配成功,则返回所分配内存空间的首地址,否则返回NULL,申请的内存不会进行初始化。(2)calloc函数:void *calloc(unsigned int num, unsigned int size)按照所给的数据个数和数据类型所占字节原创 2016-08-18 20:42:59 · 419 阅读 · 0 评论