【面试笔试】Java常见面试笔试总结

Java 基础

1、有哪些数据类型

Java定义了8种简单类型:byte、short、int、long、char、float、double和boolean。

2、面向对象的语言特征

封装、继承、多态

3、有几种訪问机制?

4、面向对象的多态性在JAVA中怎么实现的

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。假设在子类中定义某方法与其父类有相同的名称和參数。我们说该方法被重写 (Overriding)。子类的对象使用这种方法时,将调用子类中的定义,对它而言。父类中的定义如同被“屏蔽”了。假设在一个类中定义了多个同名的方法,它们或有不同的參数个数或有不同的參数类型。则称为方法的重载(Overloading)。Overloaded的方法是能够改变返回值

5、Java I/O中字符流和字节流的差别

字节流是传递0~255的整数而Java中有一些(如unicode代码)不能使用字符流,是特殊的字节流,

6、说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便添加和插入元素。它们都同意直接按序号索引元素,可是插入元素要涉及数组元素移动等内存操作。所以索引数据快而插入数据慢,Vector因为使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据须要进行前向或后向遍历,可是插入数据时仅仅须要记录本项的前后项就可以,所以插入速度较快。

7、HashTable和HashMap的差别

HashTable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因,HashTable是基于陈旧的Dictionary类,而HashMap是Java1.2引进的Map接口的一个实现

HashTable的方法是同步的,而HashMap的方法不是,这就意味着。尽管你能够採用不论什么的行为就可在一个多线程的应用程序中使用一个HashTable,但你必须相同地为HashMap提供外同步,一个方便的方法就是利用Collection类的静态的SynchronizedMap()方法,它创建了一个线程安全的Map对象,并把它作为一个封装的对象来返回,这个对象的方法能够让你同步訪问潜在的hashmap,这么做的结构就是当你不须要同步时,你不能切断HashTable中的同步(比方在一个单线程的应用程序中)并且同步添加了非常多处理法费用。

第三不同是。仅仅有HashMap能够让你装空值作为一个表的条目和Key和Value,Hashmap中仅仅有一条记录能够是一个空白的Key。但随意数量的条目能够是空白Value。

这就是说,假设一个表中没有发现搜索,或者假设发现了搜索键,可是它是一个空值。那么get()将返回Null,假设有必要。用ContainKey()方法来差别这两种情况。

8、Http协议是长连接还是短链接

Http协议是无状态连接,所以是段连接。

9、java的基本数据类型有哪些,String是不是基本类型

boolean,int,byte,char,short,long,float,double,void,

String不是基本类型。

10、String 和StringBuffer的差别

STRING的长度是不可变的。STRINGBUFFER的长度是可变的。假设你对字符串中的内容经常进行操作,特别是内容要改动时,那么使用StringBuffer,假设最后须要String。那么使用StringBuffer的toString()方法

11、执行时异常与一般异常有何异同?

异常表示程序执行过程中可能出现的非正常状态。执行时异常表示虚拟机的通常操作中可能遇到的异常。是一种常见执行错误。java编译器要求方法必须声明抛出可能发生的非执行时异常。可是并不要求必须声明抛出未被捕获的执行时异常。

12.说出一些经常使用的类,包,接口,请各举5个

经常使用的类:

BufferedReader BufferedWriter FileReader FileWirter String Integer

经常使用的包:java.lang java.awt java.io java.util java.sql

经常使用的接口:Remote List Map Document NodeList

13、怎样避免多个socket的读写阻塞,jdk1.4新增了哪些方法来解决问题?

在JDK1.4曾经的版本号中,要避免阻塞发生,有发下面两种方法:

採用多线程处理不同的socket操作,假设一个线程处理读,一个处理写.

使用第三方程序库,non-JDK方法.

在JDK1.4及以后的版本号中引入了NIO,引入了非阻塞socket,能够不用阻塞进行网络操作.

14、servlet的生命周期 

(1)载入 / 实例化:

Servlet容器查找并载入所有的servlet类.当Servlet引擎启动时或者说在客户http请求托付时实例一个Servle或多个Servlet类

(2)初始化

这里在客户请求托付代理之前,使用init()方法进行初始化.

(3)请求处理

当初始化完毕之后这时就能够处理客户http请求了.这里使用service()这种方法来完毕并把其作參数进行传递,这里的參数包括了httpServletRequest()和httpServletResponse()两个方法分别相应于请求和回应它们也会抛出servletException和IOException然后针对不同的http请求(四个上面说过,get,post,put,head)由doGet(),doPost(),doPut(),doHead(),这四个不同的方法块里的处理单元来处理…

(4)删除Sevlet

有时出于一些原因须要对Sevlet容器中的servlet实例进行删除,这时就能够调用destroy()方法进行, 执行了这种方法之后,这时Sevlet就不能再执行其他客户机的请求了…而这时它也就成了JAVA垃圾回收机的回收对象了!

