离散数学-web-软件测试-java-等-⾯试汇总
⽂章⽬录
主要的⼏门课程已经整理完了,剩下⼏门⽀线课程⼀起汇总在⼀起了,内容不是很多,包括离散数学、java、jsp、web和软件测试⼏门,其他的想到了再写吧,感觉内容应该够⽤了,后续再整理⼀些前沿的时事相关的知识,请⼤佬指教
1、对离散数学的理解
离散数学(Discrete mathematics)是研究离散量的结构及其相互关系的数学学科,是现代数学的⼀个重要分⽀。
离散的含义是指不同的连接在⼀起的元素,主要是研究基于离散量的结构和相互间的关系,其对象⼀般是有限个或可数个元素。
离散数学在各学科领域,特别在计算机科学与技术领域有着⼴泛的应⽤,同时离散数学也是计算机专业的许多专业课程,如程序设计语⾔、数据结构、操作系统、编译技术、⼈⼯智能、数据库、算法设计与分析、理论计算机科学基础等必不可少的先⾏课程。通过离散数学的学习,不但可以掌握处理离散结构的描述⼯具和⽅法,为后续课程的学习创造条件,⽽且可以提⾼抽象思维和严格的逻辑推理能⼒,为将
来参与创新性的研究和开发⼯作打下坚实的基础
2、java
1⾯向对象的特征有哪些⽅⾯?
- 抽象:抽象是将⼀类对象的共同特征总结出来构造类的过程,包括数据抽象和⾏为抽象两⽅⾯。抽象只关注对象有哪些属性和⾏为,并不关注这些⾏为的细节是什么。
- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承的类叫⽗类(超类、基类)、得到继承的类叫⼦类(派⽣类)。
- 封装:通常认为封装是把数据和操作数据的⽅法绑定起来,对数据的访问只能通过已定义的接⼝。可以说,封装就是隐藏⼀切可隐藏的东西,只向外界提供最简单的编程接⼝
(可以想想普通洗⾐机和全⾃动洗⾐机的差别,明显全⾃动洗⾐机封装更好因此操作起来更简单;我们现在使⽤的智能⼿机也是封装得⾜够好的,因为⼏个按键就搞定了所有的事情)。
- 多态性:多态性是指允许不同⼦类型的对象对同⼀消息作出不同的响应。简单的说就是⽤同样的对象引⽤调⽤同样的⽅法但是做了不同的事情。实现多态需要做两件事:
1). ⽅法重写(⼦类继承⽗类并重写⽗类中的⽅法);
2). 对象造型(⽤⽗类型引⽤引⽤⼦类型对象,这样同样的引⽤调⽤同样的⽅法就会根据⼦类对象的不同⽽表现出不同的⾏为)
3、数组有没有length()⽅法?String有没有length()⽅法?
答:数组没有length()⽅法,有length 的属性。String 有length()⽅法。JavaScript中,获得字符串的长度是通过length属性得到的,这⼀点容易和Java混淆。
4、重载(Overload)和重写(Override)的区别。重载的⽅法能否根据返回类型进⾏区分?
答:⽅法的重载和重写都是实现多态的⽅式,区别在于前者实现的是编译时的多态性,⽽后者实现的是运⾏时的多态性。
重载发⽣在⼀个类中,同名的⽅法如果有不同的参数列表(参数类型不同、参数个数不同或者⼆者都不同)则视为重载;
重写发⽣在⼦类与⽗类之间,重写要求⼦类被重写⽅法与⽗类被重写⽅法有相同的返回类型,⽐⽗类被重写⽅法更好访问,不能⽐⽗类被重写⽅法声明更多的异常(⾥⽒代换原则)。重载对返回类型没有特殊的要求。
5、抽象类(abstract class)和接⼝(interface)有什么异同?
答:抽象类和接⼝都不能够实例化,但可以定义抽象类和接⼝类型的引⽤。⼀个类如果继承了某个抽象类或者实现了某个接⼝都需要对其中的抽象⽅法全部进⾏实现,否则该类仍然需要被声明为抽象类。
接⼝⽐抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象⽅法和具体⽅法,⽽接⼝中不能定义构造器⽽且其中的⽅法全部都是抽象⽅法。抽象类中的成员可以是private、默认、protected、public的,⽽接⼝中的成员全都是public的。
抽象类中可以定义成员变量,⽽接⼝中定义的成员变量实际上都是常量。有抽象⽅法的类必须被声明为抽象类,⽽抽象类未必要有抽象⽅法。
6、Java⽀持多继承吗?
Java不⽀持多继承,每个类只允许继承⼀个类,但是可以实现多个接⼝。
7、进程与线程的区别 ?
进程是⼀个程序的执⾏(即正在运⾏的程序)
线程是在进程中独⽴的执⾏序列. ⼀个进程可以包含很多线程. 线程有时被称为轻量级的进程.
8、$(document).ready()⽅法和load有什么区别?
(1)、load⽅法是在⽹页中所有的元素(包括元素的所有关联⽂件)完全加载到浏览器后才执⾏的。
(2)、$(document).ready() ⽅法可以在DOM载⼊就绪时就对其进⾏操纵,并调⽤执⾏绑定的函数。
3、JSP
1、 JSP页⾯是什么 ?
⼀个JSP页⾯是⼀个⽂本⽂档,包含了两种类型的⽂本:静态数据和JSP元素。静态数据可以以任何⼀种基于⽂本的格式表达,⽐如HTML 或者XML。JSP是⼀种混合了静态内容与动态⽣成内容的技术。查看JSP例⼦
2 JSP请求是如何被处理的?
⼀个JSP请求的到来,浏览器⾸先以⼀个jsp扩展的⽂件名来请求⼀个页⾯。然后,Web Server读取到
该请求,使⽤JSP编译器将JSP页⾯转换为⼀个servlet类。注意JSP⽂件只在该页⾯的第⼀次请求或者JSP⽂件已经改变时才编译。⽣成的servlet类被调⽤,去处理浏览器的请求。⼀旦请求处理完,servlet会向客户端返回⼀个相应。查看如何获取JSP请求中的参数
3. JSP的优势所在?
使⽤JSP技术有以下优势:
JSP⽹页被动态的编译,因此开发者很容易更新当前代码。
JSP⽹页可预编译。
JSP⽹页能容易的组合成静态模版,包括HTML XML⽚段,且代码可形成动态内容。
开发者能提供⾃定义的JSP标签库,且使⽤类XML语法访问。
开发者可以在组件级别做逻辑上的改变,但是不能使⽤程序逻辑编辑个别的⽹页。
4. 什么是指令?在JSP中,包括哪些不同类型的指令?
指令是JSP引擎所处理的命令,当⽹页被编译成⼩程序时,指令⽤于去设置页⾯级别的命令,从外部
⽂件插⼊数据,指定⾃定义的标签库。指令被包括在<%@ 和%>内。指令的类型分为:
包含指令:⽤于包含⽂件,和当⽤页⾯合并⽂件内容。
页⾯指令:⽤于定义JSP页⾯的具体属性,⽐如错误页⾯和缓冲池。
标签库:⽤于声明页⾯中使⽤到的⾃定义标签库。
5. 什么是JSP的actions?
JSP的actions是使⽤XML语法结构来控制Servlet引擎的⾏为。JSP的actions是在当JSP页⾯请求的时候才执⾏。它们会动态插⼊⼀个⽂件中,再利⽤JavaBeans的组件,转发给⽤户到另⼀个页⾯,或者⽣成带Java插件的HTML页⾯。以下是⼀些可以操作的actions:
jsp:include- 当JSP页⾯被请求的时候,包含了⼀个⽂件。
jsp:useBean- 寻或者实例化⼀个JavaBean。
jsp:setProperty- 设置JavaBean的属性。
jsp:getProperty- 得到JavaBean的属性。
jsp:forward- 转发请求到新的页⾯。
jsp:plugin- ⽣成特定浏览器的代码。
6、什么是隐式对象?他们是什么?
JSP隐式对象是指JSP容器在每页中提供给开发⼈员的Java对象。开发⼈员可以直接调⽤他们,⽽不需要任何显⽰声明。JSP隐式对象也被称为预定义变量。以下对象都是在JSP页⾯中隐式存在的:
application
page
request
response
session
exception
out
config
pageContext
4、web
1、常⽤那⼏种浏览器测试?有哪些内核****(Layout Engine)?
1、浏览器:IE,Chrome,FireFox,Safari,Opera。
2、内核:Trident,Gecko,Presto,Webkit。
2、说下⾏内元素和块级元素的区别?⾏内块元素的兼容性使⽤?(****IE8 以下)
⾏内元素:会在⽔平⽅向排列,不能包含块级元素,设置width⽆效,height⽆效(可以设置line-height),margin上下⽆效,padding上下⽆效。
块级元素:各占据⼀⾏,垂直⽅向排列。从新⾏开始结束接着⼀个断⾏。
兼容性:display:inline-block;display:inline;zoom:1;
(1)⾏内元素有:a( 锚点) ,b(粗体(不推荐)) ,span(常⽤内联容器,定义⽂本内区块) img(图⽚) input(输⼊框) select(项⽬选择)
strong(粗体强调) label(表格标签) cite (引⽤)code(计算机代码)
(2)块级元素有:div ul(⽆序列表) ol(有序列表) dl(定义列表) table(表格)form(表单) h1 (⼀级标题))p(段落)pre(预格式化)
(3)常见的空元素:
3、清除浮动有哪些⽅式?⽐较好的⽅式是哪⼀种?
(1)⽗级div定义height。
(2)结尾处加空div标签clear:both。
(3)⽗级div定义伪类:after和zoom。
(4)⽗级div定义overflow:hidden。
(5)⽗级div定义overflow:auto。
(6)⽗级div也浮动,需要定义宽度。
(7)⽗级div定义display:table。
(8)结尾处加br标签clear:both。
(Q2) ⽐较好的是第3种⽅式,好多⽹站都这么⽤。
4、什么是盒⼦模型?
在⽹页中,⼀个元素占有空间的⼤⼩由⼏个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分。这四个部分占有的空间中,有的部分可以显⽰相应的内容,⽽有的部分只⽤来分隔相邻的区域或区域。4个部分⼀起构成了css中元素的盒模型。
5、简述⼀下src与href的区别
href 是指向⽹络资源所在位置,建⽴和当前元素(锚点)或当前⽂档(链接)之间的链接,⽤于超链接。
src是指向外部资源的位置,指向的内容将会嵌⼊到⽂档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应⽤到⽂档内,例如js脚本,img图⽚和frame等元素。
当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执⾏完毕,图⽚和框架等元素也如此,类似于将所指向资源嵌⼊当前标签内。这也是为什么将js脚本放在底部⽽不是头部。
6、简述同步和异步的区别
同步是阻塞模式,异步是⾮阻塞模式。
同步就是指⼀个进程在执⾏某个请求的时候,若该请求需要⼀段时间才能返回信息,那么这个进程将会⼀直等待下去,直到收到返回信息才继续执⾏下去;
异步是指进程不需要⼀直等下去,⽽是继续执⾏下⾯的操作,不管其他进程的状态。当有消息返回时系统会通知进程进⾏处理,这样可以提⾼执⾏的效率。
7、介绍⼀下你对浏览器内核的理解?
主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。
1、渲染引擎:负责取得⽹页的内容(HTML、XML、图像等等)、整理讯息(例如加⼊CSS等),以及计算⽹页的显⽰⽅式,然后会输出⾄显⽰器或打印机。浏览器的内核的不同对于⽹页的语法解释会有不同,所以渲染的效果也不相同。所有⽹页浏览器、电⼦邮件客户端以及其它需要编辑、显⽰⽹络内容的应⽤程序都需要内核。
2、JS引擎则:解析和执⾏javascript来实现⽹页的动态效果。
最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独⽴,内核就倾向于只指渲染引擎。
8、px和em的区别
相同点:px和em都是长度单位;
异同点:px的值是固定的,指定是多少就是多少,计算⽐较容易。em得值不是固定的,并且em会继承⽗级元素的字体⼤⼩。
浏览器的默认字体⾼都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。
9、web前端开发,如何提⾼页⾯性能优化?
内容⽅⾯:
1.减少 HTTP 请求 (Make Fewer HTTP Requests)
2.减少 DOM 元素数量 (Reduce the Number of DOM Elements)
3.使得 Ajax 可缓存 (Make Ajax Cacheable)
针对CSS:
1.把 CSS 放到代码页上端 (Put Stylesheets at the Top)
2.从页⾯中剥离 JavaScript 与 CSS (Make JavaScript and CSS External)
3.精简 JavaScript 与 CSS (Minify JavaScript and CSS)
4.避免 CSS 表达式 (Avoid CSS Expressions)
针对JavaScript :
1. 脚本放到 HTML 代码页底部 (Put Scripts at the Bottom)
2. 从页⾯中剥离 JavaScript 与 CSS (Make JavaScript and CSS External)
3. 精简 JavaScript 与 CSS (Minify JavaScript and CSS)
4. 移除重复脚本 (Remove Duplicate Scripts)
⾯向图⽚(Image):
1.优化图⽚
java重写和重载的区别2 不要在 HTML 中使⽤缩放图⽚
3 使⽤恰当的图⽚格式
4 使⽤ CSS Sprites 技巧对图⽚优化
10、html5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
1、HTML5 现在已经不是 SGML 的⼦集,主要是关于图像,位置,存储,多任务等功能的增加。
(1)绘画 canvas;
(2)⽤于媒介回放的 video 和 audio 元素;
(3)本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
(4)sessionStorage 的数据在浏览器关闭后⾃动删除;
(5)语意化更好的内容元素,⽐如 article、footer、header、nav、section;
(6)表单控件,calendar、date、time、email、url、search;
(7)新的技术webworker, websocket, Geolocation;
5、软件测试
⼀、⿊盒测试和⽩盒测试
⿊盒测试,软件测试的主要⽅法之⼀,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试者不了解程序的内部情况,不需具备应⽤程序的代码、内部结构和编程语⾔的专门知识。只知道程序的输⼊、输出和系统的功能,这是从⽤户的⾓度针对软件界⾯、功能及外部结构进⾏测试,⽽不考虑程序内部逻辑结构。测试案例是依应⽤系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输⼊和⽆效输⼊来验证是否正确的输出。通过测试来检测每个功能是否都能正常使⽤。
⽩盒测试(white-box testing)⼜称透明盒测试(glass box testing)、结构测试(structural testing)等,软件测试的主要⽅法之⼀,也称结构测试、逻辑驱动测试或基于程序本⾝的测试。测试应⽤程序的内部结构或运作,⽽不是测试应⽤程序的功能(即⿊盒测试)。在⽩盒测试时,以编程语⾔的⾓度来设计测试案例。测试者输⼊数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。测试者了解待测试程序的内部结构、算法等信息,这是从程序设计者的⾓度对程序进⾏的测试。
1. 简单分析:
⿊盒测试
测试特点:测试功能;
测试依据:需求规格说明书
⽅法举例:等价类划分、边界值测试、因果图法、场景法、
优点:能站在⽤户的⽴场上进⾏测试
缺点:不能测试程序内部特定部位,如程序有误,则⽆法发现。
⽩盒测试
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论