面试题总结

时间:2024.3.31

1、说说自己的工作情况

2、簇优化中的大致流程、问题点分析、如何调天馈

3、中国移动获得130MHz频谱资源,频段分别为1880 -1900 MHz、2320-2370

MHz、2575-2635 MHz;

中国联通获得40MHz频谱资源,频段分别为2300-2320 MHz、2555-2575

MHz;

中国电信获得40MHz频谱资源,频段分别为2370-2390 MHz、2635-2655 MHz。 4、电信单站验证中好点速率多少达标、前台测试中速率不达标的原因,看那些指标

5、误码率很高的话 ,后台要查看什么。

告警 上下行干扰 RRU间的误码率 CQI

6、前台怎么样发现邻区漏配 。

若是同频的话,应该是在DT测试过程中,某一点信号正常或者很好,然后上报很多MR(测量报告),发生很多A3事件,这个时候判断改点为邻区漏配,要找具体是哪个站的话,可以在层3信令里查到,请知!

7、后台的参数了解多少

后台关注:1、接通率 2、RRC建立成功率 3、RAB建立成功率 4、切换成功率 5、掉线率

1.单站验证流程;堪站流程。

2.测试时关注的参数。

前台关注1、RSRP、SINR、下载速率、PCI、传输模式,单双流通道(rank1/rank2),调度数等参数

3.测试上下行速率时达标的RSRP和SINR。

大于-85 大于22

4.影响下行速率的因素。

1).天线的收发模式,MIMO 天线数量和模式,beamforing波束赋形的天线阵增益(包括天线数量)

2).空间信道的质量,包括信号强度,以及干扰的情况,空间信道的相关性,UE的移动速度,UE接收机的性能。

3).TDD还和上下行子帧配比,FDDTDD中信道配置情况有关系(例如cfi的多少,是否有MBMS支持)

4).和用户的数量也有关系。

5.LTE关键技术,HARQ的传输过程。

6.LTE编码调制的方式。

QPSK 16QAM 64QAM

7.模3干扰。

就是两个小区PCI分别除以3,他们的余数相等,就是模三干扰。前提是他们的SINR值很差,下载速率低的情况。

LTE网络中PCI = 3* Group ID ( S-SS)+ Sector ID (P-SS),如果PCI mod 3值相同的话,那么就会造成P-SS的干扰 PCI为屋里小区ID PSS 为主同步信号 也就是说PSS相同就会产生模3干扰(PCI除以3余数相同 PSS相同)

8.什么情况下MOD3干扰可以忽略不计?

测试过程中不可避免MOD3干扰,如果主服务小区和邻区中有MOD3,如果该干扰邻区信号强度相差10dbm以上,可以认为MOD3影响很小!

9.调度

TDD中常规子帧配比为1:3,特殊子帧配比为DwPTS:GP:UpPTS=3:9:2时上行调度数为200RB/S,下行为600RB/S

TDD中常规子帧配比为1:3,特殊时隙配比为DwPTS:GP:UpPTS=10:2:2时上行调度数为200RB/S,下行为800RB/S


第二篇:java面试题--重点总结


1、Statement,PreparedStatement,CallableStatment 的区别</b>

答:区别有以下几点:

1) Statement 是 PreparedStatement 和 CallableStatement 的父类;

2) Statement 是 直 接 发 送 Sql 语 句 到 数 据 库 , 事 先 没 有 进 行 预 编 译 。

PreparedStatement 会将 sql 进行预编译,当 sql 语句要重复执行时,数据库会 调用以前预编译好的 sql 语句,所以 PreparedStatement 在性能方面会更好;

3)PreparedStatement 在执行 sql 时,对传入的参数可以进行强制的类型转换。 以保证数据格式与底层的数据库格式一致。

4)CallableStatement 适用与存储过程的查询表达语句

2、解释四种会话跟踪技术?</b>

答:隐藏表单域、URL 重写,Cookie、Session。

1.隐藏表单域:<input type="hidden">,非常适合步需要大量数据存储的会话 应用。