15、JSP中有哪些重定向方法,它们的差别?

<jsp:forward page=&rdquo;url&rdquo;/>
<jsp:include file=&rdquo;url&rdquo;/>

前者将当前页面重定向到指定的URL的页面,而后者是在当前页面中包括指定的URL的页面。

16、Jsp有哪些内置对象?作用各自是什么地?

request:用户端请求,此请求会包括来自GET/POST请求的參数

getParameter() 、setAttribute()、 getAttribute()、reponse():网页传回用户端的回应

encode()、 sendRedirect() 、setContextf()、pageContext: 网页的属性是在这里管理

getServletContext()、 getSessin() 、setAttribute()、session :与请求有关的会话期

getAttribute() 、setAttribute() 、invalidate()、application() :servlet正在执行的内容

setAttribute()、 getAttribute():config servlet的构架部件

getServletContext() 、getServletName() 、getINitParameter():out 用来传送回应的输出(用来向client输出数据)

println()\ flush() 、close():page Jsp网页本身

exception针对错误网页,未捕捉的例外(异常)

17、Jsp有哪些动作?作用各自是什么?

jsp共同拥有下面6个动作:

Jsp:include::在网页被请求的时候引入一个文件

Jsp:useBean:寻找或者实例化一个javaBean

Jsp:setProperty :设置某个javaBean的属性

Jsp:getProperty:输出某个javaBean的属性

Jsp:forward:把请求转到一个新的页面。

Jsp:plugin:依据浏览器类型为java插件或生成object或embed标记

18、jsp中动态的include与静态的include的差别?

动态的include用jsp:include动作实现

它总是会检查所含文件的变化,适合用于包括动态页面,并且能够带參数

静态include用include伪码实现定不会检查。所含文件的变化,适用于包括静态页面

19、XML 有哪些解技术?差别是什么?

有DOM。SAX。STAT

DOM处理大型文件时其性能下降非常厉害。

这个问题是由DOM的树型结构所造成的,这样的结构占用的内存较多,并且DOM必须在解析文件之前把整个文档装入内存。适合XML的随机訪问

SAX不同DOM文档驱动型,SAX是事件驱动型XML解析方式。它顺序读取XML文件,不须要一次所有装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时。它会触发一个事件。

用户通过在其回调事件。用户通过在其回调事件写入处理代码来处理XML文件,适合对XML的顺序訪问

STAX:StreamingAPI for XMl(STAX)

20、你在项目中用到XML技术的哪些方面?怎样实现的?

用到了 数据存贮,信息配置两个方面

在做数据交换平台时。将数据源数据组装XML文件。然后XML文件压缩打包加密后通过网络传送给接收都,接收解密与名解压缩后再对XML文件里还原的相关信息进行处理。

在做软件配置时,利用XML能够非常方便。软件和各种配置參数都贮存在XML文件里

21、连接池的解决方式,它有哪些长处?

解决方式:在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池。由应用程序动态地对池中的连接进行申请。使用。和释放。

对于连接池的并发请求,应在请求队列中排队等待。并应用程序可依据池中连接的使用率,动态地添加或降低池中的连接数。

长处,尽可能多地重用沙消耗内存的资源,大大地节省了内存。提高了服务器的服务效率,能够支持很多其他的客户服务,通过使用连接池。将大大的提高程序执行效率。同一时候,我们能够通过其自身的管理机制监视数据库的数量。使用情况等。

22、JDBC的过程 

(1)载入JDBC驱动程序

Class.forName(“com.mysql.jdbc.Driver”);//MySQL载入JDBC驱动程序方法

Class.forName(“org.postgresql.Driver”);//PostgreSQL

Class.forName(“oracle.jdbc.driver.OracleDriver”);//Oracle

Class.forName(“com.ibm.db2.jdbc.net.DB2Driver”);//DB2

Class.forName(“com.sybase.jdbc2.jdbc.SybDriver”);//Sybase

Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);//SQLServer

(2)建立数据库连接

与MySQL数据库建立连接的方法:

