前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >毕业季,跳槽季,不刷点面试题怎么能行?

毕业季,跳槽季,不刷点面试题怎么能行?

作者头像
互扯程序
发布2018-03-26 16:32:55
8130
发布2018-03-26 16:32:55
举报
文章被收录于专栏:互扯程序互扯程序互扯程序

现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。

前言

马上就是一年一度的毕业季 跳槽季,找工作三大要素,简历,笔试题,面试,如何在众多面试者中脱颖而出呢?需要在这三要素上下功夫。

简历是敲门砖,它决定了你是否有机会参加面试的第一道门槛,如何让HR在成千上万的简历中发现你这颗金子,就看你的简历有怎么样的闪光点了,小编整理了很多不错的简历模板 在文章的下方获取。

这一篇文章我们刷一刷面试题 下一篇文章我们谈一谈和HR面试时的一些技巧 敬请期待!!

前端开发面试题

1、前端页面有哪三层构成,分别是什么?作用是什么?

  • 结构层 Html 表示层 CSS 行为层 js;

2、get和post的区别

  • get是从服务器上获取数据,post是向服务器传送数据。
  • get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML
  • HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程
  • 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用 Request.Form获取提交的数据。
  • get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

3、html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和HTML5?

  • HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
  • 绘画 canvas
  • 用于媒介回放的 video 和 audio 元素
  • 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
  • sessionStorage 的数据在浏览器关闭后自动删除
  • 语意化更好的内容元素,比如 article、footer、header、nav、section
  • 表单控件,calendar、date、time、email、url、search
  • 新的技术webworker, websockt, Geolocation移除的元素
  • 纯表现的元素:basefont,big,center,font, s,strike,tt,u;
  • 对可用性产生负面影响的元素:frame,frameset,noframes;
  • 支持HTML5新标签:
  • IE8/IE7/IE6支持通过document.createElement方法产生的标签,
  • 可以利用这一特性让这些浏览器支持HTML5新标签,
  • 浏览器支持新标签后,还需要添加标签默认的样式:

4、Js的基本数据类型

  • Undefined
  • Null、
  • Boolean、
  • Number、
  • String

5、Json对象与json字符串互相转换

  • $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串- 转换成json对象
  • JSON.parse(jsonstr); //可以将json字符串转换成json对象
  • JSON.stringify(jsonobj); //可以将json对象转换成json对符串

6、解释一下闭包

  • Javascript允许使用内部函数—即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。
  • 在一个函数体内再添加一个新的方法(也是一个自定义函数)
  • 函数定义和函数表达式位于另外一个函数的函数体内,并且内部函数可以访问外部函数中声明的所有参数

7、数组转换成字符串

  • toString()转换成字符串
  • toLocaleString()转换成本地字符串

