JAVA面试中经常这样问

1.IOC:(控制反转):对象依赖关系由容器管理。
DI :(依赖注入):容器通过对调用对象的SET方法或构造器来完成依赖关系的建立。
2.创建线程的两种方式:
1.继承Thread类
2.实现Runnable接口
3.什么是Ajax?

异步请求:不是一门语言,是击中技术组合成的新技术。
包括:HTML和CSS,使用XMLHttpRequest进行异步数据接收,使用JavaScript将他们绑定在一起。
选用标准:避免整个页面频繁刷新,实现局部吹刷新。

4.什么是Jquery?
是js的框架,封装了很多常用的功能,Ajax,Dom动态变换等。

5.Tomcat是Servlet的运行环境(容器)。

6.Hibernate 用来做持久层,封装了JDBC.

7.Spring是一个开源的IOC和AOP框架。核心是IOC(控制反转,依赖注入)实现松耦合。
IOC的核心是容器。
容器的核心是Java的反射机制。
Spring AOP技术是把核心代码和辅助代码分开,面向切面编程,更关注业务逻辑开发。

8.静态变量和实例变量的区别?

静态变量 用类名就能调用
实例变量 需要通过类的实例对象调用

9.MVC是什么意思,分别代表什么?
是一种设计规范,代码分层思想。
Model:模型层。封装业务逻。如:DAO
View:视图层。对数据进行展示。如:JSP
Controller:控制层。M和V的桥梁,负责控制业务流程,如:Servlet

10.filter(过滤器)每个请求对应一个类,filter根据xml配置找到对应的类。

11.Servlet与JSP区别:
完成的功能相同,都是用几首请求,响应调用业务方法。
不同:JSP是通过HTML或XML嵌入JAVA代码或JSP标记,制作网页页面有优势。
Servlet是纯JAVA代码,通常用于控制,不用于输出,在MVC模式中,JSP通常充当视图,
servlet通常用作控制器,JSP在运行时还要转换成类似Servlet的JAVA代码。

12.init :初始化
service:包括doGet和dopost,接受请求对用户响应
destroy:关闭,释放资源

13。Servlet生命周期
接受到请求,容器查看servlet对象是否存在,如果不存在,加载Servlet,实例Servlet,调用
init方法初始化。如果存在,根据用户请求创建resquest和response对象,把两个对象作为参数调用
service方法,Servlet通过这个方法与用户进行交互,方法执行之后,对请求处理结束,应用卸载之后
调用destroy方法关闭。

14.doget方法和dopost方法中的两个参数是什么?
HttpServletResquset 和 HttpServletResponse
封装了请求相关的信息 封装了响应相关的信息

15。Servlet中如何获取session和cookie??
通过request对象的getSession和getCookie
16.Servlet过滤器:能够对特定的请求路径进行过滤。

17.servlet监听器:
对特定的时间进行监听,当产生这些事件的时候执行监听代码,可以对应用的加载卸载,
对session的初始化,销毁进行监听。

18.Spring核心功能?
核心组件:Core Context和Beans
最核心组件:Beans
核心功能:Bean Factory
19.使用Spring框架的最核心原因?
核心问题是把对象之间的关系转为用配置文件来管理,也就是Spring的依赖注入机制,是IOC容器管理的

20.Spring框架七大模块?
1.Spirng core
2.Spring context
Spring DAO AOP MVC DRM WEB

21.Spring容器如何管理Bean的生命周期?
创建 初始化 调用 销毁

22.什么是事务?
从数据的角度:事务就是一组SQL指令,事务实际上就是控制,数据库的操作习惯称为JAVA事务。

23.怎样优化数据库:
结构优化 查询优化

24.使用final修饰一个变量,是引用不能变,还是引用对象不能变?
引用变量不能变,引用变量所指的对象可变。

