泛型通配符等···

泛型通配符的扩展应用:
如Collection<?> 名字
?通配符可表示传入任何类型
使用?通配符可以引用其它各种参数化的类型,?通配符定义的的变量主要做引用可以调用与参数无关的

方法,不能调用与参数化有关的方法。

限定通配符的上边界:
正确的:如
Vector<? extends Number>x=new Vector<Integer>();
错误的:如
Vector<?extends Number>x=new Vector<String>();
 

限定通配符的下边界:
正确的:如
Vector<? Super Integer>x=new Vector<Number>();
错误的:如
Vector<?Super Integer>x=new Vector<Byte>();
限定通配符总是包括自己。

在JSP中常用SetMap集合进行迭代
<c:forEach items="${map}" var="entry">
${entry.key}:${entry.value}
<c:forEach>

自定义的泛型及应用
Java中的泛型类似于c++的模板但这种相似性仅限于表面。
不同类型时取其交集。

只有引用类型才能做泛型的参数。
除了在应用泛型时可以使用extends限定符
在定义泛型时可以使用extends限定符并且可以用&来指定多个边界。
另外异常也可以使用泛型。
在泛型中可以同时有多个类型参数在定义它们的类括号中使用逗号分开。

泛型方法应用实例:
如编写一个泛型方法自动将Object类型的对象转换成其它类型。
public static <T>autoConvert(Object obj)
{
return (T)obj;
}
一般来说通配符方案要比泛型方法更有效。

在J2EE中都是对数据库的操作:
C:增加create
R:查询Retrieve
U:更新Update
D:删除Delete

如果是泛型不能被静态变量和静态方法调用,因为静态成员是被所有参数化的类所共享的,所以静态成

员不应该有类级别的参数类型。

类中多个方法需要使用泛型时应该使用类别级的泛型。

类加载器:
加载类的工具
委托机制为了防止字节码的重复。
通常不可以自己写一个如Java.language.System,由于有委托机制,但自己可以写类加载器。

代理的概念与作用:
AOP(Aspect oriented program):面向方向的编程。
交叉业务的编程问题即为面向方向的编程,AOP的目标就是使用交叉业务模块化。
代理是实现AOP功能的核心和关键技术。

StringBuilder与StringBuffer的区别?
运用上基本一样。
都是动态的向字符串上添加内容。
但在单线程上StringBuilder效率高。
在多线程上StringBuffer效率高。

让JVM创建动态类及实例对象需要给它提供哪些信息。
1:成产的类中有哪些方法通过让其实现哪些接口的方式告知。
2:产生的类的字节码必须有一个关联的类加载器对象。
3:生成的类中的方法的代码是怎样的也由我们提供。

怎么把要执行的系统功能代码以参数形式提供?
1:把要执行的代码装到一个对象的某个方法里然后把该对象作为参数传递。
2:把目标对象也当做参数传递过去。

Spring的两大核心问题:
1:BeanFactory:Bean工厂
2:AOP框架

 

 

 

 

在Java中,通配符用于解决类安全问题,并提供了一种方法来引用类,而不需要知道具体的类参数。通配符主要有以下几种形式: 1. `?`:无界通配符,表示未知的类,可以匹配任何对象的类。 2. `<? extends 类或接口>`:表示具体的类,但不是确定的类。`extends`在这里的意思是“某种类的子类”。这可以用来限定类参数的上界,只允许该通配符引用某个类或其子类。 3. `<? super 类或接口>`:表示具体的类,但不是确定的类。`super`在这里的意思是“某种类的父类”。这可以用来限定类参数的下界,只允许该通配符引用某个类或其父类。 4. `? extends 类1 & 类2 & ... & 类n>`:表示有限制的通配符,可以引用同时满足多个上限类约束的类。 使用通配符的目的是为了增强代码的灵活性,同时保证类安全。例如,如果有一个方法需要接受任何类的`List`作为参数,但不想限制这个`List`只能包含特定类的对象,那么可以使用无界通配符`<?>`。 下面是一个简单的例子,来说明如何使用通配符: ```java public class GenericWildcardExample { public static void processElements(List<?> elements) { for (Object element : elements) { // 处理元素,但不知道元素的实际类 } } } ``` 在这个例子中,`processElements`方法可以接受任何类的`List`对象作为参数,但在方法内部,我们只能将元素当作`Object`类来处理。 使用通配符的注意事项: - 不能实例化通配符。 - 不能使用带有通配符的类作为方法的参数类,因为这会导致在调用时出现类安全问题。 - 如果要向集合中添加元素,那么只能添加`Object`类的元素,因为编译器不知道集合中具体存储的是哪种类的对象。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值