1.简述 SSH 的概念以及中主要的设计思想?
ssh的概念: 是一个struts+spring+hibernate的一个集成框架。是一种web应用程序框架
设计: 分为四层:表示层、业务逻辑层、数据持久层和域模块层。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理
2.java反射的使用场合和作用、及其优缺点
使用场合: 适用于需要在编译时知道某个对象或类属于哪个类时。只能通过运行时信息来发现该对象和类的真实信息
主要作用: 使程序代码访问装载到JVM 中的类的内部信息,获取已装载类的属性信息,获取已装载类的方法,获取已装载类的构造方法信息
优点:提高了Java程序的灵活性和扩展性,降低耦合性,提高自适应能力。它允许程序创建和控制任何类的对象,无需提前硬编码目标类;许多流行的开源框架例如Struts、Hibernate、Spring在实现过程中都采用了该技术
缺点: 在灵活性和扩展性比较欠缺。使用反射会模糊程序内部逻辑:程序人员希望在源代码中看到程序的逻辑,反射等绕过了源代码的技术,因而会带来维护问题。反射代码比相应的直接代码更复杂。
3.ArrayList list = new ArrayList(20);语句中的 list 集合大小扩充了几次
A.0
B.1
C.2
D.3
答案:A
ArrayList通过构造函数构造的时候,是有初始容量的。这里的new ArrayList(20) 初始容量为20,但是只有在对数组进行添加时元素超过了初始的容量时就会扩充,扩充大小为原当前容量的1.5倍,这里并没有添加元素,所以没有扩充。如果装满了后扩充的话,大小会变为20*1.5=30
4.如果去掉了 main 方法的 static 修饰符会怎样
A.程序无法翻译
B.程序能正常编译,运行时或抛出NoSuchMethodError异常
C.程序能正常编译,正常运行
D.程序能正常编译,正常运行一会会立刻退出
答案:B
5.启动 java 程序进程时,输入一下哪个参数可以实现年轻代的堆大小为 50M
A.-Xms50M
B.-Xmx50M
C.-Xmn50M
D.-Xss50M
答案:C