2.URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名 字/值对。

3.Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie

头标将它作为 HTTP 响应的一部分传送到客户端,客户端被请求保存 Cookie 值, 在对同一服务器的后续请求使用一个 Cookie 头标将之返回到服务器。与其它技 术比较,Cookie 的一个优点是在浏览器会话结束后,甚至在客户端计算机重启 后它仍可以保留其值。

4.Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话

3、数据连接池的工作机制是什么?</b>

答:J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的 池连接。 客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将 其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建 连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接 表记为空闲,其他调用就可以使用这个连接。

<b>4、什么是 ORM?</b>

答:对象关系映射(Object—Relational Mapping,简称 ORM)是一种为了解决 面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通 过使用描述对象和数据库之间映射的元数据,将 java 程序中的对象自动持 久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。 <b>5、Hibernate 有哪 5 个核心接口?</b>

答:Configuration 接口:配置 Hibernate,根据其启动 hibernate,创建

SessionFactory 对象;

SessionFactory 接口:初始化 Hibernate,充当数据存储源的代理,创建

session 对象,sessionFactory 是线程安全的,意味着它的同一个实例可以被应 用的多个线程共享,是重量级、二级缓存;

Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的, 避免多个线程共享同一个 session,是轻量级、一级缓存;

Transaction 接口:管理事务;

Query 和 Criteria 接口:执行数据库的查询。

<b>6、JAVA 中如何进行事务的处理?</b>

答:Connection 类中提供了 3 个事务处理方法:

setAutoCommit(Boolean autoCommit):设置是否自动提交事务,默认为自动

提交事务,即为 true,通过设置 false 禁止自动提交事务;

commit():提交事务;

rollback():回滚事务。

<b>7、Hibernate 实现中,load 和 get 方法的区别,find 和 iterate 的区别?</b> 答:load 和 get 方法的区别:hibernate 对于 load 方法认为该数据在数据库中 一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只

能抛异常; 而对于 get 方法, hibernate 一定要获取到真实的数据, 否则返回 null。

find 和 iterate 的区别:find 方法通过一条 Select SQL 实现了查询操作,

而 iterate 方法要执行多条 Select SQL.iterate 第一次查询获取所有符合条件

的记录的 id, 然后再根据各个 id 从库表中读取对应的记录, 这是一个典型的 N+1

次的查询问题, 如果符合条件记录有 10000 条, 就需要执行 10001 条 Select SQL,

性能会非常差。

<b>8、说出 Servlet 的生命周期,并说出 Servlet 和 CGI 的区别?</b>

答:Servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行其 service 方法,service 方法自动派遣运行与请求对应的 doXXX 方法(doGet, doPost)等,当服务器决定将实例销毁的时候调用其 destroy 方法。

与 cgi 的区别在于 servlet 处于服务器进程中,它通过多线程方式运行其

service 方法,一个实例可以服务于多个请求, 并且其实例一般不会销毁, CGI而

对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于 servlet。

<b>9、JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?Servlet 中 forward 与 redirect的区别?</b>

答:动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="head.jsp"/>

它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静 态 INCLUDE 用 include 伪码实现,它不会检查所含文件的变化,适用于包含静态 页面<%@include file="head.htm" %>

forward 是容器中控制权的转向,是服务器请求资源,服务器直接访问目标

地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器, 浏览器根本不知道服务器发送的内容是从哪儿来的, 所以它的地址栏中还是原来

的地址。 redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请 求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以

session,request 参数都可以获取,并且从浏览器的地址栏中可以看到跳转后的 链接地址。前者更加高效,在前者可以满足需要时,尽量使用 forward()方法, 并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其 它服务器上的资源,则必须使用 sendRedirect()方法。

<b>10、说出 JSP 的内置对象,并给出说明。</b>

答:request 表示 HttpServletRequest 对象。它包含了有关浏览器请求的信息, 并且提供了几个用于获取 cookie, header 和 session 数据的有用的方法。

response 表示 HttpServletResponse 对象,并提供了几个用于设置送回 浏

