程序员面试笔试宝典笔记
加加大了
这个作者很懒,什么都没留下…
展开
-
计算机网络(HTTP)
2. HTTP协议相关问题2.1 HTTP的请求报文结构和响应报文结构HTTP 请求报文主要由请求行、请求头、空行、请求正文(Get 请求没有请求正 文)4 部分组成。1、请求行由 3 部分组成,分别为:请求方法、URL 以及协议版本,之间由空格分隔;请求方法包括 GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE 以及扩展 方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,出 于安全性的考虑也是不可用的;协议版本的格式为:HTTP/主版本号.次版本号原创 2020-07-28 11:53:02 · 627 阅读 · 2 评论 -
计算机网络(TCP/IP)
1、TCP/IP1.1 OSI 与 TCP/IP 各层的结构与功能,都有哪些协议,协议 所占端口号。1、物理层为了建立、维护和查出物理链路所需的机械的、电气的、功能的和规程的特性,其作用是使原始的数据比特流能在物理媒体上传输。具 体涉及接插件的规格、“0”、“1”信号的电平表示、收发双方的协调等内容。2、数据链路层比特流被组织成数据链路协议数据单元(通常称为帧),并以其为单位进行传输,帧中包含地址、控制、数据及校验码等信息。数据链路层的主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链原创 2020-07-27 10:51:31 · 408 阅读 · 0 评论 -
数据结构与算法(查找)
7. 查找7.1 基本概念1、查找表:用于查找的数据集合,由同一类型的数据元素组成,经常进行的操作:2、静态查找表:无需动态修改查找表的操作,都是静态查找表。适合的查找方法有顺序查找、折半查找、散列查找。3、动态查找表:需要动态插入或删除的操作。适合的查找方法有二叉排序树查找、散列查找。4、关键字:数据元素中唯一表示该元素的某个数据项的值。5、平均查找长度:所有查找过程中进行关键字比较次数的平均值。7.2 顺序查找1、一般线性表的顺序查找从线性表的一端开始,逐个检查关键字,当查找的某原创 2020-07-18 17:00:43 · 335 阅读 · 0 评论 -
数据结构与算法(图)
6. 图6.1 基本概念1.定义有向图无向图简单图多重图完全图子图有两个图G=(V,E)和G’=(V’,E’),若V’是V的子集,且E’是E的子集,称G’是G的子图。若满足V(G’)=V(G)的子图G’,则称其为G的生成图。并不是V和E的任何子集都能构成G的子图,这样的子集可能不是图,E的子集中的某些边关联的顶点可能不在这个V的子集中。连通、连通图、连通分量强连通图、强连通分量生成树、生成森林顶点的度、入度、出度原创 2020-07-17 10:10:30 · 315 阅读 · 0 评论 -
数据结构与算法(树)
5. 树5.1 树的基本概念1、树的定义2、基本术语3、树的性质5.2 二叉树概念1、二叉树定义及特性二叉树与度为二的有序树区别:几种特殊二叉树二叉树的性质2、二叉树的存储结构顺序存储结构链式存储结构5.3 二叉树的遍历和线索二叉树1、 二叉树遍历先序遍历中序遍历后序遍历在递归遍历中,递归栈的深度恰好是树的深度,因此在最坏情况下,二叉树是有n个节点且深度为n的单支树。空间复杂度为O(n)。递归与非递原创 2020-07-14 15:56:22 · 243 阅读 · 0 评论 -
数据结构与算法(串)
4 串4. 1 串的定义与实现1、串的定义串( tring )是由零个或多个字符组成的有限序列。一般记为S= ‘a1a2…a,’ (n>0)其中s是串名,单引号括起来的字符序列是串的值: 可以是字母 、数字或其他字符, 串中字符的个数称为串的长度。 n=0时的串称为空串(用白表示)。串中任意个连续的字符组成的子序列称为该串的子串,包含子串的串相应地称为 串。某个街在串中的序 称为该字树在*中 的位直 。子串在主串的位 以子串的第 个字符在主申中的位置来表示。当两 的长度杭 等且每个对应位原创 2020-07-13 10:11:11 · 564 阅读 · 0 评论 -
数据结构与算法(导论)
数据结构导论数据结构基本概念数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数 据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。数据对象是具有相同性质的数据元素的集合,是数据的一个子集。例如,整数数据对象是集 合 N= {0,±1,±2,…}。数据类型是一个值的集原创 2020-07-07 17:58:24 · 651 阅读 · 0 评论 -
数据结构与算法(排序)
3. 排序3.1 如何进行选择排序对于给定的一组记录,经过第一轮比较后得到最小的记录,将该记录与第一个记录位置进行交换;对不包含第一个记录以外的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个为止。public class Sort{ public static void selectSort(int[] a){ int tmp; int flag; for(int i=0;i<a.length();i++){ tmp原创 2020-07-07 17:33:41 · 463 阅读 · 0 评论 -
数据结构与算法(栈与队列)
2. 栈与队列2.1 栈与队列的区别栈和队列都是重要的线性数据结构,在一个特定范围内存储单元中存储的数据。与线性表相比,插入和删除受到更多的约束和限定,是限定性的线性表结构。栈是先进后出,队列是先进先出。有时在数据结构中还有按照大小排队或按照一定条件排队的数据队列,这时不一定按照先进先出的方法读取数据。2.2 如何实现栈分别使用链表和数组来实现栈。1、使用数组实现:public class myStack<E>{ private Object[] stack;//创建一个对象数原创 2020-07-05 21:03:56 · 396 阅读 · 0 评论 -
数据结构与算法(链表)
1. 链表1.1 如何实现单链表的增删操作链表是一个基本的数据结构,存储特点是:可以用任意一个存储单元存储单链表中的数据元素(可以不连续)。单链表中的一个存储单元包括存储的数据元素和指向直接后继的索引。这两个总和成为一个单链表总的一个节点。单链表存储形式如下:一个单链表的节点可以有如下定义:Class Node{ Node next=null;//指向下一个节点 int data;//存储的元素 public void Node(int data){ this.data=data; }原创 2020-07-04 21:34:27 · 519 阅读 · 0 评论 -
Java Web(J2EE 与EJB)
2. J2EE与EJB2.1 什么是J2EE是java平台企业版简称,用来开发与部署企业级应用的架构,提供一种统一的、开放标准的多层平台,主要由构件、服务和通信组成。构件包含客户端构件和服务器构件,客户端构件主要包含两类Applets和Application Clients,服务器构件分为两类Web构件(servlet和JSP)和EJBs两种。本质上J2EE只是一个行业标准,主要用来通过java开发服务器端应用提供一个独立的、可移植的、多用户的企业级平台,从而能简化应用程序的开发和部署。2.2 J原创 2020-07-01 16:42:00 · 1285 阅读 · 1 评论 -
Java Web(Servlet和JSP)
1. Servlet与JSP1.1 页面请求工作流程基本页面访问请求的处理流程1.用户通过浏览器输入连接地址请求所需的资源2.浏览器接收用户的请求,将请求组成指定的格式发送到服务器端,客户端与服务器端之间通过HTTP完成具体的交互。请求的数据流中主要包含HTTP、请求方法(post、get)、请求的网址、请求一些参数。3.服务器接收到客户端发来的请求,查找用户所需要的资源4.服务器查找到用户请求的资源后,将资源返回客户端5.服务器通过将响应消息组装成特定的消息格式返回给客户端,响应数据流主要原创 2020-06-29 22:22:34 · 3119 阅读 · 1 评论 -
Java基础知识(Java数据库操作)
java数据库操作11.1 如何通过JDBC访问数据库通过JDBC访问数据库一般有如下几个步骤:1.加载JDBC数据库驱动器,将数据库的JDBC驱动加载到classpath中,一般将JDBC驱动复制在web-inf.lib下。2.加载JDBC驱动,并将其注册到DriverManager中。一般使用反射class.forName(String driveName)3.建立数据库连接,取得Connection对象,通过DriverManager.getConnection(url,username,p原创 2020-06-28 15:39:37 · 440 阅读 · 0 评论 -
Java基础知识(多线程)
10. 多线程10.1 什么是线程?与进程的区别?为什么使用多线程?线程是指程序在执行过程中,能够执行程序代码的一个执行单元。线程有4种状态:就绪、运行、挂起、结束。是程序执行的最小单元。进程是指一段正在执行的程序,线程称为轻量级进程。一个进程可以有多个线程,各个线程间共享程序的内存的空间(代码段、数据段、堆)和一些进程级资源(打开的文件),但各个线程拥有自己的栈空间。操作系统级别,程序的执行都是以进程为单位,每个进程中通常都会有多个线程互不影响并发执行。单线程:程序执行过程中只有一个有效操作的原创 2020-06-27 22:20:50 · 308 阅读 · 0 评论 -
Java基础知识(容器)
9. 容器9.1 java Collections框架该框架中包含集合接口和接口的实现类及操作他们的算法(查找、排序、反转、替换、复制、取最小元素、最大元素),提供list、queue、set、stack、map等数据结构。1、set:主要特点是集合中的元素不可重复,存入的每个元素必须定义equals方法确保对象的唯一性。有两个实现类:hashSet和TreeSet。2、list为有序的,按照顺序保存对象,可以对列表中每个元素的插入和删除位置进行精确控制。可保存重复对象。实现类有:LinkedLis原创 2020-06-26 22:13:53 · 213 阅读 · 0 评论 -
Java基础知识(Java平台与内存管理)
8. Java平台与内存管理8.1 Java为什么是平台独立性语言平台独立性是指可以在一个平台上编写和编译程序,而在其他平台运行。使用“中间码”和“JVM”保证平台独立性。java程序被编译后不生成硬件可以运行的代码,而是生成“中间码”,由JVM将“中间码”翻译为硬件可以执行的代码。所以JVM不具有平台独立性,与硬件有关。解释执行的过程:代码装入—>代码校验—>代码执行,由类装载器装入代码,由字节码校验器进行检查。java字节码的执行分为两种方式:1.编译方式:解释器先将字节码编译为机原创 2020-06-25 19:59:22 · 289 阅读 · 0 评论 -
Java基础知识(输入输出流)
7.输入输出流7.1 java io流的实现机制是什么流可以分为:字节流和字符流1.字节流以字节(8bit)为基本单位,包含InputStrem和OutputStream两个抽象类。2.字符流以字符(16bit)为基本单位,包含Reader和Writer两个抽象类。主要区别:字节流在处理输入输出时不会用到缓存,字符流会用到缓存。...原创 2020-06-25 15:48:22 · 515 阅读 · 0 评论 -
Java基础知识(异常处理)
6. 异常处理6.1 finally块中的代码什么时候被执行finally块的作用是为了保证不论出现什么情况,该块中的代码都会被执行。程序在执行return意味着结束对当前函数的调用并跳出该函数体,因此任何语句要执行都只能在return之前执行,所以finally块中的代码也是在return前执行。出现在java程序中的finally代码块是否一定会被执行:不一定会被执行6.2 异常处理的原理是什么异常是指程序运行时所发生的非正常情况或错误,违反语义规定时,JVM将出现的错误表示为一个异常并抛出原创 2020-06-24 22:40:28 · 214 阅读 · 0 评论 -
Java基础知识(字符串与数组)
5. 字符串与数组5.1 字符串创建与存储的机制是什么字符串声明与初始化主要有如下两种情况:1.对于Strng s1=new String(“abc”)与String s2=new String(“abc”),存在两个引用对象s1,s2,两个内容相同的字符串对象“abc”,在内存中的地址不同,只要用new总会生成新的对象。2.对于String s1=“abc”和String s2=“abc”,在JVM中存在一个字符串池,保存多个String对象,并可以被共享使用,s1和s2引用得是同一个常量池中的对原创 2020-06-24 20:55:02 · 7094 阅读 · 2 评论 -
Java基础知识(基本类型与运算)
4.基本类型与运算4.1 基本数据类型Java中的基本数据类型主要有(byte、int、double、float、long、char、boolean、short)除了这8种基本数据类型,其他类型都是引用类型(类、数组、接口)。下表!是不同数据类型对比。以上这些基本类型分为4种类型:1.int长度数据类型:byte(8),short(16),int(32),long(64)2.float长度数据类型:单精度(32),双精度(64)3.boolean类型变量的取值:true、false4.cha原创 2020-06-24 16:33:05 · 181 阅读 · 0 评论 -
Java基础知识(关键字)
3. 关键字3.1 变量命名的规则变量名、函数名、数组名统称为标识符,标识符只能由字母(a-z,A-Z)、数字(0-9)、下划线、$组成,第一个字符必须是字母、下划线或$,不能包含空白字符。Java中,变量名区分大小写。3.2 break、continue、return的区别1.break用于直接强行跳出当前循环,不再执行剩余代码。当多层循环嵌套,并且break语句出现在嵌套循环中的内层循环,将仅仅只是终止内层循环执行,不影响外层循环执行。2.continue用于停止当次循环,回到循环起始处,进原创 2020-06-23 22:26:26 · 178 阅读 · 0 评论 -
Java基础知识(面向对象)
2. 面向对象2.1 面向对象与面向过程区别1.出发点不同:面向对象用符合常规思维方式处理客观世界问题,强调将问题域要领直接映射到对象即对象之间的接口。面向过程方法强调是过程的抽象化和模块化,以过程为中心构造或处理世界问题的。2.层次逻辑关系不同:面向对象是用计算机逻辑模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位。面向对象方法用类的层次结构体现类之间的继承和发展。面向过程方法处理问题的基本单位是能清晰准确表达过程的模块,用模块的层次结构概括模块或模块间的关系与功能。3.数据处理原创 2020-06-23 20:08:48 · 246 阅读 · 0 评论 -
Java基础知识(基本概念)
1.基本概念1.1 java的优点1.Java 为纯面向对象的语言,它能够直接反应现实生活中的对象,例如火车、动物等,因此通过它,开发人员更容易编写程序。2.平台无关性。Java 语言可以一次编译,到处运行。由于 Java 为解释型语言,编译器会把 Java 代码变成“中间代码”,然后在 JVM(Java Virtual Machine,Java 虚拟机)上被解释执行。由于中间代码与平台无关,所以,Java 语言可以很好地跨平台执行,具有很好的可移植性。3.Java 提供了很多内置的类库,通过这些类原创 2020-06-23 15:54:44 · 297 阅读 · 0 评论 -
程序设计基础
1. C\C++关键字1.1static变量的作用static的意思是静态,有三个明显的作用:在函数体内,静态变量具有“记忆”功能,即一个呗声明为静态的变量在这一函数被调用的过程中其值维持不变。在模块内(函数体外),它的作用域范围有限,即如果一个变量被声明为静态的,那么该变量可以被模块内的所有函数访问。但不能被模块外的其他函数访问。是一个本地的全局变量,如果一个函数被声明为静态的,则该函数与普通函数作用域不同,只可以被该模块的其他函数调用。内部函数应该在当前源文件中说明和定义,对可在当前源文件以原创 2020-06-21 22:51:12 · 453 阅读 · 0 评论