java的类问题

假设有教师和学生对象一对多關系。有一个获取某教师下全部学生的方法该方法应当属于教师对象还是学生对象的方法?... 假设有 教师和学生对象一对多关系。有一個 获取某教师下全部学生 的方法该方法应当属于教师对象还是学生对象的方法?

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

一般来说属于教师下的方法,通过教师下方法查询该教师下所有学生

但不是所有的都是绝对的,你可鉯通过学生方法查询他所属的老师是那个

正确的是当你查询这个老师下所有学生时,在老师方法里调用对应学生方法该学生方法返回對应所有学生,把查询出的所有学生再返回给该老师

你对这个回答的评价是?

}

java的类.lang.String类是final类型的因此不可以继承这个类、不能修改。为提高效率节省空间可以使用StringBuffer

java的类提供两种类型:引用类型和原始类型;

两者具有不同的特征和用法:速度和夶小、数据结构存储、缺省值

(当引用类型的缺省值是null和原始类型的缺省值与他们的类型有关)

两者用来存储和操作字符串,String类提供了数徝不可改变的字符串StringBuffer类提供的字符串进行修改,当字符串数据要修改时(动态构造字符数据)就使用StringBuffer

5:运行时异常与一般异常有何不哃?

java的类编译器要求方法必须声明抛出可能发生的非运行时异常不需要声明抛出来未被捕获的运行异常

Servlet被服务器实例化后容器运行其init方法,请求到达时运行其service方法service方法自动运行与请求对应的doGetdoPost等方法,当服务器决定销毁实例时调用destroy方法

CGI的区别在于servlet处于服务器进程中,通过多线程方法运行service方法一个实例可以服务于多个请求,并且实例一般不会被销毁;而CGI对每个服务都会产生一个进程服务完后就被銷毁,效率低于service

ArrayListVector都是使用数组方式存储数据,此数组元素个数大于实际存储数目以便继续,增加插入元素他们都允许直接按序号索引元素,但是插入元素涉及数组元素移动等内存操作所以索引数据快而插入数据慢Vector由于使用了synchronize方法(线性安全)通常性能上交ArrayList差,而LinkedList使用双向链表实现存储按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可所以插入速度快

B)SessionBeanJ2EE应用程序中被用来完成一些服务器端的业务操作例如访问数据库,调用其他EJB组件

对于客户机,SessionBean是一个非持久性对象它实现某些茬服务器上运行的业务逻辑。    EntityBean是一种持久性对象它代表一个存储在持久性存储器中的实体的对象视图。

不同的是Stateful的可以记录使用者的状態(一般情况一个使用者就会有一个stateful session Bean实体);但是stateless不负责记录使用者的状态

从内存方面看,stateful会消耗J2EE Server较多的内存;stateful的优势在于它可以维持使用鍺的状态

Collection是集合类的上级接口,继承与他的接口主要有SetList

Collection是针对集合类的一个帮助类它提供一系列静态方法实现对集合的搜索、排序、线程安全化等操作。

HashMapHashtable的轻量级实现(非线程安全的实现)他们都完成了Map接口,都采用的hash/rehash算法都大概一样;

·HashMap允许键值keynull由于非线程安全的额实现,效率上可能高于Hashtable

·Hashtable的方法是Synchronize的,而HashMap不是在多个线程访问Hashtable时不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步

final用于声明属性方法和类,表示属性不可变方法不可覆盖,类不可继承

finally是异常处理语句结构的一部分表示总是执行。

finalizeobject类的一个方法在垃圾收集器执行的是会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集是的其他资源的回收如关闭文件。

sleep是线程类(Thread)的方法导致此线程暂停执行指定时间,把执行机会给其他线程但是监控状态依然保持,到时候会自动回复调用sleep不会释放对象锁。

waitobject类的方法调用wait方法会导致此线程放弃对象锁,进入等他此对象的等待锁定池只有针对此对象发出notify方法后本线程才会进入对象锁定池准备获嘚对象锁进入运行状态。

重写Overriding是父类和子类之间多态性的一种表现

重载Overload是一个类中多态性的一种表现

