thinking in java 部分摘录

本文解析了Java中的关键概念,包括静态方法、多态性、类的动态加载机制、反射调用及泛型方法的使用原则等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.静态方法和域 不具有多态性。即父类的引用引用子类对象的时候,它还是用的父类的东西

2.所有的类都是在对其第一次使用时,动态加载到JVM中的。当程序创建第一个对类的静态成员的引用时,就会加载这个类。这个证明构造器也是类的静态方法,即使在构造器之前并没有使用static关键字。因此,使用new操作符创建类的新对象也会被当做对类的静态成员的引用。


 构造器不同之处:没有static修饰,是静态的;而且构造器的返回值类型和 方法名都是类名!!!

3.因此,java程序在它开始运行之前并非被完全加载,其各个部分是在必需时才加载的。而很多传统语言都不一样,动态加载使能的行为,在诸如C++这样的静态加载语言中是很难或者根本不可能复制的。


4.通过反射,可以在其method 对象上调用setAccessible(true),从而调用它访问权限之外的方法!


5.泛型类和泛型方法
   泛型方法的写法:
   要定义泛型方法,只需将泛型参数列表置于返回值之前,如:
    public <T> void f(T x){ System.out.println(x.getClass().getName());}
     泛型方法使用原则,无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为它可以使事情更清楚更明白。另外,对于一个static的方法而言,无法访问泛型类的类型参数,所以,如果static方法需要使用泛型能力,就必须使其成为泛型方法。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值