8、js定义对象

  • 使用内置对象 var string = new string(“aaa”);
  • 使用json符号 var names = [{name:”aaa”,age:20};
  • 自定义对象构造 function name(){ his.name=“aaa”; this.age=20; }

9、 什么是盒子模型

  • 把整个页面看成是一个盒子容器,这个盒子所具有的属性,内容(content),填充(padding),边框(border),边距(margin)
  • ie盒模型和W3C盒模型
  • ie盒模型 content包括border和padding
  • 内外边距误差
  • W3C盒模型 content border margin padding

10、选择器有哪几个?优先级?

  • 标签 * id 类 相邻 属性 后代 子 伪类
  • 优先级 !important>id>class>tag
  • !important比内联优先级高

11、块级元素和行内元素区别?

  • 块级元素可以直接设置属性,并且独占一行
  • 行内元素直接设置尺寸无效,必须设置为块

12、对兼容性问题进行举例

  • 在不同浏览器中的内外边距误差
  • float的误差
  • 定位的误差
  • css3新属性支持的误差(透明度,阴影 单位的误差)

13、Bootstrap响应式原理

  • 布局采用四种不同设备12列布局
  • 添加媒体查询
  • 所有图片元素响应式
  • 可以调用封装好的js组件(支持google地图)

java基础面试题

1、Java的基本类型(8个)每个基本类型所占位数与字节数

  • byte 1字节 8位
  • short 2字节 16位
  • int 4字节 32位
  • long 8字节 64位
  • char 2字节 16位
  • float 4字节 32位
  • double 8字节 64位
  • boolean 1字节 8位

2、Int与Integer区别

  • Integer是int的包装类,int则是java的一种基本数据类型
  • Integer变量必须实例化后才能使用,而int变量不需要
  • Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
  • Integer的默认值是null,int的默认值是0

3、Servlet生命周期

  • 创建servlet实例
  • 当servlet实例化后,将调用这个对象的init()方法进行初始化
  • 再调用对象的service()方法来处理请求,并返回处理结果,在调用service之前,
  • 需保证init初始化已被成功执行
  • 当需要释放servlet的时候,调用对象的destroy()方法来结束,并释放资源

4、软件开发流程

  • 需求分析
  • 概要设计
  • 详细设计
  • 编码
  • 测试
  • 软件交付
  • 验收
  • 维护

5、三层架构

  • UI(表现层):主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。
  • BLL:(业务逻辑层):UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。
  • DAL:(数据访问层):与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。(当然这些操作都是基于UI层的。用户的需求反映给界面(UI),UI反映给BLL,BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户)

6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

  • 对于 short s1 = 1; s1 = s1 + 1; 由于 s1+1 运算时会自动提升表达式的类型,所以结果 是 int 型,再赋值给 short 类型 s1 时,编译器将报告需要强制转换类型的错误。
  • 对于 short s1 = 1; s1 += 1;由于 += 是 java 语言规定的运算符,java 编译器会对它进行特殊处理,因此可以正确编译。

7、下面这条语句一共创建了多少个对象:Strings="a"+"b"+"c"+"d";

  • String s = "a" +"b" + "c" + "d"; System.out.println(s =="abcd"); 最终打印的结果应该为 true。
  • 所以只创建一个对象 相当于直接定义了一个”abcd”的字 符串

8、try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?

一般答案:会执行,在方法返回调用前执行。准确的说是在return中间执行。

9、请写出你最常见到的 5 个 runtimeexception。

  • 转换异常 ClassCastException
  • 除零异常 ArithmeticException
  • 空指针异常 NullPointerException
  • 索引越界异常 StringIndexOutOfBoundsException
  • 数组越界异常 ArrayIndexOutOfBoundsException

10、GC 是什么? 为什么要有 GC?

GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存的显示操作方法。

11、什么时候用 assert

assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion 就是在程序中的一条语句,它对一个 boolean 表达式进行检查,一个正确程序必须保证这个 boolean 表达式的值为 true;如果该值为 false,说明程序已经处于不正确的状态下,assert 将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion 检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion 检查通常是关闭的。

12、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和 suspend()方法为何不推荐使用?

  • 有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口
  • 用 synchronized 关键字修饰同步方法
  • 反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象 处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检 查出真正的问题所在。suspend()方法容易发生死锁。
  • 调用 suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用 suspend(),
  • 而应在自己的 Thread 类中置入一个标志,指出线程应该活动还是挂起。 若标志指出线程应该挂起,便用 wait()命其进入等待状态。若标志指出线程应当恢 复,则用一个 notify()重新启动线程。

13、同步和异步有何异同,在什么情况下分别使用他们?举例说明。

  • 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
  • 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

14、当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?

  • 其他方法前是否加了 synchronized 关键字,如果没加,则能。
  • 如果这个方法内部调用了 wait,则可以进入其他 synchronized 方法。
  • 如果其他个方法都加了 synchronized 关键字,并且内部没有调用 wait,则不能。
  • 如果其他方法是 static,它用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是 this。

javaweb面试题

1、说一说 Servlet 的生命周期?

web 容器加载 servlet,生命周期开始。通过调用 servlet 的 init()方法进行 servlet 的初始化。通过调用 service()方法实现,根据请求的不同调用不同的 do***()方法。结束服务,web 容器调用 servlet 的 destroy()方法。

2、SERVLET API 中 forward() 与 redirect()的区别?

  • 答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用 forward()方法,并且,这样也有助于隐藏实际的链接。
  • 在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 sendRedirect()方法。

3、 jsp 有哪些内置对象

  • request 用户端请求,此请求会包含来自 GET/POST 请求的参数
  • response 网页传回用户端的回应
  • pageContext 网页的属性是在这里管理
  • session 与请求有关的会话期
  • application servlet 正在执行的内容
  • out 用来传送回应的输出
  • config servlet 的构架部件
  • page JSP 网页本身
  • exception 针对错误网页,未捕捉的例外

4、JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?

  • JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。
  • JSP 编译后是"类 servlet"。Servlet 和 JSP 最主要的不同点在于,Servlet 的应用逻辑是 在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java 和HTML 可以组合成一个扩展名为.jsp 的文件。JSP 侧重于视图,Servlet 主要用于控制逻辑。

5、MVC 的各个部分都有那些技术来实现?如何实现?

MVC 是 Model-View-Controller 的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实现), View 是应用的表示面(由 JSP 页面产生),Controller 是提供应用的处理过程控制(一般是一个 Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

6、MVC 的各个部分都有那些技术来实现?如何实现?

MVC 是 Model-View-Controller 的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实现), View 是应用的表示面(由 JSP 页面产生),Controller 是提供应用的处理过程控制(一般是一个 Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

7、Tomcat 的优化经验

答:去掉对 web.xml 的监视,把 jsp 提前编辑成 Servlet。 有富余物理内存的情况,加大 tomcat 使用的 jvm 的内存

还有很多面试题就不一一举例出来了 小编找到了一本 java面试宝典

里面好多的面试题 在这里免费送给大家

链接:https://pan.baidu.com/s/1FoDehv2mQKt-OeEI8m6LfQ 密码:tgnc

顺便小编在送给大家几一百套it简历模板 总有一款适合你 关注微信公众号回复“简历” 即可获取

如果连接失效请及时留言提醒

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 互扯程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档