
面试题目
文章平均质量分 77
Coding懒懒
享受技术人生
展开
-
Nodejs总结
什么是NodeJS Node.js采用模块化结构,按照CommonJS规范定义和使用模块。模块与文件是一一对应关系,即加载一个模块,实际上就是加载对应的一个模块文件。 JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。每一种解析器都是一个运行环境,不但允许JS定转载 2015-07-26 00:19:24 · 1181 阅读 · 0 评论 -
输入一个int型数据,计算出该int型数据在内存中存储时1的个数。
问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文中所有的算法。如果您上头上有更好的算法,或者本文没有提到的算法,请不要吝惜您的代码,分享的时候,也转载 2015-08-12 01:10:34 · 7328 阅读 · 0 评论 -
句子逆序(循环两次)
描述: 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/** * 反转句子 * * @param sentence 原句子 * @return 反转后的句子 */public String reverse(String sentence);知识点转载 2015-08-12 02:08:45 · 816 阅读 · 0 评论 -
并查集 杭电1232畅通工程
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点转载 2015-08-12 23:48:09 · 520 阅读 · 0 评论 -
哈夫曼树详解
回答问题之前先来看看什么是压缩。当你有天走在路上,碰见熟人对你说:“吃了?”你一定知道他是在打招呼,既不是要请客也不是让你“没吃赶紧回家吃去”。这一句简单的“吃了”是礼貌和问好的体现,也是一种信息的压缩。笼统地说,把一系列已有信息通过一定方法处理,使得其长度缩短,并且信息含量基本或者完全不变,就称之为压缩。 计算机上的压缩过程我们都知道,计算机采用的是2进制系统转载 2015-08-12 23:31:26 · 2066 阅读 · 0 评论 -
(int&)a与*(int*)&a
先看一段程序123456789101112131415161718192021222324252627#include "stdafx.转载 2015-07-23 11:26:04 · 1663 阅读 · 1 评论 -
前端知识点大全
前端开发面试知识点大纲:HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应。JavaScript: 数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax等。其他: HTT转载 2015-07-23 16:01:07 · 15502 阅读 · 1 评论 -
值传递,指针传递 ,引用传递的总结
C++中值传递、指针传递、引用传递的总结 收藏 1. 值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。void swap(int a,int b){ int temp; temp=a;转载 2015-07-24 10:08:42 · 1332 阅读 · 0 评论 -
java中String s="abc"及String s=new String("abc")详解
java中String s="abc"及String s=new String("abc")详解1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另转载 2015-07-24 10:33:57 · 908 阅读 · 0 评论 -
C++函数中那些不可以被声明为虚函数的函数
常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。1、为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。2、为什么C++不支持构造函数为虚函数? 这个原因很简单,主要是从语义上考虑转载 2015-09-03 18:25:34 · 533 阅读 · 0 评论 -
HWOJ题目
1.HWOJ计算字符串最后一个单词长度题目:计算字符串最后一个单词的长度,单词以空格隔开输入样例:hello world输出样例:5题目分析:①由于题目中输入的字符串有空格,所以我们这里不能用scanf输入,我们采用gets(s)②我们要检测最后一个单词的长度,也就是可以说明我们可以从后面往前面循环找出第一个空格位置,之后直接求差值我们就可以知道这个字符串最后一转载 2015-08-07 01:33:19 · 1153 阅读 · 0 评论 -
N个人戴帽子问题
1. N个人戴帽子,有红黄两种颜色的帽子。每个人都能看到其他所有人的帽子,但是看不到自己的。从最后一个人开始,报自己帽子的颜色。问,事先商量什么策略可以使最后报对帽子颜色的人至少为N-1?(没有色盲) 还可以扩展到m种颜色。。。 策略: 对M种帽子编号,并且加权,使0号颜色帽子权值为1,1号颜色帽子权值为2.,M-1号帽子颜色为M,最后一转载 2015-09-25 21:40:27 · 3640 阅读 · 0 评论 -
多线程笔试面试题汇总
系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”。有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题。 -----转载 2015-08-22 01:44:41 · 938 阅读 · 0 评论 -
数据库建表原则
关键字: 数据库建表原则·1. 原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。〖例〗:一份员工履历资料,在人力资源转载 2015-09-08 16:33:19 · 13792 阅读 · 0 评论 -
sql行列互换
有一个SQL题在面试中出现的概率极高,最近有学生出去面试仍然会遇到这样的题目,在这里跟大家分享一下。题目:数据库中有一张如下所示的表,表名为sales。年季度销售量1991111199121219913131991414原创 2015-07-19 10:56:29 · 532 阅读 · 1 评论 -
java面试题
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的优快云博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补转载 2015-07-19 10:39:10 · 1445 阅读 · 0 评论 -
三次握手和四次握手
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:转载 2015-05-06 01:11:03 · 450 阅读 · 0 评论 -
访问一个网站需要那几个协议?
作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你得在浏览器里输入要网址:2. 浏览器查找域名的IP地址导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:转载 2015-07-14 11:04:21 · 17475 阅读 · 0 评论 -
安卓4大组件
这个文章主要是讲Android开发的四大组件,本文主要分为一、Activity详解二、Service详解三、Broadcast Receiver详解四、Content Provider详解外加一个重要组件 intent的详解。Android四大基本组件介绍与生命周期Android四大基本组件分别是Activity,Service服务,Content原创 2015-07-14 11:07:31 · 537 阅读 · 0 评论 -
高并发网站怎么搭建?数据库分表?
数据库的水平划分和垂直划分很早以前就接触了,只是没有实践,没有什么体会,只有最近两年才有接触,今天也和大家聊聊。垂直划分 按照功能划分,把数据分别放到不同的数据库和服务器。当一个网站开始刚刚创建时,可能只是考虑一天只有几十或者几百个人访问,数据库可能就个db,所有表都放一起,一台普通的服务器可能就够了,而且开发人员也非常高兴,而且信心十足转载 2015-07-14 14:36:21 · 671 阅读 · 0 评论 -
第一范式 第二范式 第三范式
第一范式存在非主属性对码的部分依赖关系 R(A,B,C) AB是码 C是非主属性 B-->C B决定C C部分依赖于B第一范式定义:如果关系R 中所有属性的值域都是单纯域,那么关系模式R是第一范式的那么符合第一模式的特点就有1)有主关键字2)主键不能为空,3)主键不能重复,4)字段不可以再分例如: StudyNo原创 2015-07-15 17:26:38 · 2231 阅读 · 0 评论 -
面向对象的5个基本原则
最基本的设计原则有5条,分别是:单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则和Liskov替换原则。 单一职责原则 对于单一职责原则,其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖转载 2015-08-24 15:28:34 · 683 阅读 · 0 评论 -
C++单例模式
单例模式单例模式,可以说设计模式中最常应用的一种模式了,据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况,可能会优先考虑使用全局或者静态变量的方式,这样比较简单,也是没学过设计模式的人所能想到的最简单的方式了。一般情况下,我们建立的一些类是属于工具性质的,基本不用存储太多的跟自身有关的数据,在这种情况下,每次都去new一转载 2015-08-24 16:20:47 · 449 阅读 · 0 评论 -
java框架—spring
1.什么是spring框架spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。2,架构概述 1)IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中Bean转载 2015-07-17 10:11:10 · 446 阅读 · 0 评论 -
算法策略的总结
策略是面向问题的,算法是面向实现的。 一、不同算法策略特点小结1、贪心策略 贪心策略一方面是求解过程比较简单的算法,另一方面它又是对能适用问题的条件要求最严格(即适用范围很小)的算法。 贪心策略解决问题是按一定顺序,在只考虑当前局部信息的情况下,就做出一定的决策,最终得出问题的解。 即:通过局部最优决策能得到全局最优决策2、转载 2015-07-17 17:44:35 · 1046 阅读 · 0 评论 -
C++类、结构对象内存布局浅析
最近面试多,出的题目很多都有如下形式,给定一个class或者struct的定义,例如这样:[cpp] view plaincopystruct node { int a; char b; int c; char d; }; 问题是:sizeof(node) = ?转载 2015-07-17 17:22:00 · 379 阅读 · 0 评论 -
Catalan数——卡特兰数
Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了下,原来是Catalan数。悲剧啊,现在整理一下一、Catalan数的定义令h(1)=1,Catalan数满足递归式:h(n) = h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1),n>=2该递推关系的解为:h(n) = C(2n转载 2015-08-11 09:57:11 · 773 阅读 · 0 评论 -
fork()函数详解
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来转载 2015-07-18 23:31:34 · 555 阅读 · 1 评论 -
fork()+printf(/n)或printf()的区别?
前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?#include #include #include int main(void){ int i; for(i=0; i<2; i++){ fo转载 2015-07-18 23:40:15 · 3067 阅读 · 5 评论 -
C语言---函数返回局部变量
一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意转载 2015-09-08 10:42:36 · 900 阅读 · 0 评论