览器的响应的方法(如 cookies,头信息等) 。

out 对象是 javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用

于向浏览器回送输出结果。

pageContext 表示一个 javax.servlet.jsp.PageContext 对象。它是用于方

便存取各种范围的名字空间、servlet 相关的对象的 API,并且包装了通用的

servlet 相关功能的方法。

session 表示一个请求的 javax.servlet.http.HttpSession 对象。Session

可以存贮用户的状态信息。

application 表示一个 javax.servle.ServletContext 对象。 这有助于查找

有关 servlet 引擎和 servlet 环境的信息。

config 表示一个 javax.servlet.ServletConfig 对象。该对象用于存取

servlet 实例的初始化参数。

page 表示从该页面产生的一个 servlet 实例。

exception 针对错误网页,未捕捉的例外

<b>11、JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?</b>

答:JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的

外表表达。JSP 编译后是"类 servlet"。Servlet 和 JSP 最主要的不同点在于,

Servlet 的应用逻辑是在 Java 文件中, 并且完全从表示层中的 HTML 里分离开来。

而 JSP 的情况是 Java 和 HTML 可以组合成一个扩展名为.jsp 的文件。JSP 侧重于 视图,Servlet 主要用于控制逻辑。

<b>12、什么是 AJAX 和 AOP?</b>

答: Ajax 的全称是:AsynchronousJavaScript+XML。Ajax 不是一个技术,它实

际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新

技术。Ajax 包括: XHTML 和 CSS 使用文档对象模型(Document Object Model)

作动态显示和交互 使用 XML 和 XSLT 做数据交互和操作 使用 XMLHttpRequest

进行异步数据接收 使用 JavaScript 将它们绑定在一起 。

AOP 是 OOP 的延续,是 Aspect Oriented Programming 的缩写,意思

是面向切面编程。可以通过预编译方式和运行期动态代理实现在不修改源

代码的情况下给程序动态统一添加功能的一种技术。 AOP 实际是

GoF 设计模

式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP 可

以说也是这种目标的一种实现。

<b>13、j2ee 常用的设计模式?说明工厂模式?</b>

答:Java 中的 23 种设计模式:

Factory(工厂模式) Builder(建造模式), ,Factory Method(工厂方法模式) ,

Prototype(原始模型模式) ,Singleton(单例模式),Facade(门面模式),

Adapter(适配器模式) ,Bridge(桥梁模式),Composite(组合模式),

Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),

Command(命令模式) ,Interpreter(解释器模式),Visitor(访问者模式)

,Iterator(迭代器模式) ,Mediator(调停者模式),Memento(备忘录模式),

Observer(观察者模式),State(状态模式),Strategy(策略模式),

Template Method(模板方法模式) Chain Of Responsibleity(责任链模式),

工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根

据提供的数据生成一组类中某一个类的实例, 通常这一组类有一个公共的抽

象父

类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首

先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需

要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实

例后, 开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

<b>14、HashMap和Hashtable的区别?</b>

答 HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完成了

Map 接口,主要区别在于 HashMap 允许空(null)键值(key),由于非线程安

全,效率上可能高于 Hashtable。HashMap 允许将 null 作为一个 entry 的 key

或者 value,而 Hashtable 不允许。HashMap 把 Hashtable 的 contains 方法去

掉了,改成 containsvalue 和 containsKey。因为 contains 方法容易让人引起误

解。Hashtable 继承自 Dictionary 类,而 HashMap 是 Java1.2 引进的 Map

interface 的一个实现。

最大的不同是,Hastable 的方法是 synchronize 的,而 HashMap 不是,在多个

线程访问 Hashtable 时, 不需要自己为它的方法实现同步,而 HashMap 就必须 为之提供外同步。

15、Collection 和 Collections 的区别?</b>

答:Collection 是 java.util 下的接口,它是各种集合的父接口,继承于它的接口

主要有 Set 和 List;Collections 是个 java.util 下的类,是针对集合的帮助类,提

供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

<b>16、是否可以从一个 static 方法内部发出对非 static 方法的调用?【基础】</b>

