`

Java程序员面试题之八

阅读更多

 

41、是否可以继承String?

 

String类是final类故不可以继承。

 

 

42swtich是否能作用在byte上,是否能作用在long上,是否能作用在String?

 

switchexpr1)中,expr1是一个整数表达式。

 

因此传递给 switch case 语句的参数应该是 int short char 或者 byte

 

long,string 都不能作用于swtich

 

 

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

 

会执行,return前执行

 

 

44、编程题: 用最有效率的方法算出2乘以8等於几?

 

2 << 3

 

 

45、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

 

不对,有相同的hash code

 

 

46、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

 

是值传递。

 

Java 编程语言只有值传递参数

 

当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。

对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

 

 

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

 

不能,一个对象的一个synchronized方法只能由一个线程访问。

 

 

48、编程题: 写一个Singleton出来。

 

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

 

一般Singleton模式通常有几种种形式:

 

第一种形式:

 

定义一个类,它的构造函数为private的,它有一个staticprivate的该类变量,在类初始化时实例话,通过一个publicgetInstance方法获取对它的引用,继而调用其中的方法。

 

 

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的。

一般认为第一种形式要更加安全些

 

 

49Java的接口和C++的虚类的相同和不同处。

 

由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。

与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public。一个类可以实现多个接口

 

 

50Java中的异常处理机制的简单原理和应用。

 

JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。

违反语义规则包括2种情况。

 

一种是JAVA类库内置的语义检查例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException

 

另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。

 

 

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运行时系统组件。它负责在运行时查找和装入类文件的类。

 

 

55char型变量中能不能存贮一个中文汉字?为什么?

 

够定义成为一个中文的。

 

因为java中以unicode编码一个char16个字节,所以放一个中文是没问题的

 

 

56、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?

 

多线程两种实现方法,

 

分别是继承Thread与实现Runnable接口

 

同步的实现方面有两种

 

分别是synchronized,waitnotify

 

 

57JSP的内置对象及方法。

 

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可以存贮用户的状态信息 

 

applicaton 表示一个javax.servle.ServletContext对象。

这有助于查找有关servlet引擎和servlet环境的信息 

 

config表示一个javax.servlet.ServletConfig对象。

该对象用于存取servlet实例的初始化参数。 

 

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

 

 

58、线程的基本概念、线程的基本状态以及状态之间的关系

 

线程指在程序执行过程中,能够执行程序代码的一个执行单位

每个程序至少都有一个线程,也就是程序本身。

 

Java中的线程有四种状态分别是:运行就绪挂起结束

 

 

59JSP的常用指令

 

<%@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()

 

 

分享到:
评论

相关推荐

    java中级程序员面试题 java程序员面试题 java工程师面试题

    java中级程序员面试题 java程序员面试题 java工程师面试题

    java程序员面试题

    java程序员面试题java程序员面试题java程序员面试题java程序员面试题java程序员面试题

    Java程序员面试题集(1-50)

    以上仅是 Java 程序员面试中可能涉及的一部分知识点,实际面试中还会有更多关于设计模式、JVM 内存模型、数据库操作、网络编程等方面的问题。掌握这些基础和进阶知识对于成为一名优秀的 Java 开发者至关重要。

    java程序员早期面试题汇总.zip

    ------------------------------------- java程序员早期面试题汇总 BAT经典面试题汇总.pdf Java常考面试题.pdf java面试题(题库全)....程序员面试题精选100题.pdf ... -------------------------------------

    JAVA程序员面试题5

    ### JAVA程序员面试题5知识点详解 #### 一、JSP和Servlet的相同点与不同点及其联系 **相同点:** - **都是基于Java的技术**:JSP和Servlet都使用Java语言编写,运行在Java虚拟机(JVM)上。 - **处理HTTP请求**:...

    Java程序员面试题

    Java 程序员面试题 Java 程序员面试题包括多个方面,以下是详细的知识点解释: 1. 面向对象的特征有哪些方面? 面向对象的特征有四个方面:抽象、继承、封装、多态性。 * 抽象:抽象是忽略一个主题中与当前目标...

    Java程序员面试宝典

    《Java程序员面试宝典》附带1张DVD光盘,内容为《Java程序员面试宝典》所有面试题的多媒体教学视频(共14.5小时)及免费赠送的55小时Java教学视频和5.5小时算法教学视频。授人以鱼,不如授人以渔。《Java程序员面试...

    Java程序员面试题集

    Java程序员面试时,通常会遇到一系列关于语言特性和框架的问题,这些题目旨在考察候选人的基础知识、问题解决能力和实践经验。以下是对这些面试题目的详细解答: 1. **final, finally, finalize的区别**: - `...

    java程序员面试题150例-java常见面试题-java工程师面试题-java面试题大全

    java程序员面试题150例 java常见面试题 java工程师面试题 java面试题大全 带搜索功能,能非常方便的查找到你想要了解的 java面试题目 推荐大家下载。

    2021最新Java程序员面试题

    在当前的IT行业中,Java程序员面试已经逐步升级为考察应聘者对多个技术栈的综合理解和应用能力。以下内容根据提供的文件信息整理出的Java程序员面试知识点: 1. MyBatis框架 - MyBatis定义:MyBatis是一个支持定制...

    Java程序员面试笔试真题与解析.tar

    Java程序员面试笔试真题与解析,包含各大IT企业面试笔试的题目

    java程序员面试题——863面试集

    ### Java程序员面试题详解 #### 一、Java基础知识 1. **作用域public, private, protected, 以及不写时的区别** - **public**: 可以被任何类访问。 - **protected**: 可以被同一包内及不同包内的子类访问。 - ...

    2018年java-程序员面试宝典+题库

    2018java程序员面试宝典+题库,很全。压缩的文档,打开是PDF版

    java程序员面试题集合

    ### Java程序员面试题集合知识点详解 #### 一、面向对象的四大特征 1. **抽象** 抽象是面向对象编程中的一个重要概念,它指的是在设计阶段仅考虑问题的关键部分,忽略不相关的细节。抽象可以分为两类: - **...

    2018最新最全JAVA程序员面试题

    ### 2018最新最全JAVA程序员面试题解析 #### 一、面向对象的特征有哪些方面? 面向对象编程(OOP)是Java的核心思想之一,它主要包括以下四个关键特性: 1. **抽象**:抽象是面向对象编程的一个核心概念,指的是在...

Global site tag (gtag.js) - Google Analytics