如果子类中定义某方法是与父类有楿同的名字和参数,即为重写(Overriding

如果一个类中定义了多个同名的方法但是有着不同的参数或参数个数,即为重载(Overload)(Overload的方法可以改變返回值的类型)

error表示可以恢复但是很困难的情况下的一种严重问题如内存溢出。不能指望程序能够处理这种情况

exception表示一种设计和实現问题。也就是说程序能够正常运行就不会发生的情况

存在声明的方法但是不去实现它的类叫做抽象类,不能创建abstract类的实例然而可以創建一个变量,其类型为 抽象类并让他指向具体子类的一个实例。不能有抽象静态函数和抽象构造方法Abstract类的子类为他们的父类中的所囿抽象方法提供实现

接口interface是抽象类的变体,在接口中所有的方法都是抽象的多继承性可以通过这样的接口可以获得。接口中只可以定义static final荿员变量

forward是服务器请求资源,服务器直接访问目标地址的URLURL的响应的内容读取过来,然后把内容发给浏览器浏览器不知道内容是从哪里来的,所以他的地址栏还是原来的地址

redirect是服务端根据逻辑发送一个状态码告诉浏览器重新去请求那个地址,一般来说浏览器会用刚財请求的所有参数重新请求所以sessionrequest参数都可以获取

动态include使用jsp:include动作实现他总会检查所有文件变化,适用于动态页面可以带参数

静态include使鼡inlude伪码实现,不检查所有文件的变化适用于静态页面

Assertion(断言)在软件开发中是一种常用的调式方式,很多开发语言中都支持这种机制茬实现中,assertion就是程序中的一条语句他对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的为true;如为false就说明程序不正确系统将給出警告和退出,assertion用于保证程序最基本、关键的正确性通常在开发和测试是开启。为了提高性能在软件发布后,assertion是关闭的

19GC是什么為什么要有GC

GC是垃圾收集的意思(gabage collection)忘记或错误的内存处理会导致程序或系统的不稳定甚至崩溃,GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的

20:接口可以继承接口,抽象类可以实现接口抽象类可以继承尸体了,前提是必须有明确的构造函数

21:数据连接池的工作机制

J2EE服务器启动时会创建一定数量的池连接,并且维持不少于此数量的池连接客户端程序需要连接时,池驱动程序僦会产生返回一个未使用的池连接并将器标记为busy如果没有空闲连接,吃驱动程序就会创建一定数量的额连接新建连接的数量由配置参數决定。当池连接调用完成之后就会标记为空闲可以继续内其他调用使用

22set里的元素是不能重复的,怎么来区分重复与否

使用iterator()方法来區分重复与否,equels()是用来判断两个set是否相同

23:构造器construction不可被继承,所以不可被重写override但是可以被重载。

26java的类中的接口和c++的虚类异同

java的类裏面不支持多继承而有可能某个类或对象要使用分别在几个类中或对象里面的方法或属性,现有的单继承机制不能满足与继承相比,接口具有更高的灵活性因为接口中没有实现代码。当一个类实现接口以后这个该类就要实现这个接口所有方法和属性,接口里的属性默认都是public static所有方法都是默认都是public,一个类可以实现多个接口

27:垃圾回收的优点和原理

java的类语言最显著的特点是引入垃圾回收机制,使嘚在编写程序的时候不需要考虑内存管理由于垃圾回收机制,java的类中的对象不再有作用域的概念只有对象的引用才会有“作用域”。垃圾回收可以有效的防止内存泄漏有效使用内存。垃圾回收器作为一个单独的低级别的线程运行不可预知的情况下对已经死亡或长时間没有使用对象进行清除和回收。

回收机制有:分代复制垃圾回收、标记垃圾回收、增量垃圾回收

28:部分线程同步的方法

wait():使一个线程處于等待状态且释放所持有对象的lock

sleep() :使一个正在运行的线程处于睡眠状态,是一个静态方法调用此方法鸦片捕捉InterruptException异常

notity():唤醒一个处于等待状态的线程,在调用此方法时并不能确切 唤醒某个等待状态的线程,而是由JVM确定唤醒哪个线程而且不是按照优先级

Allnotity():唤醒所有处於等待状态的线程,并不是给所有唤醒线程一个对象的锁而是让他们竞争

List具体实现包括ArrayListVector他们是可变大小的列表,适用于按数值索引访问元素的情况;

Map提供更通用的存储方法用于存储元素对(key-value),每个键映射到一个值

30:描述JVM加载class文件的原理机制

JVM中类的装载是有由ClassLoader和咜的子类来实现的ClassLoaderjava的类运行系统组件,负责运行时查找和装入类文件的类

31:多线程的几种实现方法同步有几种实现方法?

多线程有兩种实现方法分别是继承Thread类与实现Runnable接口

32JSP的内置对象和方法

Out对象是java的类x.jsp.JspWriter的一个实例,并提供几个方法使得向浏览器回送输出结果

Page表示从該页面产生的一个servlet实例

33:线程的基本概念线程的基本状态以及状态之间的关系

线程指在程序执行过程中,能够执行查询代码的一个执行單元每个查询至少都有一个线程,就是程序本身

java的类中的线程有四个状态:运行,就绪挂起,结束

36JSPservlet有什么不同点,他们之间嘚联系是

JSPservlet的扩展,本质上是servlet的简易模式更强调应用的外表表达,jsp编译后是“类servletServletJSP最主要的不同点在于,servlet的应用逻辑是在java的类攵件中,并且完全从表示层中的HTML里分离开来而JSP的情况是java的类HTML可以组合成一个扩展名为.jsp的文件,jsp侧重视图servlet主要用于控制逻辑。

37:四种會话跟踪技术

Page是代表与一个页面相关的对象和属性一个页面有一个编译好的额java的类

Request是代表与web客户机发出的一个请求相关的对象和属性,┅个  请求可能跨越多个页面设计多哦web组件,(由于forward指令和include动作的关系)

Session是代表用于某个web客户机的一个用户体验相关的对象和属性一个web會话可以也经常会跨越多个客户机请求

Application是代表与整个web应用程序相关的对象和属性。实质上是跨越整个web应用程序包括多个页面,请求和会話的一个全局作用域

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

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

异:lock有更加精确的线程語义和更好的性能s可以自动释放锁,lock要求手动释放必须在finally从句中释放

40EJB的角色和三个对象

一个完整的基于EJB的分别式计算结构由6个角色組成,这6个角色可以有不同的开发商提供每个角色都必须遵循EJB规范,以保证彼此的兼容性

6个角色:EJB组件开发者、应用组合者、部署者、EJB服务器提供者、EJB容器提供者、系统管理者。

41EJB容器提供的服务

主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和並发行管理等服务

42EJB规范规定EJB中禁止的操作

1)不能操作线程和线程API(线程API是指非线程对象的方法如notifywait

3)不能实现服务器功能

4)不能对静態属性存取

5)不能使用IO操作直接存取文件系统

7)不能讲this作为变量和返回

Remote接口定义了业务方法用于EJB客户端调用业务方法

Home接口是EJB工厂用于创建和移除查找EJB实例

}

我要回帖

更多关于 java的类 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信