`

java软件工程师面试常见问题!(三)

 
阅读更多

51、垃圾回收的优点和原理。并考虑2种回收机制。
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

52、请说出你所知道的线程同步的方法。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
  
53、你所知道的集合类都有哪些?主要方法?
最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。 
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。
54、描述一下JVM加载class文件的原理机制?
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
   
 
55、char型变量中能不能存贮一个中文汉字?为什么? 
能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的


56、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 
同步的实现方面有两种,分别是synchronized,wait与notify
 
  
58、线程的基本概念、线程的基本状态以及状态之间的关系
线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束。


59、JSP的常用指令
<%@page language="java" contenType="text/html;charset=gb2312" session="true" buffer="64kb" autoFlush="true" isThreadSafe="true" info="text" errorPage="error.jsp" isErrorPage="true" isELIgnored="true" pageEncoding="gb2312" import="java.sql.*"%>
isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)
<%@include file="filename"%>
<%@taglib prefix="c"uri="http://......"%>


60、什么情况下调用doGet()和doPost()?
Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

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

62、如何现实servlet的单线程模式
<%@ page isThreadSafe="false"%>


63、页面间对象传递的方法
request,session,application,cookie等


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


65、四种会话跟踪技术
会话作用域ServletsJSP 页面描述
page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面
request是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)
session是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求
application是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域


66、Request对象的主要方法:
setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度
getHeader(String name):获得HTTP协议定义的文件头信息
getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例
getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
getParameter(String name):获得客户端传送给服务器端的有name指定的参数值
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
getParameterValues(String name):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():获得查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的名字
getSession([Boolean create]):返回和请求相关Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性


67、J2EE是技术还是平台还是框架?
    J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
    J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。


68、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
Public String translate (String str) {
    String tempStr = "";
    try {
      tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
      tempStr = tempStr.trim();
    }
    catch (Exception e) {
      System.err.println(e.getMessage());
    }
    return tempStr;
  }

69、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
区别主要答两点:a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路


70、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 
a: 两种形式 dtd  schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),c:有DOM,SAX,STAX等 
    DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 
    STAX:Streaming API for XML (StAX)

分享到:
评论

相关推荐

    java软件工程师面试常见问题

    Java软件工程师面试常见问题涵盖了广泛的知识点,这些知识点是每一位Java开发者在面试中可能遇到的。下面我们将逐一探讨这些主题,以帮助你更好地准备面试。 1. **基础语法与数据类型**:Java的基础包括变量、数据...

    java软件工程师面试常见问题.docx

    Java 软件工程师面试常见问题 Java 软件工程师面试常见问题中,涵盖了面向对象编程、Java 基础知识、异常处理、Servlet 生命周期、集合框架、EJB 等方面的知识点。 1. 面向对象编程的特征 面向对象编程(Object-...

    java软件工程师面试常见问题.pdf

    ### Java软件工程师面试常见问题解析 #### 一、面向对象的四大特征 1. **抽象** 抽象是面向对象编程中的一个重要概念,它指的是在设计阶段仅关注对象的关键特性和行为,忽略不必要的细节。抽象有两种形式: - *...

    java软件工程师面试大全

    Java软件工程师面试大全是针对求职者,特别是那些寻求Java开发岗位的专业人士精心准备的资源集合。这份资料旨在帮助应聘者全面了解并掌握Java语言的核心概念和技术,以便在面试中表现出色,成功获得理想的工作机会。...

    java软件工程师面试题

    Java软件工程师面试题是衡量求职者技术水平和项目经验的重要手段,涵盖了从基础语法到高级特性的广泛知识领域。以下是对这些面试题的一些关键知识点的详细解释: 1. **Java基础**: - **数据类型与变量**:Java...

    JAVA软件工程师面试题(含答案).doc

    ### JAVA软件工程师面试题知识点详解 #### 一、MVC设计模式的理解及其在Struts中的应用 **MVC设计模式**是一种广泛应用于软件工程的设计模式,尤其在Web应用开发中非常常见。它将应用程序分为三个核心组成部分:...

    java软件工程师面试宝典

    Java软件工程师面试宝典是为准备Java开发职位面试者精心准备的一份参考资料,它涵盖了Java编程语言、软件工程原理、数据库管理、操作系统、网络技术等多个关键领域的知识点。这份宝典旨在帮助面试者全面理解Java技术...

    最新深圳企业java软件工程师面试题

    Java软件工程师面试题是评估求职者技术水平和项目经验的重要手段,尤其在深圳这样的IT行业发展迅速的城市,竞争尤为激烈。以下是对最新深圳企业Java软件工程师面试题的一些解析和相关知识点的详细说明: 1. **基础...

    java高级软件工程师面试题

    ### Java高级软件工程师面试知识点概览 #### 一、核心框架与技术栈 ...以上知识点覆盖了Java高级软件工程师面试中常见的技术领域和问题类型,对于准备面试的候选人而言,深入理解和熟练掌握这些内容至关重要。

    2018最新最全java高级工程师面试题

    Java作为一门广泛使用的编程语言,其高级工程师面试题往往涵盖了多方面的知识点,旨在考察候选人的技术深度、广度以及实际问题解决能力。2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档...

    JAVA工程师面试常见问题及答案

    ### JAVA工程师面试常见问题及答案解析 #### 1. 事务隔离级别 事务隔离级别是数据库系统为了保证数据的一致性和防止并发操作引起的问题而设置的不同级别。主要有四种不同的隔离级别: - **READ UNCOMMITTED (未...

    Java开发软件工程师面试题(必备最全)

    Java开发软件工程师面试题是衡量求职者技能水平和专业素养的重要参考,涵盖了多个技术领域,包括Java编程语言、Oracle数据库、SQL查询语言、Linux操作系统以及Web服务器管理。这些知识点是Java开发者日常工作中不可...

    Java程序员面试宝典,Java高级工程师面试宝典,Java面试题大全

    这份宝典涵盖了Java高级工程师面试的各个方面,旨在帮助应聘者全面理解和掌握Java技术栈的核心概念、最佳实践以及实际问题解决能力。以下是对Java程序员面试和Java高级工程师面试的一些关键知识点的详细解析: 1. *...

    java开发工程师面试资料.zip

    Java开发工程师面试是一个深入考察求职者技术能力、项目经验和问题解决技巧的过程。这份"java开发工程师面试资料.zip"文件显然是一份集中的学习资源,旨在帮助准备面试的开发者提升自己的竞争力。下面,我们将深入...

    java软件工程师面试题集

    【Java软件工程师面试知识点】 ...这些知识点都是Java软件工程师面试中常见的问题,涵盖了EJB、MVC、Web服务和J2EE平台的基础概念和应用。理解并掌握这些内容对于成为一名合格的Java软件工程师至关重要。

    JAVA软件工程师-各个公司面试题

    【JAVA软件工程师面试知识点】 Java软件工程师面试题涵盖了广泛的领域,包括基础语法、面向对象编程、数据结构与算法、多线程、集合框架、JVM原理、设计模式、数据库操作、网络编程、Spring框架以及分布式系统等。...

    互联网Java工程师面试突击教程.zip

    【互联网Java工程师面试突击教程】 本教程针对互联网Java工程师的面试需求,旨在帮助求职者全面了解和掌握Java技术栈的核心知识,以便在激烈的面试竞争中脱颖而出。Java作为一门广泛应用于互联网行业的编程语言,其...

Global site tag (gtag.js) - Google Analytics