答:不可以,如果其中包含对象的 method(),不能保证对象初始化。

<b>17、Error 和 Exception 有什么区别? 列出你见过的 Exception 并简要说明。</b>

答:error 表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困

难的情况下的一种严重问题; 比如内存溢出, 不可能指望程序能处理

这样的情况;

exception 表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现

问题;也就是说,它表示如果程序运行正常,从不会发生的情况。

常见异常有:

NullPointerException:当操作一个空引用时会出现此错误。

NumberFormatException:数据格式转换出现问题时出现此异常。

ClassCastException:强制类型转换类型不匹配时出现此异常。

ArrayIndexOutOfBoundsException:数组下标越界,当使用一个不存在的数

组下标时出现此异常。

<b>18、什么是 JAVA 的反射?</b>

答:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程

序集、模块和类型的对象。可以使用反射动态地创建类型的实例,将类型绑定到

现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段

和属性。

<b>19、什么是垃圾回收?什么时候触发垃圾回收?如何降低垃圾回收的触发频

率?它能保证程序有足够的可用内存吗?</b>

答: 垃圾回收(GC)是 Java 语言的一个重要特性,作用是释放不再被使用的内存。

垃圾回收由系统进行管理。在系统认为需要的时候自动启动一个线程进行处理。 尽量减少垃圾内存,也就是新建对象,的数量,可以降低垃圾回收的频率。垃圾 回收机制无法保证有足够的内存。

(1)、 简述 java 中的垃圾回收

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

<b>20、 什么是 java 序列化,如何实现 java 序列化?</b>

答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进 行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之 间。序列化是为了解决在对对象流进行读写操作时所引发的问题;

序列化的实现:将需要被序列化的类实现 Serializable 接口,该接口没有需实现 的方法,implements Serializable 只是为了标注该对象是可被序列化的,然后使 用一个输出流(如 FileOutputStream)来构造一个 ObjectOutputStream(对象流)对 象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj)方法就可以 将参数为 obj 的对象写出(即保存其状态),要恢复的话则用输入流。

<b>21、说出一些 JDK 常用的类,包,接口,请各举 5 个</b>

类:HashSet 、Thread 、String 、FileInputStream 、Class

包:java.lang 、java.io 、java.util 、java.text 、java.sql

接口:Collection 、Set 、List 、Comparable 、Serializable

<b>22、谈谈 final, finally, finalize 的区别</b>

答:final —修饰符(关键字)如果一个类被声明为 final,意味着它不能再派 生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract 的 ,又被声明为 final 的。将变量或方法声明为 final,可以保证它们在使用中不 被改变。被声明为 final 的变量必须在声明时给定 初值,而在以后的引用中只 能读取,不可修改。被声明为 final 的方法也同样只能使用,不能重载 finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个 异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块( 如果有的话)

finalize —方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对

象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定 这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此 所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其 他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。 <b>23、String, StringBuffer StringBuilder 的区别。</b>

答:String 是不可变的;StringBuffer 是可变的,如果你对字符串中的内容经 常进行操作,特别是内容要修改时,那么使用 StringBuffer,如果最后需要 String,那么使用 StringBuffer 的 toString()方法,并且它是线程安全的; StringBuilder 是从 JDK 5 开始提供的类,为 StringBuffer 该类补充了一个单 个线程使用的等价类;通常应该优先使用 StringBuilder 类,因为它支持所有

相同的操作,但由于它不执行同步,所以速度更快。

<b>24、Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?</b> 方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding

是父类与子类之间多态性的一种表现, 重载 Overloading 是一个类中多态性的一种表现。 如

果在子类中定义某方法与其父类有相同的名称和参数, 我们说该方法被重写 (Overriding)。

子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"

了。 如果在一个类中定义了多个同名的方法, 它们或有不同的参数个数或有不同的参数类型,

则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。 <b>25、.说明反转控制(IOC)和面向方向编程(AOP)在 spring 中的应用</b>

解答:Spring 核心容器(Core)提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,

