目录
一、选择题
题目选自牛客网
1.执行下列代码的输出结果是( )
public class Demo{
public static void main(String args[]){
int num = 10;
System.out.println(test(num));
}
public static int test(int b){
try
{
b += 10;
return b;
}
catch(RuntimeException e)
{
}
catch(Exception e2)
{
}
finally
{
b += 10;
return b;
}
}
}
A.10
B.20
C.30
D.40
正确答案:C 如果finally块中有return语句的话,它将覆盖掉函数中其他return语句。
2.关于中间件特点的描述.不正确的是()
A.中间件运行于客户机/服务器的操作系统内核中,提高内核运行效率
B.中间件应支持标准的协议和接口
C.中间件可运行于多种硬件和操作系统平台上
D.跨越网络,硬件,操作系统平台的应用或服务可通过中间件透明交互
正确答案:A
中间件并不运行于客户机/服务器的操作系统内核中,它的主要作用是在应用软件和操作系统或网络之间提供一个抽象层,以实现不同系统之间的通信和数据共享。中间件的目的是为了提高应用软件的可移植性、互操作性和可扩展性,而并非直接提高操作系统的运行效率。中间件通过支持标准的协议和接口,确保了其可以在多种硬件和操作系统平台上运行,使得跨越网络、硬件、操作系统平台的应用或服务能够通过中间件透明地进行交互。因此,选项B、C和D都是正确的描述,而A则是不正确的。
3.Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?
A.重写是父类与子类之间多态性的一种表现
B.重写是一个类中多态性的一种表现
C.重载是一个类中多态性的一种表现
D.重载是父类与子类之间多态性的一种表现
正确答案:AC
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写
(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
4.class A {}
class B extends A {}
class C extends A {}
class D extends B {}
下面的哪4个语句是正确的?
A.The type Listis assignable to List.
B.The type Listis assignable to List.
C.The type Listis assignable to List<?>.
D.The type Listis assignable to List<?extends B>.
E.The type List<?extends A>is assignable to List.
F.The type Listis assignable to any List reference.
G.The type List<?extends B>is assignable to List<?extends A>.
正确答案:ACDG
在Java中,泛型的赋值兼容性遵循协变、逆变和不变性的规则。
A. The type List<A> is assignable to List.
- 这个描述不完整。List<A>
不能直接赋值给List
,因为List
通常指的是一个未指定类型的列表,但在上下文中,如果List
指的是List<A>
,那么这个描述是正确的。
B. The type List<B> is assignable to List<A>.
- 这是不正确的。尽管B
是A
的子类,List<B>
不能赋值给List<A>
,因为这会破坏类型安全性。List<A>
期望A
或其子类的元素,但List<B>
中的元素类型是更具体的B
类型。
C. The type List<Object> is assignable to List<?>
- 这是正确的。List<?>
表示一个未知类型的列表,List<Object>
可以赋值给它,因为Object
是所有类型的超类。
D. The type List<D> is assignable to List<? extends B>.
- 这是正确的。D
是B
的子类,所以List<D>
可以赋值给List<? extends B>
,因为List<? extends B>
表示一个包含B
或其子类元素的列表。
E. The type List<? extends A> is assignable to List<A>.
- 这是不正确的。尽管List<? extends A>
可以包含A
或其任何子类的元素,但它不能直接赋值给List<A>
,因为后者期望A
类型的元素,而前者可能包含A
的任何子类型元素。
F. The type List<Object> is assignable to any List reference.
- 这是不正确的。虽然List<Object>
可以赋值给List<Object>
或List<?>
,但不能赋值给像List<String>
这样的更具体的类型引用,因为这会破坏类型安全性。
G. The type List<? extends B> is assignable to List<? extends A>.
- 这是正确的。因为B
是A
的子类,所以List<? extends B>
可以赋值给List<? extends A>
,这符合协变的规则。
二、知识点
1.中间件特点的描述
1.1中间件的定义和作用
中间件是一种独立的系统软件或服务程序,它在分布式系统中起到承上启下的关键作用。中间件位于操作系统、网络和数据库之上,应用软件的下层,通过屏蔽底层操作系统的复杂性,使得程序员可以更专注于开发上层业务应用。中间件不仅提供了API接口供程序员调用,而且实现了各类应用间的互联互通,使得整个分布式系统可以高效地运转。
1.2中间件的主要特点
中间件的特点包括:
跨平台性:中间件可以支持多种硬件和操作系统平台,提供跨不同系统的兼容性和解决方案。
标准化协议和接口:中间件应支持标准的协议和接口,以便不同的应用程序和系统能够无缝协作。
透明通信:中间件提供通信框架,透明地处理对象请求,使得客户端和服务器之间的通信不受底层细节影响。
资源管理和调度:中间件有效地整合系统资源,包括计算、存储和网络等,并通过负载均衡、容灾备份等技术手段提高系统的可靠性和性能。
支持多种编程语言和开发框架:中间件降低了软件开发和维护的难度,支持多样化的开发环境。
促进应用集成:中间件可以实现不同业务系统间的数据共享和流程整合,支持企业应用集成。
安全性和事务管理:中间件提供丰富的安全策略和认证授权机制,以及事务处理监控,确保企业数据的安全性和完整性.
1.3中间件的应用场景
中间件广泛应用于企业级应用、云计算、大数据、物联网、边缘计算等领域。它支持分布式账本、智能合约、车联网、自动驾驶等技术的应用,提供了强大的数据传输和处理保障.
1.4中间件的发展趋势
随着技术的不断进步和应用需求的不断增加,中间件的功能和性能将不断提升和完善。新兴技术的发展和融合将推动中间件拓展其应用领域和边界,例如在边缘计算和物联网领域的应用.
二、重写与重载
根据您提供的信息,我将方法重写和方法重载的概念以及它们之间的区别整理成了以下表格:
特征 | 方法重写(Overriding) | 方法重载(Overloading) |
---|---|---|
定义 | 在子类中定义与父类方法同名且参数相同的方法,但实现不同。 | 在同一类中定义多个同名方法,参数列表不同。 |
签名 | 必须与父类方法签名完全相同。 | 参数列表必须有所不同。 |
返回类型 | 可以不同(Java 7及以后版本)。 | 可以相同或不同。 |
多态性类型 | 运行时多态性。 | 编译时多态性。 |
发生位置 | 子类与父类之间。 | 同一类内部或子类内部。 |
访问权限 | 子类方法访问权限不能低于父类方法。 | 访问权限可以不同。 |
异常 | 子类方法不能抛出比父类方法更广泛的异常。 | 方法可以抛出不同的异常。 |
静态方法处理 | 不能被重写,但可以被再次声明。 | 可以被再次声明。 |
私有方法处理 | 不能被重写。 | 不适用,因为私有方法在子类中不可见。 |
动态绑定/静态绑定 | 通过动态绑定调用具体实现。 | 通过编译器静态绑定。 |
目的 | 扩展或修改父类行为。 | 提供处理不同类型或数量参数的方法。 |
总结![](https://i-blog.csdnimg.cn/direct/aa4190dfbd0e463294e41059016b8895.png)
愿我们每天都能收获新的知识和技能,不断进步,成就更优秀的自己!祝大家在前进的道路上一帆风顺,每天都充满希望和喜悦!