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的对象写出(即保存其状态),要会发的要恢复
则用输入流;
对象序列化:讲对象转换为一个字节序列,这个过程称为对象序列化;