它是工厂模式的实现。BeanFactory 使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际

的应用代码程序分开。Spring 的声明式事务基于 AOP 实现,却并不需要程序开发者成为 AOP 专家,亦

可轻易使用 Spring 的声明式事务管理。

<b>26.JSP 页面之间传递参数的方法有哪些?</b>

解答:1)request;2)session;3)application;4)提交表单; 5)超链接

<b>27.Java 反射机制的作用?</b>

解答:Java 反射机制的作用是:

1)在运行时判断任意一个对象所属的类。

2)在运行时构造任意一个类的对象。

3)在运行时判断任意一个类所具有的成员变量和方法。

4)在运行时调用任意一个对象的方法

<b>28、jsp 有哪些动作?作用分别是什么? 【基础】</b>

答:JSP 共有以下 6 种基本动作:

jsp:include:在页面被请求的时候引入一个文件;

jsp:useBean:寻找或者实例化一个 JavaBean。;

jsp:setProperty:设置 JavaBean 的属性。;

jsp:getProperty:输出某个 JavaBean 的属性;

jsp:forward:把请求转到一个新的页面;

jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。 <b>29、get 和 post 的区别?【基础】</b>

答:Form 中的 get 和 post 方法,在数据传输过程中分别对应了 HTTP 协议中的 GET 和 POST 方法。二者主要区别如下:

1)Get 是用来从服务器上获得数据,而 Post 是用来向服务器上传递数据;

2)Get 将表单中数据按照 variable=value 的形式,添加到 action 所指向的

URL 后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post 是将

表单中的数据放在 form 的数据体中, 按照变量和值相对应的方式, 传递到 action

所指向 URL;

3)Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的 所有操作对用户来说都是不可见的;

4)Get 传输的数据量小,这主要是因为受 URL 长度限制;而 Post 可以传输 大量的数据,所以在上传文件只能使用 Post;

<b>30、jsp 的四种范围?【基础】</b>

答:a.page 是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)

表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

b.request 是代表与 Web 客户机发出的一个请求相关的对象和属性。一个

请求可能跨越多个页面, 涉及多个 Web 组件(由于 forward 指令和 include 动

作的关系)

c.session 是代表与用于某个 Web 客户机的一个用户体验相关的对象和属

性。一个 Web 会话可以也经常会跨越多个客户机请求

d.application 是代表与整个 Web 应用程序相关的对象和属性。这实质上

是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域。 <b>31、过滤器有哪些作用?【基础】</b>

答:可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码, 可以从系统里获得配置的信息,可以过滤掉客户的某些不应该出现的词汇,可以 验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统 的日志等等。

<b>32、写出熟悉的 JSTL 标签。</b>

答:<c:if>、<c:choose>、<c: when>、<c: otherwise>、<c:forEach>、<c:set>。 <b>33、编程题: 写一个 Singleton 出来。【基础】</b>

答:Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一 个实例存在。举例:定义一个类,它的构造函数为 private 的,它有一个 static

的 private 的该类变量, 在类初始化时实例话, 通过一个 public 的 getInstance

方法获取对它的引用,继而调用其中的方法。

第一种形式:

public class Singleton {

private Singleton(){}

private static Singleton instance = new Singleton();

public static Singleton getInstance(){

return instance;

}

}

第二种形式:

public class Singleton {

private static Singleton instance = null;

public static synchronized Singleton getInstance(){

if (instance==null)

instance=new Singleton();

return instance;

}

}

其他形式: 定义一个类,它的构造函数为 private 的,所有方法为 static 的。 一般认为第一种形式要更加安全些

<b>34、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop() 和 suspend()方法为何不推荐使用?【中等难度】</b>

答:有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口;

用 synchronized 关键字修饰同步方法;

反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而

且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它 们。结果很难检查出真正的问题所在;

suspend()方法容易发生死锁。调用 suspend()的时候,目标线程会停下来,

但却仍然持有在这之前获得的锁定。 此时,其他任何线程都不能访问锁定的资源,

除非被“挂起”的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,

