ssm框架问题和Java

时间:2021-09-24 09:13:39

http://blog.csdn.net/zzjjiandan/article/details/20853233

BeanFactory的作用是什么?

BeanFactory是配置、创建、管理bean的容器,有时候也称为bean上下文。Bean与bean的依赖关系,也是由BeanFactory负责维护的。

  • bean在spring的容器中两种基本行为是什么?

Bean默认的是单例的.

如果不想单例需要如下配置:

<bean id="user" class="..." singleton="false"/>

singleton就是配置这个bean是否是单例的,如果不写,就是默认值true。

注解:

spring Bean生命周期

1.Bean的作用域可以通过Bean标签的scope属性进行设置,Bean的作用域包括:

默认情况下scope="singleton",那么该Bean是单例,任何人获取该Bean实例的都为同一个实例;

scope="prototype",任何一个实例都是新的实例;

scope="request",在WEB应用程序中,每一个实例的作用域都为request范围;

scope="session",在WEB应用程序中,每一个实例的作用域都为session范围;

注意:在默认情况下,Bean实例在被Spring容器初始化的时候,就会被实例化,默认调用无参数的构造方法。在其它情况下,Bean将会在获取实例的时候才会被实例化

2.Bean可以通过指定属性init-method指定初始化后执行的方法,以及通过指定属性destroy-method销毁时执行的方法。

语法:<bean .... destroy-method="销毁时调用的方法名" init-method="初始化后执行的方法名"/>

  • Ajax的工作原理 ?
  • AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用AJAX)如果需要更新内容,必需重载整个网页面。

J2EE是技术还是平台还是框架? 

J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。 

J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。

什么是AOP 请祥述

 AOP 把软件系统分为两个部分:核心关注点和横切关注点。所谓的核心关注点,是业务处理的主要流程,也就是说这个解决方案要做的事。所谓横切关注点,是与核心业务无关的部分,它把常发生在核心关注点的多处,而各处基本相似,如日志,事务,权限等 。

简述什么是ORM

ORM的全称是Object-Relational Mapping 翻译成中文就是“对象-关系映射” 

ORM组件的主要功能就是实现实体域对象的持久化并封装数据库访问的细节 

ORM本身并不是一个组件,它是具用某种功能的组件的总称,也可以说是一种框架结构

一般情况下,关系数据模型与对象模型之间有哪些匹配关系
表对应类
记录对应表的对象
表的字段对应类的属性

抽象类总结:

1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。
5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

说说java中的内存分配?

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,
java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。
堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,
这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者对象的引用变量,
以后就可以在程序中使用栈内存中的引用变量来访问堆中的数组或者对象,引用变量相当于为数组或者对象起的一个别名,或者代号。
引用变量是普通变量,定义时在栈中分配内存,引用变量在程序运行到作用域外释放。而数组&对象本身在堆中分配,
即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,
数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉。
这个也是java比较占内存的主要原因。但是在写程序的时候,可以人为的控制

throw与throws有什么区别?
throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。
通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。

ArrayList和Vector的区别,HashMap和Hashtable的区别 
答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

垃圾回收机制的原理? 
在JAVA中 ,JAVA VM 每隔一段时间就会查看每一块由NEW分配的内存空间,看指向它的有效引用是否存在,如果这个引用不存在,

系统会自动将这块空间归入空闲内存区.这个过程被称为 垃圾收集.

jdk,jvm,jre

jdk包含jre和其他java工具

jre包含jvm,是java运行环境,包括Java核心类

一个Java程序首先会被编译成class,然后通过jvm在运行时连接jre其他类库得到可执行文件,可执行文件通过Java虚拟机调系统平台底层指令

http://jnn.iteye.com/blog/83105

什么是web容器?

是一种环境,servlet能够直接从环境中获取资源,而不用关心怎么来

Spring 中的 Bean 的作用域有哪些?
singleton : 表示 Bean 在一个 Spring IOC 容器中只会有一个实例。
prototype : 表示每次从 Spring IOC 获取 Bean 时,都会产生一个新的实例,prototype 通常翻译为原型(原型模式类似于这种方式)。
Spring 不能对一个 prototype bean 的整个生命周期负责,容器在初始化、配置、装饰或者是装配完一个 prototype 实例后,将它交给客户端,随后就对该 prototype 实例不闻不问了。不管何种作用域,容器都会调用所有对象的初始化生命周期回调方法,而对 prototype 而言,任何配置好的析构生命周期回调方法都将不会被调用。 清除 prototype 作用域的对象并释放任何 prototype bean 所持有的昂贵资源,都是客户端代码的职责。(让 Spring 容器释放被 singleton 作用域 bean 占用资源的一种可行方式是,通过使用 bean 的后置处理器,该处理器持有要被清除的 bean 的引用。)
request : 表示该针对每一次 HTTP 请求都会产生一个新的 bean,同时该 bean 仅在当前 HTTP request 内有效。
session : session 作用域表示该针对每一次 HTTP 请求都会产生一个新的 bean,同时该 bean 仅在当前 HTTP session 内有效