25.是否可以从一个static方法内部发出对非static方法的调用?
不可以,非static方法是与对象相关联,必须创建对象后,可以在该对象上进行方法调用,而static方法
创建时不需要创建对象,可以直接调用。
26.Overload和Override的区别?
重载:方法名相同,参数不同,方法体不同,同类中。
重写:方法名和参数都相同,方法体不同,父子类中。

27.构造器Constructoe是否可被override?
不能被继承,因此不能被重写,但可以被重载。

28。接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类可以有静态main方法。

29.抽象类与普通类的区别
就是不能创建实例对象,但允许有abstract方法。

30.java中实现多态的机制是什么?
多态就是重写和重载。

31。什么是内部类
就是在一个类的内部定义的类,内部类中不能定义静态成员。

32.abstract class和 interface 区别

   抽象类:                  接口
可以有构造方法             没有构造方法
可以有普通成员变量 	   不能有成员变量
可以有普通方法		   必须是抽象方法
可以有静态方法		   不可以有静态方法
可以有静态变量		   可以有静态变量
    一个类可以实现多个接口,但只能继承一个抽象类。

应用上的区别:接口主要用于定义模块之间的通信契约,抽象类用于实现方法的重用。

33.使用匿名内部类记住几项原则:
1.不能有构造方法
2。不能定义任何静态成员变量、方法
3.只能创建匿名内部类的一个实例
4.不能用public protected private statie修饰
5.一个匿名内部类一定是在new的后面,用其隐含实现一个借口或实现一个类

34.匿名内部类可以继承其他类或实现其他接口么
可以继承其他类或实现其他接口,而且是必须。

35**.String类是final类,不能被继承**。

36。String 和 StringBuffer区别
String提供数值不可改变的字符串
StringBuffer类提供的字符串可以进行修改

37.数组没有length()方法,但是有length()属性
String有length()方法。

38.final,finally,finalize区别
final:用于生命属性,被修饰的类或方法不能被继承和覆盖
finally:是异常处理语句结构的一部分,表示总是执行
finalize:是object的一个方法,在垃圾收集器执行的时候调用此方法

39.error和exception的区别
error表示恢复不是不可能,但很困难的情况下的一种严重问题,例如,内存溢出,不可能指望程序处理情况
exception:是设计或实现问题,表示运行正常,从不发生的情况。

40**.用什么关键字修饰同步方法**?
用synchronize修饰同步方法

41.stop()和suspend()方法为什么不推荐使用
stop()不安全,它会接触由线程获取的所有锁定
suspend()容易发生死锁

42.同步有几种方法实现
两种。分别是synchronize.wait与notify
wait():使线程处于等待状态
sleep():睡眠状态
notify():唤醒一个处于等待状态的线程,并不能确切的唤醒一个线程,而是由JVM确定唤醒哪个
并不是按优先级
Allnotify():唤醒所有处于等待的线程,不是给所有线程一个锁,而是让他们竞争。

43.启动一个线程用用start()方法,run()方法是线程所关联的执行代码

44.线程的基本概念是什么

一个程序中有多条执行线索同时执行,一个线程就是一个线索。

45.ArrayList和Vector区别
Vector是线程安全的,它的方法之间是线程同步的,效率增加一倍。
ArrayList是线程不安全的,它的方法之间是线程不同步,效率增加0.5倍。

46.HashMap和Hashtable区别??
主要区别:HashMap允许空健值,由于是非线程安全。
在只有一个线程访问时,效率高于Hashtable.
47.List和Map的区别
List:存储单例数据集合,数据有序可重复。
Map:存储键值对数据集合,数据没有顺序,key不能重复,value可重复。

48.collection和collections的区别
1.是集合类的上级接口,继承与他的接口只要有set和list.
2.针对集合类的一个帮助类,提供一系列静态方法,实现对集合操作。

49.JAVA中有几种类型的流
字节流:继承于InputStream和OutputStream
字符流:继承于InputStreamReader和OutputStreamWriter