同时又试图使用任何一个锁定的资源, 就会造成死锁。 故不应该使用 suspend(),

而应在自己的 Thread 类中置入一个标志,指出线程应该活动还是挂起。若标志 指出线程应该挂起,便用 wait()命其进入等待状态。若标志指出线程应当恢复, 则用一个 notify()重新启动线程。

<b>35、启动一个线程是用 run()还是 start()?【基础】</b>

答:启动一个线程是调用 start()方法,使线程所代表的虚拟处理机处于可运行

状态, 这意味着它可以由 JVM 调度并执行。 这并不意味着线程就会立即运行。run() 方法可以产生必须退出的标志来停止一个线程。

<b>36、sleep() 和 wait() 有什么区别? 【基础】</b>

答:sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行 机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用 sleep 不会 释放对象锁。wait 是 Object 类的方法,对此对象调用 wait 方法导致本线程放

弃对象锁, 进入等待此对象的等待锁定池, 只有针对此对象发出 notify 方法(或

notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

<b>37、当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进 入此对象的其它方法? 【基础】</b>

答:其它线程只能访问该对象的其它非同步方法,同步方法则不能进入。

<b>38、请说出你所知道的线程同步的方法。【基础】</b>

答:wait():使一个线程处于等待状态,并且释放所持有的对象的 lock;

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方

法要捕捉 InterruptedException 异常;

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,

并不能确切的唤醒某一个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且 不是按优先级;

notityAll():唤醒所有处入等待状态的线程, 注意并不是给所有唤醒线程一 个对象的锁,而是让它们竞争。

<b>39、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? </b>

答:多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口 ,同步 的实现方面有两种,分别是 synchronized,wait 与 notify。

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

答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到, 或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,

必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的

方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况 下采用异步途径往往更有效率。

<b>41、简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?</b>

答:主要相同点:Lock 能完成 synchronized 所实现的所有功能;

主要不同点:Lock 有比 synchronized 更精确的线程语义和更好的性能。

synchronized 会自动释放锁,而 Lock 一定要求程序员手工释放,并且必须在 finally 从句中释放。

<b>

42.请写出每隔一秒调用方法a()的javascript代码。</b>

setInterval(a,1000);//注意方法名后面不要带括号

取消为 var taskID=setInterval(a,1000);

clearInterval(taskID);

<b>43.编写一个javascript函数,两个参数str1,str2,返回两个字符串的连接。</b> function concat(str1,str2){

retrun str1+str2;

}

<b>44.浏览器的左下角出现黄色感叹号图标,说明什么情况?如何处理?</b>

错误提示图标,双击黄色感叹号图标,会显示在文件的第几行,检查指定的程序的那个地方,修改错误即可。

<b>45.http协议中,404表示什么意思?如何出现此编号,如何应对,200,300,400,500的含义是什么?</b>

4XX:请求错误

404:资源路径问题

400:bad request,当前请求无法被服务器理解,除非进行修改,否则客户端部应该重复提交这个请求

请求参数有误

200:请求已成功,请求所希望的响应头或数据体将随此响应返回

300:多个请求

500::服务器内部错误

<b>46.试举出来常用的javascript取得页面元素的几种方法(至少四种)</b>

document.getElementById();

document.getElementByName();

document.getElementByTagName();

document.forms[0].input_name.value='nihao';

<b>47.在css中表示纯黑的是什么代码?有哪几种描述方式?</b>

color:#000000; color:black; color:RGB(0,0,0);

<b>48.请说出下面两个方法的区别</b>

方法1:setTimeOut("a",1000),一秒后调用一次方法a(),想不断调用需要递归调用setTimeOut("a",1000)

方法2:setInterval("a",1000),每隔一秒调用一次方法a()

<b>49.请简述你对MVC的了解</b>

MVC是一种编程思想,是为了使代码相互之间解耦合而产生。

M:model(模型),业务层,主要处理业务逻辑,访问数据库等。

V:view(视图),视图层,主要负责数据显示,用户直接交互的是视图层,一个良好的视图层更能增加用户体验。

C:Controller(控制器),控制层,当用户发出请求,控制层分析这个请求,转到相应的业务层进行业务逻辑的

处理,处理结束,再由控制层转交给相应的视图层进行数据的显示。控制层将业务逻辑处理和数据显示进行

解耦,是代码结构更清晰,更易于维护。

<b>50.JSP文件内写的注释有哪些?分别是哪个层面的?</b>

<!--注释内容-->: 添加的注释内容如果是可执行

的java代码,则该代码会执行,但是,结果

并不会显示在客户端。

<%--注释内容--%>:添加的注释内容如果是可执行

的java代码,代码不会执行,结果也不会显示

在客户端。

注意:是<%--注释内容--%>,不是<%--注释内容-->

<b>51.对某个JSP页面进行了修改,但是在浏览器当中始终看不到新的页面的效果,有可能是什么原因,请分析。</b>

最可能原因:(1)没部署完成(2)浏览器缓存

<b>52.EL表达式的内置对象有几种?分别是什么类型?</b>

pageContext: javax.servlet.jsp.PageContext

pageScope: java.util.Map

requestScope: java.util.Map

sessionScope: java.util.Map

applicationScope: java.util.Map

param: java.util.Map

paramValues: java.util.Map

header: java.util.Map

headerValues: java.util.Map

cookie: java.util.Map

initParam: java.util.Map

<b>53.请写出servlet的基本架构</b>

public class SaveServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

..............................

}

