1.元数据区域不属于新生代
2.EJB容器发生错误,non-persistent方式下JMS容器仍然会将消息发送
3.weblogic中开发消息Bean时的persistent与non-persisten的差别:
persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题
而JMS服务器依然会将消息在此MDB可用的时候发送过来。
non-persistent方式的消息将被丢弃。
4.实现或基础Collection接口的是List,Vector,Set.
5.Java1.8版本之前的前提,Java特性中,abstract class和interface有什么区别:
抽象类可以有构造方法,接口中不能有构造方法
抽象类中可以有普通成员变量,接口中没有普通成员变量
一个类可以实现多个接口,但只能继承一个抽象类。
6.abstract和final不可以同时作为一个类的修饰符,只能有final和abstract的一个,因为final是最终类,不能继承,必须可以创建实例,而abstract是抽象类,只能继承,不有实例。
7.off-heap是指JVM进程管理的内存。
8.Java的跨平台特性是因为JVM的存在, 它可以执行.class字节码文件,而不是.java源代码
9.MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 MVC只是将分管不同功能的逻辑代码进行了隔离,增强了可维护和可扩展性,增强代码复用性,因此可以减少代码重复。但是不保证减少代码量,多层次的调用模式还有可能增加代码量。
10.用volatile修饰的变量,每次更新对其他线程都是立即可见的。
11.对volatile变量的操作不会造成阻塞。
12.一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:
1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
2)禁止进行指令重排序。 volatile只提供了保证访问该变量时,每次都是从内存中读取最新值,并不会使用寄存器缓存该值——每次都会从内存中读取。 而对该变量的修改,volatile并不提供原子性的保证。 由于及时更新,很可能导致另一线程访问最新变量值,无法跳出循环的情况 多线程下计数器必须使用锁保护。
13.java程序的输入输出功能是通过流来实现的
14.java中的流按照处理单位可分成两种:字节流和字符流
15.通过调用相应的close()方法关闭输入输出流
16.JDK8之前版本,HashMap的数据结构是数组+链表/红黑树
17.如何获取ServletContext设置的参数值?context.getInitParameter()
18.final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
19.finally是异常处理语句结构的一部分,表示总是执行。
20.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,例如关闭文件等。