java 不用new变量_JAVA俩类,用类的时候为什么Math类不需要new 呢

展开全部

1.StringBuffer为什么要new?

答:java是面向对象语言,简单的来说,就是e68a843231313335323631343130323136353331333363376538化执行者为指挥者。而类的对象就是通过new关键字来创建对象的,再通过对象来引用成员变量和成员方法,这个深层的原因:和java在编译期对new转化的虚拟机指令有关系。这个不多说。

2.Math类为什么不需要new?

答:Math是JDK提供的一个工具类,1.6版本的申明源码如下:public final class Math {

/**

* Don't let anyone instantiate this class.

*/

private Math() {}

如上面源码所示, 构造器私有化,所以无法创建对象,这就好比你使用单例模式,就需要私有化构造器来防止其他的人创建对象。再看方法:public static int abs(int a) {

return (a 

}

源码中的方法都是静态方法,所以,这部分静态的方法在类加载的时候已经在方法区中申明出来了,不回参与你的对象实例化的过程,和对象创建没有关系。所以,静态的方法都是通过类型直接引用的,和你创不创建对象没有关系。这就是我为什么在上面写成员方法,为了和这里的静态方法区分开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值