Connectioncon=DriverManager.getConnection(“jdbc:mysql://MyDbComputerNameOrIP:3306/myDBName”,ID,Pwd);

与PostgreSQL数据库建立连接的方法:

Connectioncon=DriverManager.getConnection(“jdbc:postgresql://MyDbComputerNameOrIP:3306/myDBName”,ID,Pwd);

与Oracle数据库建立连接的方法:

Connectioncon=DriverManager.getConnection(“jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL”,ID,Pwd);

与Sybase数据库建立连接的方法:

Connectioncon=DriverManager.getConnection(“jdbc:sybase:Tds:MyDbComputerNameOrIP:2638”,ID,Pwd);

与SQL Server数据库建立连接的方法:

Connectioncon=DriverManager.getConnection(“jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master”,ID,Pwd);

与DB1数据库建立连接的方法:

Connectioncon=DriverManager.getConnection(“jdbc:db2://MyDbComputerNameOrIP/myDBName”,ID,Pwd);

(3)创建并执行SQL语句

用Connection.createStatement()方法来创建一个Statement对象。Statement对象执行一个查询并从DBMS返回一个包括响应结果的ResultSet对象。

(4)处理从DBMS返回的数据

查询处理后从DBMS收到的查询结果赋给java.sql.ResultSet对象。该对象包括一些用来从结果集中获取数据存到Java变量中的方法,以便进行进一步处理。

(5)关闭数据库连接

使用与数据库有关的对象所消耗的内存是非常大的,因此在完毕数据库訪问后要及时关闭数据库连接,同一时候还应关闭Connection中返回的内容。包括Statement对象和ResultSet对象。

时间: 2024-09-29 03:04:30

【面试笔试】Java常见面试笔试总结的相关文章

Android开发面试经——6.常见面试官提问Android题②(更新中...)

版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44560061 1.HttpURLConnection和HttpClient他们各自的优缺点是什么? HttpUrlConnection 在 2.3 以前的版本是有 bug 的,所以之前的版本推荐使用 HttpClient,但是 google 现在

java常见面试题目(二)

部分没有答案可以自行百度. 1.myeclipse与eclipse的区别. 2.说说对maven或者SVN的理解. 3.类的加载过程 (创建对象的过程)  1)子父类里静态属性 赋上默认初始值 如果有显示赋值 赋值  2)父类的静态代码块 子类的静态代码块  3)父类的非静态属性 赋上默认初始值 如果有显示赋值 赋值  4)父类的匿名代码快  5)父类的构造器  6)子类的非静态属性 赋上默认初始值 如果有显示赋值 赋值  7)子类的匿名代码块  8)子类的构造器 4.TCP与UDP的区别. 5

Android开发面试经——5.常见面试官提问Android题(更新中...)

关注finddreams博客: http://blog.csdn.net/finddreams/article/details/44513579 一般的面试流程是笔试完就接着是面试了,面试时技术经理会问你一些你工作中遇到的Android方面的问题,谈谈你所做的项目,和在项目中所扮演的角色.今天我就给大家整理一些,面试中常见的面试官提的一些问题? 1.要做一个尽可能流畅的ListView,你平时在工作中如何进行优化的? ①Item布局,层级越少越好,使用hierarchyview工具查看优化. ②

java 面试,java 后端面试,数据库方面对初级和高级程序员的要求

本内容摘自 java web轻量级开发面试教程 对于合格的程序员,需要有基本的数据库操作技能,具体体现在以下三个方面. l  第一,针对一类数据库(比如MySQL.Oracle.SQL Server等),会基本的增删改查操作,会用一些基本的函数,会编写存储过程触发器索引等工具. l  第二,知道一些基本的对项目开发有帮助的概念,比如范式.索引.分区等. l  第三,能编写一些相对复杂的SQL语句,比如带连接.带子查询.嵌套查询等. 对于高级程序员,用过的数据库种类当然是越多越好,此外,还要掌握如

Android开发面试经——4.常见Android进阶笔试题(更新中...)

Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams/a

(转)C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析

C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析 http://www.nowcoder.com/discuss/1826?type=2&order=0&pos=23&page=1 1.引言  本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵.文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见. 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答.企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到

java异常面试常见题目

在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题.Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它成为面试题中的常客.关于Java中Error和Exception的面试题目多是关于Exception和Error的概念,如何处理Exception,以及 处理Exception时需要遵守的最佳实践等等.尽管关于多线程.垃圾回收.JVM概念和面向对象设计等方面的问题依然主宰着这类面试,你仍然需要为回答

Java求职面试准备之常见算法

最近在求职面试,整理一下常见面试算法: 对TestAlgorithms.java中方法的测试见JunitTestAlgorithms.java(引入了junit4) 1.TestAlgorithms.java 1 package carl; 2 3 import org.junit.Test; 4 5 /** 6 * 本类中总结了常用的几种算法 7 * @author Administrator 8 * 9 */ 10 public class TestAlgorithms { 11 12 /*

java异常常见面试问题

java异常常见面试问题 一.java异常的理解 异常主要是处理编译期不能捕获的错误.出现问题时能继续顺利执行下去,而不导致程序终止,确保程序的健壮性. 处理过程:产生异常状态时,如果当前的context不具备处理当前异常的能力,将在heap上new出来一个异常对象,停止当前的执行路线,把产生的异常对象抛给更高层的context. Throwable:异常类    Error:系统异常:不能恢复:Exception :普通异常:可恢复 利用try/catch/finally处理异常 什么时候使用