50.什么是java序列化
将一个java对象编程字节流的形式传出去或者从一个字节流中回复称一个java对象的过程

51.GC是什么,GC的工作原理
垃圾收集器:优点:可以有效的防止内存泄露,有效的使用可使用的内存。
原理:优先级比较低的线程。

52.Tomcat的优化经验
去掉web.xml的监视,把JSP提前编译成servlet.

53.get和post的区别
get是向服务器索取数据的一种请求。
post是向服务器提交数据的一种请求。
get会把参数提交到浏览器的地址栏。

54.servlet API中forward()与redirect()区别
forward():近视容器中控制权的转向,在客户端浏览器地址中vubhui显示出转向后的地址
redirect():完全是跳转,浏览器将会得到跳转的地址,并重新发送请求连接。

55。什么情况下调用doget()和dopost()?
JSP页面中的form标签里的method属性为get时调用doget(),为post时调用dopost方法。

56.重定向和转发的区别
重定向是两次请求,两个页面。
转发是一次请求,一个页面。

57.req.getAttribute()和req.getParameter区别
1是之前自己设定的
、 2是活的通过get或者post获得来的数据。

58.JSP有哪些内置(隐藏)对象
输出输入对象 作用域通信对象 servlet对象 异常对象
request sission page exception
response applition config
out pagecontext

59.页面间对象传递的方法有哪些
request session application cookie 等。

60。JDBC中的PreparedStatement相比Statement的好处是什么
一个SQL命令发给服务器区执行的步骤为:语法检查,语义分析,编译成内部指令,缓存指令,执行指令等过程
性能高,防止SQL注入。
61.什么是触发器
主要是通过实践进行触发而执行的,而存储过程可以通过存储过程名字而被直接调用。

62.XML有哪些解析技术,它们的区别是什么
DOM、SAX、STAX等。
区别:DOM处理大型文件时其性能下降的非常厉害
这是由DOM的树状结构锁造成的。

63.Spring实现了工厂模式的工厂类,这个类名为BeanFactory,在程序中BeanFactory的子类为ApplicationContext.
在配置文件中通过《bean》元素配置用于创建实例对象的类名和实例对象的属性。

64.依赖注入就是通过配置文件解决代码问题,实现解耦。

65。JDBC的使用步骤是什么

1.加载驱动:加载JDBC的实现类
2.连接数据:创建Connection对象,目的就是连接(TCP)
3.向服务器发送SQL,创建Statement对象
4.执行SQL:发送SQL到数据库
5.处理SQL执行结果
6.关闭连接:close()关闭TCP

66.JSON简介:全称JavaScript Object Notation;
js将字符串转换成JSON对象

67.url:地址 dataType:服务器返回数据类型
type:请求类型 success:成功回调函数
date:提交数据 error:错误回调函数
async:同步/异步

68.Ajax可以在页面不刷新的情况下,发出HTTP请求,服务器返回数据,之后解析数据,刷新页面的局部区域。

69。Spring容器如何管理对象:容器调用不带参的构造器。

70.Spring容器创建对象的几种方式
1.无参构造器
2.静态工厂
3.实例工厂

71;什么是序列化?如何实现JAVA序列化
序列化:
处理对象流的机制,所谓对象流也就是将对象的内容进行流化,
可以对流化后的对象进行读写操作,也可以将流化后的对象传输
于网络之间。序列化是为了解决在对对象流进行读写操作时所引
发的问题。
实现序列化:
讲需要被序列化的类实现Serializable接口,该接口没有需要实
现的方法,(implements Serializable)是为了标注该对象是
可被序列化的,然后使用一个输出流(如:FileoutputStream)
来构造一个ObjectOutputstream(对象流)对象,接着使用
Objectoutputstream对象的writeObject(Object obj)方法,
就可以将参数为obj的对象写出(即保存其状态),要会发的要恢复
则用输入流;
对象序列化:讲对象转换为一个字节序列,这个过程称为对象序列化;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我想去拉萨。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值