在web.xml中配置

<servlet>

<servlet-name>saveServlet</servlet-name>

<servlet-class>web.SaveServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>saveServlet</servlet-name>

<url-pattern>/save.do</url-pattern>

</servlet-mapping>

<b>54.页面中对象传递的方法有哪些?</b>

request: request.setAttribute();

session: session.setAttribute();

ServletContext:ServletContext sc=config.getServletContext();

sc.setAttribute(key,value);

pageContext:pageContext.setAttribute();

application:application.setAttribute();

<b>55.request对象的方法,至少写出8个方法。</b>

request.getClass();

request.setAttribute();

request.getAttribute();

request.removeAttribute();

request.getParameter();

request.getCharacterEncoding();

request.getContentType();

request.getContentLength();

request.getContextPath();

request.getServletPath();

request.getSession();

request.getCookies(); //注意不是request.getCookie()

request.getHeader();

request.getInitHeader();

<b>56.请分别写出get和post请求时,编码问题的处理方案。</b>

get方式:

1、手动转码

new String(un.getBytes("ISO-8859-1"),"utf-8");

2、改变服务器的默认接收编码

tomcat/conf/server.xml添加URIEncoding="utf-8"配置

Post方式:

方法1同样适合post

2、必须在从request夺取数据之前写

request.setCharacterEncoding("utf-8");才有用

<b>57. 介绍一下 hibernate 的工作原理、优点以及如何优化?</b>

解答:工作原理:1)启动 Hibernate 构建 Configuration 实例,初始化该实例中的所有变量 Configuration cfg = new

Configuration().configure();

2).加载 hibernate.cfg.xml 文件至该实例内存,通过 hibernate.cfg.xml 文件中的 mapping 节点配置,

加载 hbm.xml 文件至该实例内存;

3). 由 上 面 得 到 的 Configuration 实 例 构 建 一 个 SessionFactory 实 例 SessionFactory sf =cfg.buildSessionFactory();

4).由上面得到的 SessionFactory 实例创建连接 Session s = sf.openSession();

5).由上面得到的 Session 实例创建事务操作接口 Transaction 的一个实例 tx Transaction tx =s.beginTransaction();

6).通过 Session 接口提供的各种方法操作数据库的访问

7).提交数据库的操作结果 tx.commit();

8).关闭 Session 链接 s.close();

优点:1).对 JDBC 访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

2).Hibernate 是一个基于 JDBC 的主流持久化框架,是一个优秀的 ORM 实现。他很大程度的简化 DAO层的编码工作

3).hibernate 使用 Java 反射机制,而不是字节码增强程序来实现透明性。

