java求职经典问题.docx
《java求职经典问题.docx》由会员分享,可在线阅读,更多相关《java求职经典问题.docx(8页珍藏版)》请在冰豆网上搜索。
![java求职经典问题.docx](https://file1.bdocx.com/fileroot1/2022-11/25/117c3088-4b12-4f50-bdfe-92f39e63ac0a/117c3088-4b12-4f50-bdfe-92f39e63ac0a1.gif)
java求职经典问题
flex是什么
答:
flex(fastlexicalanalysergenerator)是Lex的另一个替代品。
它经常和自由软件Bison语法分析器生成器一起使用。
2xml是什么解析时用到的包有哪些
答:
利用以下工具都可以实现对xml文件的解析,dom4j,jdom,SAX,DOM
3spring工作流程核心原理
答:
Spring的核心就在于他的IOC(控制反转)和AOP(面向切面编程),IOC就是用来管理所有的业务对象,AOP也就是可以在调用的方法前后可以附加另外的行为
4介绍struts2
答:
Struts2是Struts的下一代产品。
是在struts和WebWork的技术基础上进行了合并,全新的Struts2框架。
5连接池工作原理
答:
连接池的基本原理是,先初始化一定的数据库连接对象,并且把这些连接保存在连接池中。
当程序需要访问数据库的时候,从连接池中取出一个连接,数据库操作结束后,再把这个用完的连接重新放回连接池
6Collection和Collections的区别
答:
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
7介绍一下面向对象
答:
面向对象是一种编程思想
8接口与抽象类
答:
抽象类里面可以有非抽象方法,但接口里只能有抽象方法
9EJB与JAVABEAN的区别
答:
两种不同级别的东西,JAVABEAN是简单的数据封装,ejb分实体bean,回话bean,消息驱动bean。
10NestedClass与innerclass区别
答:
使用Static定义的Class就是外部类,可以通过外部类.内部类直接访问
而InnerClass是不能被外部访问的,只能通过外部类的实例再找到内部类实例。
11静态变量和实例变量的区别
答:
静态的可以直接用类名点变量就可以直接调用,非静态的在别的类中只能先实例化,再用对象点变量就可以调用;
12String、StringBuffer、StringBuilder的区别
答:
String是字符串类最常用于简单的字符串操作
StringBuffer是字符串缓冲。
适用于复杂的字符串增删改操作。
StringBuilder是与StringBuffer兼容的API简化。
该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
13一个类被final修饰,表示什么?
一个变量被final修饰,表示什么?
答:
可以修饰成员变量。
类变量。
局部变量。
类。
方法。
其中final修饰的变量成为有名常量。
局部变量只有final才可以修饰。
它以为这不能扩充子类。
或改变变量的值。
它修饰的类又叫做最终类
14jsp中forward和redicte的区别?
答:
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
15线程/同步实现的方法有几种?
怎样实现?
答:
实现线程有两种继承Thread类或者实现Runnable接口...实现同步也有两种,一种是用同步方法,一种是用同步块..同步方法就是在方法返回类型后面加上synchronized
16描述你对设计模式的理解,列举你熟悉的几种设计,并简单描述
答:
一、Singleton,单例模式:
保证一个类只有一个实例,并提供一个访问它的全局访问点
二、AbstractFactory,抽象工厂:
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
三、FactoryMethod,工厂方法:
定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到了子类。
四、Builder,建造模式:
将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。
五、Prototype,原型模式:
用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建
17你最近阅读了什么技术书籍?
请描述其主要思想?
你对其思想有什么见解?
答:
《汉译世界学术名著丛书》是商务印书馆出版发行的翻译世界各国学术名著,范围涵盖哲学、历史、政治、经济、军事、自然科学、人文科学等领域。
该丛书收录并重印了一部分该出版社于民国时期出版的曾经影响过中国的译作。
由于该丛书所收录著作皆堪称经典,因此在各界,特别是学界颇受好评。
丛书自1981年起结辑出版,迄今已有十二辑近500种,实为我国文化出版的心血之作。
这套丛书将国外丰富精深的学术思想引入中国,开阔了几代读者的视野,滋养了几代学人的情操,被陈原赞许为“迄今为止,人类已经达到过的精神世界。
”
18请描述以下几个开源项目的用途spring,hibernate
答:
struts:
简单点说就是让你写的程序层次分明了
hibernate:
提供了完全面向对象的数据库操作
spring:
在这里我们可以认为它是为了程序以后可以更好的扩展灵活,或者说它是为了更好的管理对象的理合适一些
19顺序输入1-1003的倍数用T代替,5的倍数用F代替,既是3又是5的倍数输出TF
For(inti=1;i<=100;i++){
If(i%3==0&&i%5==0){
I=TF;
}elseif(i%3==0){
I=T;
}elseif(i%5==0){
I=F;
}
}
20求两个正整数的最大公约数
PublicintY(inti,intj){
Inttemp;
If(iFor(intz=i;z>=1;z--){
If(i%z==0&&i%j==0){
Returnz;
}
}
}elseif(i>j){
For(intz=j;z>=1;z--){
If(i%z==0&&i%j==0){
Returnz;
}
}
}else{
Returnj;
}
}
21为什么项目较大,资源较丰富时使用EJB,而不使用Hibernate?
答:
Hibernate只能适用于中小型项目用在大项目上容易产生问题,而EJB则稳定性高
java中的动态include和静态include的写法和区别
答:
<%@includefile="index.jsp"%>(静态)主要是对静态页面的引入不会检查所包含文件的变化
includepage="index.jsp"flush="true"/>(动态)主要是对动态的页面的引入,它总会检查所引入页面的变化
2、java的静态变量(不为null)可能会被垃圾回收吗?
为什么?
答:
静态变量程序刚开始运行创建直到程序结束才回收的
3、请阐述服务器与客户端之间维护一个会话的过程
答:
没找到!
4、请提供一个思路,限制某个请求的会话个数
答:
没找到!
5、如何维护代码的健壮性
答:
降低系统的耦合度,尽量采用面向接口编程,遵守SRP(单一职能原则)、OCP开闭原则、依赖倒置等原则
6、一个表里的某个字段有重复的值如何显示这些重复的值
答:
--如:
查找stuid,stuname重复的记录
selectstuid,stunamefromstuinfo
groupbystuid,stuname
having(count(*))>1
7、hibernate对象有几种状态,针对这几种状态应做何操作
(1)瞬态:
表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联即,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。
瞬态实体的特征有:
与数据库中的记录没有任何关联,也就是没有与其相关联的数据库记录 与Session没有任何关系,也就是没有通过Session对象的实例对其进行任何持久化的操作。
(2)持久态:
指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象是与Session对象的实例相关的。
处于持久态的实体对象的最大特征是对其所作的任何变更操作都将被Hibernate持久化到数据库中。
处于持久态的对象具有的特征为:
每个持久态对象都于一个Session对象关联
处于持久态的对象是于数据库中的记录相关联的
Hibernate会根据持久态对象的属性的变化而改变数据库中的相应记录
(3)游离态:
处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态。
游离态对象的特征有:
游离态对象一定是由持久态对象转换而来
游离态实体不再于Session关联
游离态实体对象与数据库中的数据没有直接联系,主要表现在对其进行的修改不再影响到数据库中的数据
游离态实体对象在数据库中有相应的数据记录(如果该记录没有被删除)
abstractclass和接口的区别
抽象类:
可以没有抽象方法;抽象类的属性可以是私有的。
2.编码转换,怎样实现将ISO-8859-1编码的字符串转换为GBK编码的字符串
Strings=newString(istr.getBytes(),"GBK")
3.Strings=newString("xyz");创建了几个StringObject?
两个
4.StringandStringBuffer的区别?
String:
Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。
字符串缓冲区支持可变的字符串。
因为String对象是不可变的,所以可以共享。
StringBuffer线程安全的可变字符序列。
一个类似于String的字符串缓冲区,但不能修改。
虽然在任意时间点上都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。
可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
5.说出ArrayList,Vector,LinkedList的存储性能和特性
6.List,Set,Map的存储特性,有什么区别
7.int和Integer有什么区别?
int是一般类型int必须声明
Integer是引用类型,是一个类
8.final,finally,finalize的区别?
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。
因此一个类不能既被声明为abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的
引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载。
finally—再异常处理时提供finally块来执行任何清除操作。
如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。
finalize—方法名。
Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在Object类中定义的,因此所有的类都继承了它。
子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
9.Servlet的生命周期是什么?
加载和实例化>初始化>请求处理>服务终止
10.request和redirect的区别?
request:
请求地址,等待响应,地址栏不会改变
reponse:
重新定向到另外的地址,地址栏发生改变
11.JSP的内置对象及方法
12.什么情况下调用doGet()和doPost()?
get请求响应doGet方法
post请求响应doPost方法
13.面向对象的特性(抽象、继承、封装、多态)
14.常见的WEB服务器有哪些
15.j2ee常用的设计模式?
说明工厂模式
16.BS与CS的联系与区别
17.写一个SQL表联接查询
(重复)
18.写出存取COOKIE的代码
--下面是面试时候问我的
1.HashMap和Hashtable的区别、、
①hashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
②hashTable同步的,而HashMap是非同步的,效率上逼hashTable要高。
③hashMap允许空键值,而hashTable不允许。
2.Java中的异常处理机制的简单原理和应用
3.运行时异常和一般异常(解释并举例)
一般异常:
也成checked异常,不处理会在编译时报错
运行时异常:
在运行时报错
4.说明SSH
5.解释多线程及应用
6.同步和异步的区别(用在哪里)
7.解释MVC
8.了解一下存储过程
9.ORACLE中的函数
to_dateto_charnvl
10.JSP的内置对象
applicationexceptionoutconfigpageContextpagerequestresponsesession