1. 以下代码的输出结果是(A)
int i =3;
i = i++;
System.out.println(i);
A .3 B.4 C.5
a=b++是先将b值赋值给a后b再自增。
2. Math.round(11.5)等于多少? Math.round(-11.5)等于多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;向上取整
3. Collection 和 Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
4. java中实现多态的机制是什么?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
5. java中向上转型、向下转型是什么?
向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。
向下转型:父类引用的对象转换为子类类型成为向下转型
6. 多线程创建有几种方式?
三种,分别是:继承Thread类;实现Runnable接口;实现Callable接口。
7. GC是什么?为什么要有GC?
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
8. thorw与thows的区别?
throw抛出的是异常对象;throws抛出的是类,如果有多个类则使用逗号间隔
throw用于代码块或方法体;throws只能用于方法参数列表后边,不能用于代码块
如果throw抛出的异常是运行时异常,则可以不使用throws;否则必须显示处理:try-catch或者throws
9. ArrayList与 LinkedList 的区别?
最明显的区别是ArrrayList 底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构书链表,不支持随机访问。使用下标访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。LinkedList是双向链表、
10. Class.forName()和ClassLoader的区别?
Class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法。
ClassLoader只将.class文件加载到jvm中,不会执行static中的内容。
11. Log4j常用的四个日志级别是哪四个?优先级顺序是怎样的?
优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。
12. 拦截器和过滤器有什么区别?程序中是先执行拦截器还是过滤器?
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
程序中先执行过滤器。
13. 请描述Mybatis结果集中 ResultMap 和ResultType的区别。
resultType和resultMap功能类似 ,都是返回对象信息 ,但是resultMap要更强大一些 ,可自定义。因为resultMap要配置一下,表和类的一一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来,但是,resultType就比较鸡肋了,必须字段名一样,比如说 cId和c_id 这种的都不能映射 。
14. Java中 @PostConstruct和@PreDestroy注解有什么作用?
l 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的init()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
l 被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前
15. 编写Webservice接口服务端(框架)有几种方式?
Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF等
16. 常用的缓存框架有哪几个?
Ehcache、Memcache、Redis
17. 如何在谷歌浏览器中跟踪调试页面
浏览器中打开开发者工具(F12)跟踪调试。
Elemetts:跟踪页面DOM元素
Console:跟踪控制台输出
Network:跟踪网络请求
18. 简述TCP三次握手的理解
第一次
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
19. Linux下你常用的命令有哪些?
cd命令用来改变所在目录。cd / 转到根目录中cd ~ 转到用户目录下
ls命令用来查看目录的内容。
cp命令用来拷贝文件cp <source filename> <target filename>
mv命令 mv t.txt Document 把文件t.txt 移动到目录Document中。
20. Nginx有什么作用?
反向代理
负载均衡
动静分离