4).hibernate 的性能非常好, 因为它是个轻量级框架。 映射的灵活性很出色。 它支持各种关系数据库,

从一对一到多对多的各种复杂关系。

优化:

1).使用双向一对多关联,不使用单向一对多

2).灵活使用单向一对多关联

3).不用一对一,用多对一取代

4).配置对象缓存,不使用集合缓存

5).一对多集合使用 Bag,多对多集合使用 Set

6).继承类使用显式多态

7).表字段要少,表关联不要怕多,可以利用二级缓存

更多相关推荐:
分享一个公务员面试官的总结

分享一个公务员面试官的总结值得一看来源马淑娟的日志应该说经历过笔试进入面试的考生素质都不错但在面试中却表现各不相同有的差别甚至很大其中原因很多比如紧张准备不足没有面试经验和技巧不能正常发挥等等虽肚子有东西但却无...

面试官面试流程及题目

面试流程及题目一准备工作面试登记表面试人员简历测评表产品简介栾厚芳负责应聘者到达前准备好应聘者到达时在面试人员登记表按照到达时间顺序签到然后将面试人员引至培训教室填写测评表二面试部分面试人员由组成每个应聘者10...

面试官十大常问面试问题总结

面试时,有几个问题是面试人员常常会提出的,针对这些问题好好准备,在面试时也就不会哑口无言,无言以对了,现在找工作,得面试。面试技巧也是一大学问,面试的功夫做到家了,找工作很容易的。下面就面试官十大常问面试问题作…

外企面试官的工作总结

外企面试官的工作总结本文来源中人网曾经阅人无数也被人阅了无数次所以在这里我也把自己的一些求职和招聘的经历做了点小小的回顾我相信一点当帮助别人的同时或许你也在帮助自己题记前一阶段受家里两位长辈的委托一直忙着帮助和...

面试官面试问题大全

面试官面试问题大全,内容附图。

面试官面试问题大全

面试题1抽象推理测试某班级承诺只要全班同学都在承诺书上签字那么如果全班有一人作弊全班同学的考试成绩都以不及格计校方接受并实施了该班的这一承诺结果班上还是有人作弊但班长的考试成绩是优秀以下哪项是从上述断定逻辑地得...

面试官开场白和结束语

面试官的开场白和结束语范文进入面试场地,面试官通常在面试开始时会说一段开场白,在面试结束时,也会又一段结束语,以此宣布面试结束,那么面试官一般会怎样说开场白和结束语呢?或许只有了解这些,应进入面试场地,面试官通…

毕业生面试问答70题,面试官经常会问的问题,你该如何回答。

1请你自我介绍一下你自己回答提示一般人回答这个问题过于平常只说姓名年龄爱好工作经验这些在简历上都有其实企业最希望知道的是求职者能否胜任工作包括最强的技能最深入研究的知识领域个性中最积极的部分做过的最成功的事主要...

护士面试官的考题大全之求职必看

企业为什么要面试这是企业了解应征者对工作态度以及身在社会中一些必备常识的最好方法如果一问三不知是没资格当社会中坚份子的假若想要有立即回答的本事那么平常就应多注意媒体报导特别是关于希望进入业界的消息在笔试面试和实...

面试官常用问题及思路

面试题库14个维度考察选拔说明本题库适用于面试时抽取问题参照使用本题库将不断完善充实本资料来源于商战名家123456

面试官常问的11个问题

大学生应聘需要准备的11个面试问题问题一请你自我介绍一下问题一请你自我介绍一下请你自我介绍一下这个问题的面试方法是应聘者站起来用五分钟的时间面对大家进行演讲我的目的是了解应聘者的心理承受能力逻辑思维能力演讲能力...

面试考官必问题

问题一请你自我介绍一下思路1这是面试的必考题目2介绍内容要与个人简历相一致3表述方式上尽量口语化4要切中要害不谈无关无用的内容5条理要清晰层次要分明6事先最好以文字的形式写好背熟问题二谈谈你的家庭情况思路1况对...

面试官面试总结(30篇)