面试
文章平均质量分 69
fesng
CSDN年度博客之星和博客专家,毕业长期在一线互联网专注于Android开发以及Android漏洞挖掘研究。
展开
-
程序员面试考察的5个方面
面试时程序员绕不过去的话题,我的理解是具体分为如下5个方面:1.基本功正所谓美团说的基本功,程序员面试的基本功,每个人的理解不一样。但无外乎几个方面:编程语言+数据结构+算法+平台编程经验。平台编程经验举个例子是你用java,你能够在后端框架写程序还是能够移动端开发安卓。编码规范编码规范不是背一下就行了,背后体现的是项目经验的积累,如何写出高质量的代码,比如编写的代码稳定,可靠,满足安全...原创 2019-12-26 00:28:23 · 2356 阅读 · 1 评论 -
Http的定义及其基本概念介绍
HTTP的特性HTTP构建于TCP/IP协议之上,默认端口号是80 HTTP是无连接无状态的HTTP报文请求报文 HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而 HTTP 中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作原创 2016-03-17 21:00:54 · 1868 阅读 · 1 评论 -
Http的会话跟踪和跨站攻击(xss)
会话跟踪什么是会话?客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话。什么是会话跟踪?会话跟踪指的是对同一个用户对服务器的连续的请求和接受响应的监视。为什么需要会话跟踪?浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是”无状态”的协议,它不能保存客户的信息,即一次响应完成之后连接就断开了,下一次的请求需要重新连接,这样就需要判断是否是同一个用户,所以才有原创 2016-03-17 21:05:16 · 3423 阅读 · 1 评论 -
TCP的基本概念三次握手,四次挥手
TCP的特性TCP提供一种面向连接的、可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP使用累积确认 TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制 三次握手与四次挥手所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共原创 2016-03-17 22:50:18 · 2382 阅读 · 1 评论 -
c语言和java的区别
今晚读了一下c程序设计语言,这是一本经典书籍,发现C语言和java有很多是相同的,毕竟java是由c语言进化来的。我大概从我自己的思考来谈谈不同点1.c语言是面向过程,主要单位是函数,变量和函数的耦合性比较差,大部分是局部变量,java 是面向对象的,属性变量值和方法耦合成一个一个独立的单位-对象2.基本数据类型不同,c语言是int short long char float double 还有一些原创 2015-10-10 10:11:57 · 8035 阅读 · 0 评论 -
面向对象编程(OOP)的五大特征-java学习之旅(1)
这是Alan Kay关于第一个成功的面向对象语言SmallTalk的总结:1.所有的东西都是对象.可将对象想象成一种新型的变量:它保存着数据,但是可要求它对自身进行操作,理论上讲,可从要解决的问题身上提出所有概念性的组件,然后再程序中将其表述为一个对象2.程序是对象的集合,通过消息传递,对象知道自己在做什么.为了向对象发出请求,需要向那个对象发送一条消息 .更具体的讲,可将消息想象成一种调用的请求,原创 2015-09-11 19:55:15 · 1377 阅读 · 0 评论 -
程序员面试技巧
面试需要看的书: 1.《编程之美》 2. 《剑指offer》 3. 《程序员面试金典》 需要刷的网站: 1. leetcode: Problems | LeetCode OJ2. codility: Take our free programming lessons 2. codility: Take our free programming lessons原创 2016-02-24 20:48:12 · 1245 阅读 · 1 评论 -
面试之路(6)-BAT面试之操作系统内存详解
本文主要参考两篇博客,读后整理出来,以供大家阅读,链接如下:http://blog.jobbole.com/95499/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io http://blog.xiaohansong.com/2015/10/05/Linux%E5%86%85%E5%AD%98%E5%AF%BB%E5%9D%8原创 2016-04-25 23:13:30 · 2530 阅读 · 0 评论 -
面试之路(7)-BAT面试题之计算机的三大原则
1.计算机是执行输入、运算、输出的机器计 算 机 的 硬 件 由 大 量 的 IC(Integrated Circuit,集成电路)组成。每块 IC 上都带有许多引脚。这些引脚有的用于输入,有的用于输出。IC 会在其内部对外部输入的信息进行运算,并把运算结果输出到外部。运算这个词听起来也许有些难以理解,但实际上就是计算的意思。 输入、运算、输出三者必须成套出现,缺一不可。这样说的原因有几点。首先,原创 2016-04-27 16:14:53 · 2552 阅读 · 0 评论 -
面试之路(8)-BAT面试题之数组和链表的区别
两种数据结构都是线性表,在排序和查找等算法中都有广泛的应用各自的特点:数组:数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少或不插入和删除元素,就应该原创 2016-04-27 22:37:54 · 8442 阅读 · 2 评论 -
【46】java对象的三个特征(oop)
对象的三个特征:对象的行为:对象有哪些行为和方法 同一个类的实例,由于支持相同的行为具有家族式的特征,对象的行为是由方法定义的。对象的状态:施加方法时。对象的响应 每个对象都保存着描述当前特征的信息。对象的状态改变必须通过方法实现,否则就是破坏了封装性。对象的标识:如何区别具有相同的方法和状态的不同对象 对象的状态不能够完全描述一个对象,每一个对象都由一个唯一的标识。例如在订单系统中,货物相同原创 2016-05-24 09:33:00 · 2291 阅读 · 0 评论 -
操作系统内存详解
本文主要参考两篇博客,读后整理出来,以供大家阅读,链接如下:http://blog.jobbole.com/95499/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io http://blog.xiaohansong.com/2015/10/05/Linux%E5%86%85%E5%AD%98%E5%AF...原创 2016-04-25 23:13:41 · 12030 阅读 · 0 评论 -
【9】-互联网公司技术型面试需要的素质
和各位共勉1.扎实的基础知识基础决定了高度,技术型求职者需要的基础包括:一门精通的语言数据结构算法计算机网络操作系统计算机数学知识和常识2.代码质量和习惯代码的正确性代码的完整性(包括边界值,异常值的考虑)代码的鲁棒性(特殊情况的考虑)3.分析问题的思路清晰对于简单的问题,力求考虑完整,准确对于复杂的问题,先是通过画图,举例子,以及分解复杂问题获得思路,然后一步步解决4.原创 2016-04-28 15:50:34 · 8973 阅读 · 1 评论 -
面试之路(13)-android apk之间共享数据的方式以及shareUserId详解
1.通过content Provider/sharedPreferrence2.通过shareUserId我们详细介绍一下shareUserId:Android App Sandbox(android沙箱机制)我们知道 Linux 中的 Sandbox 主要做隔离工作,将不同任务或用户间的耦合降到最低。Android 应用也借用了 Linux Sandbox技术,将不同 APP 之间做了隔离;APP原创 2016-04-29 20:33:19 · 2000 阅读 · 0 评论 -
详解MVC,MVP,MVVM
一:mvcmvc结构: 视图(View):用户界面。 控制器(Controller):业务逻辑 模型(Model):数据保存mvc各部分的通信方式mvc互动模式通过 View 接受指令,传递给 Controller。 另一种是直接通过controller接受指令。 mvc的历史MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(对,就是那个发明图形用户界面和鼠标的实验室),原创 2016-04-17 22:28:46 · 4624 阅读 · 0 评论 -
【49】java内部类剖析
什么是内部类:定义在其他类(outer class)中的类被称作内部类。内部类可以有访问修饰服,甚至可以被标记为 abstract 或 final。 内部类与外部类实例有特殊的关系,这种关系允许内部类访问外部类的成员,也包括私有成员。内部类分为以下四种:内部类(inner class) 局部内部类 匿名内部类 静态嵌套类为什么要使用内部类:在《Think in Java》中有这样一句话:使用内原创 2016-05-25 21:01:13 · 5635 阅读 · 1 评论 -
面试之路(10)-BAT面试之java实现单链表的插入和删除
链表的结构:链表在空间是不连续的,包括:数据域(用于存储数据)指针域(用于存储下一个node的指针) 单项链表的代码实现:节点类构造函数数据域的get,set方法指针域的get,set方法代码:public class Node { Object element; //数据域 Node next; //指针域 //构造方法 public Node(Obj原创 2016-04-28 22:18:13 · 8993 阅读 · 4 评论 -
面试之路(31)-操作系统之信号量
信号量的定义:为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。信号量是一个特殊的变量,程序对其访问都是原子操作,且原创 2016-05-11 21:48:59 · 5503 阅读 · 0 评论 -
【33】二叉树的镜像
画图是遇到算法问题的一种解题思路。他可以让抽象问题具体化。 有不少数据结构比如二叉树和二维数组以及链表都可以用这种思路来做。题目:完成一个函数,输入一颗二叉树,输出它的镜像二叉树类class BinaryTreeNode{ int mValue; BinaryTreeNode nLeft; BinaryTreeNode mRight;}思路:前序遍历,如果不是空,只需要原创 2016-05-13 20:04:13 · 1033 阅读 · 0 评论 -
面试之路(4)-TCP/IP/HTTP概述
tcp/ip基础知识TCP/IP全称是Transmission Control Protocol/Internet Protocol。IP地址共32位,4字节。IP地址分为两部分:网络标识和主机标识。A类IP地址:第一段为网络标识,剩下三段为主机标识。网络地址最高位必须为零。网络标识长度为7位,主机标识长度为24位。A类网络的主机数最多可以达到1600多台。B类IP地址:第一、二段位网络标识,第三、原创 2016-04-20 00:26:06 · 6203 阅读 · 0 评论 -
面试之路(23)-递归和循环优缺点详解
使用场景需要重复的多次的计算相同的问题,会用到递归和循环定义递归递归是内部调用这个函数本身。循环通过设置初始值和终止条件,在一个范围内重复运算优缺点分析递归虽然有代码简洁的优点,但是时间和空间消耗比较大。每一次函数调用都需要在内存栈中分配空间以保存参数,返回地址以及临时变量,而且往栈里面压入数据和弹出都需要时间。 另外递归会有重复的计算。递归本质是把一个问题分解为多个问题,如果这多个问题存在重复计原创 2016-05-04 23:13:11 · 9326 阅读 · 0 评论 -
面试之路(24)-提高代码的规范性,完整性,错误处理
规范性通常代码都不超过50行,重要的是形成清晰的思路,写的清晰当代码的逻辑比较复杂时候,适当的缩进,注释,可以体改可读性用完整的英文单词组合来表示变量和函数,让别人一眼看清意图完整性普通测试用例,考虑全面,比如把字符串转化为整数的例子,考虑正数,0,负数,充分发散思维,比如求最大的n位数,考虑int溢出,long溢出,以及表示大数,用数组还是字符串边界值的测试用例,递归和循环的终止条件,原创 2016-05-05 11:33:16 · 4573 阅读 · 0 评论 -
面试之路(25)-斐波那契数列类问题的详解
斐波那契数列介绍:常见的递归解法:int Fibonacci(int n){ if(n <= 0){ return 0; } if(n == 1){ return 1; } return Fibonacci(n-1)+Fibonacci(n-2);}递归解法的效率分析: 这棵树是调用树,有好多节点是重复的。随着n的增大,重复原创 2016-05-05 15:07:13 · 5511 阅读 · 1 评论 -
【41】递增数组判断是否存在两个树等于给定值
题目:给定单调递增的整数数组[n0, n1, n2,….,nk] array, 以及目标数T,边写一个算法existSum(array, T),来判定在数组array中,是否存在2个数p, q, 满足p + q = T. 该方法返回1如果存在,否则返回0思路:采用双指针的思路,指向第一个和最后一个。start和end,计算两个数的和all。all == T,返回trueall < T,star原创 2016-05-19 11:09:37 · 1309 阅读 · 1 评论 -
【40】二叉树的高度
题目:实现二叉树的数据结构定义(二叉树存储的为int值) 实现一个算法来计算二叉树t的高度思路:首先定义一个二叉树的类动态规划的思路,height(n) = max(height(n.left),height(n.right))+1;代码:二叉树的定义类class BinaryTreeNode{ int mValue; BinaryTreeNode mLeft原创 2016-05-19 10:58:19 · 948 阅读 · 0 评论 -
【54】Java反射机制剖析
java反射机制:1.指的是可以于运行时加载,探知和使用编译期间完全未知的类.2.程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能调用他的任意一个方法和属性;3.加载完类之后, 在堆内存中会产生一个Class类型的对象(一个类只有一个Class对象), 这个对象包含了完整的类的结构信息,而且这个Class对象就像原创 2016-06-01 16:16:45 · 4032 阅读 · 2 评论 -
谈谈面试和博客写作
为什么写博客?写作对于我而言是一个很重要的交流和总结的方式,写作的初衷是写给自己看的,希望自己在过去的学习轨迹中,不断反思,获得启发。后面更多的是为了交流,一统成长!博客内容:主要是关于安卓和安卓安全以及基础知识包括:算法和数据结构,操作系统,计算机网络,计算机基础知识。 另外我还专门谢了面试的两个专栏来介绍面试的必备知识和经典面试题。欢迎入群:公众号IT面试题汇总讨论群如果扫描不进去,加我微信(原创 2016-05-10 10:40:02 · 1833 阅读 · 0 评论 -
面试之路(27)-链表中倒数第K个结点
代码的鲁棒性:所谓的鲁棒性是指能够判断输入是否合乎规范,能对不和规范的程序进行处理。 容错性是鲁棒性的一个重要体现。 防御性编程有助于提高鲁棒性。切入正题,我可不是标题党:链表倒数第k个节点列表java类public class ListNode{ int key; ListNode next;}思路:采用双指针的思路,初始化两个listNode,First和second。原创 2016-05-09 21:01:31 · 2429 阅读 · 0 评论 -
反转链表(reverse ListNode)
反转链表:java类public class ListNode{ int key; ListNode next;}思路分析:需要三个指针,current,prev和next。current.next = prev之前需要next = current.next(判断next是否为空),同时一直往后遍历while(node != null) - 代码:public ListN原创 2016-05-09 21:22:43 · 5869 阅读 · 0 评论 -
【55】java异常机制剖析
一、为什么要使用异常首先我们可以明确一点就是异常的处理机制可以确保我们程序的健壮性,提高系统可用率。虽然我们不是特别喜欢看到它,但是我们不能不承认它的地位,作用。有异常就说明程序存在问题,有助于我们及时改正。在我们的程序设计当做,任何时候任何地方因为任何原因都有可能会出现异常,在没有异常机制的时候我们是这样处理的:通过函数的返回值来判断是否发生了异常(这个返回值通常是已经约定好了的),调用该函数的程原创 2016-06-04 16:49:42 · 3188 阅读 · 1 评论 -
【44】java大数值剖析
基本的整数和浮点型精度不能满足需求,那么可以使用java.math中的两个类:BigInteger和BigDecimal。BigInteger和BigDecimal介绍:这两个类可以处理包含任意长度序列的数值。 BIgInteger类实现了任意精度的整数计算。BigDecimal实现了任意精度的浮点数计算。使用静态的valueOf方法可以将普通的数值转化位大数值BigInteger a = Big原创 2016-05-23 09:47:56 · 1218 阅读 · 0 评论 -
【45】java的封装剖析
类是构造对象的模板或蓝图。封装的一些概念从形式上看,封装不过是将数据和行为组合到一个包中,并对对象的使用者隐藏了数据的实现形式。每个对象都包含实例域和方法。实例域的集合代表了一个集合的状态,通过方法来向对象发送消息,改变对象的状态。封装的意义实现封装的目的就是不让其他类的方法访问自己的实例域。 程序是通过类的方法进行交互。封装给了对象黑盒的特性,这是提高重用性和可靠性的关键。降低了类之间的耦合性一原创 2016-05-23 22:25:16 · 4890 阅读 · 0 评论 -
【56】java本地文件File类详解
1.java类的介绍public class Fileextends Objectimplements Serializable, Comparable<File>文件和目录路径名的抽象表示形式。File既可以表示文件也可以表示目录。用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。 2.构造方法File(File parent原创 2016-06-11 17:02:12 · 4086 阅读 · 0 评论 -
wave数组找字母游戏
题目描述:Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉。如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f。但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物。,指定W为“SOLO”,则在地图中红色标注了单词“SOLO”。 注意区分英文字母大小写,你只原创 2016-07-10 10:30:17 · 2249 阅读 · 0 评论 -
leetcode【67】-Bulb Switcher
题目描述:There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. On the third round, you toggle every third bulb (turning on if it’s off or turni...原创 2016-07-10 16:03:22 · 1181 阅读 · 1 评论 -
算法面试题关灯泡
题目描述:描述:一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。 有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下原创 2016-07-10 10:18:12 · 1955 阅读 · 1 评论 -
程序员的软实力武器-smart原则
smart对于程序员来说不是仅仅意味一个法则:面对需求和提出需求时候,smart原则可以极大的提高效率目标管理是使管理者的工作由被动变为主动的一个很好的管理手段,实施目标管理不仅是为了利于员工更加明确高效地工作,更是为了管理者将来对员工实施绩效考核提供了考核目标和考核标准,使考核更加科学化、规范化,更能保证考核的公正、公开与公平。smart的含义:绩效指标必须是具体的(Specific)绩效指标原创 2016-07-25 00:20:48 · 2350 阅读 · 0 评论 -
动态链接库的优缺点
介绍:DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL原创 2016-07-25 01:11:47 · 11017 阅读 · 0 评论 -
【66】Scanner类用法详解
Scanner是新增的一个简易文本扫描器,在 JDK 5.0之前,是没有的。public final class Scanner extends Object implements Iterator<String>, Closeable 可见,Scanner是没有子类的。 在JDK API关于Scanner提供了比较多的构造方法与方法。那么现在列出一些在平时工作中比较常用的方法,仅供大家参考:原创 2016-07-03 17:16:37 · 3096 阅读 · 0 评论 -
华为机试题【2】
题目:开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并) 2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并) 3.输入的文件可能带路径,原创 2016-07-03 21:51:44 · 3495 阅读 · 0 评论