java指针和Static

类里面定义的变量可以不初始化,因为会默认赋值。八大基本类型变量值默认为0或者false,引用类型为null;

 

临时变量(局部变量)不能加private,protected,public限定修饰符,也不能加static。

 

Java指针

Java其实并不是没有指针,而是处处是指针。每个对象变量的值就是一个指针常量。当只是创建类变量时,它的值是null,只有通过new关键字,后才会返回一个确定的地址值。比如:

Person p = new Person();

先分配内存存储数据(创建类中声明的变量,加载方法),再调用构造方法,最后返回内存地址,即指针。具体是,在new的时候先在堆空间对类的成员和方法地址申请相应大小的空间,然后会把这个值返回到栈空间,并赋值给P。

因为java面向对象的特点,所以其实处处是指针,只不过它封装性,我们并不需要像c那样用*,->去直接操作,也保证了安全性。同时因为jvm的垃圾回收机制,我们也不需要用free()来手动处理垃圾数据。但是尽量还是要注意数据的管理。

 

Static的用法

Static (静态,共享)用类名就可以访问,静态属性的成员和方法在内存专有区,实例化一个类,生成对象时,先把静态成员和方法加载到这个专有区。

 

静态的属性和方法与类绑定,非静态的属性和方法与对象绑定;静态的属性在整个应用中只有一份,而非静态的属性每个对象一份。建议使用类名而非对象名访问类的静态属性和方法。

 

Static修饰变量和方法,可以节省内存。所以final的常量一般也是Static的。





 

静态的方法不能访问非静态的方法和成员

 

Super,this都是非静态的,不能在非静态的的方法中使用。

 

巧用代码块{… }    静态代码块static{…}在类加载时只执行一次。

 

静态方法不能被覆盖,即使与父类方法完全相同,也是两个不同的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值