Java学习笔记----static关键字
2015-10-03 13:15
561 查看
静态的特点
静态的内存图
静态的注意事项
静态变量和成员变量的区别
main方法
2、随着类的加载而加载
3、优先于对象存在
4、被类的所有对象共享(这是我们判断该不该使用静态的依据)
5、通过类名调用(既可以通过对象名调用,也可以通过类名调用,建议通过类名调用)
2、静态只能访问静态
静态变量:属于类,类变量
成员变量:属于对象,对象变量,实例变量
2、内存位置不同
静态变量:方法区的静态区
成员变量:堆内存
3、生命周期不同
静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
4、调用不同
静态变量:可以通过对象名调用,也可以通过类名调用
成员变量:只能通过对象名调用
1、public:公共的,访问权限是最大的,由于main方法是被jvm调用,所以访问权限足够大
2、static:静态的,不需要创建对象,通过类名就可以,方便jvm调用
3、void:方法的返回值是返回给调用者,而main方法是被jvm调用,所以返回内容给jvm没有意义
4、main:是一个常见的方法入口
5、String[] args:早期是为了接收键盘录入的数据
在工具类中使用静态方法,将其构造函数私有化,通过类直接调用方法。
静态的内存图
静态的注意事项
静态变量和成员变量的区别
main方法
静态的特点
1、可以修饰成员变量和成员方法2、随着类的加载而加载
3、优先于对象存在
4、被类的所有对象共享(这是我们判断该不该使用静态的依据)
5、通过类名调用(既可以通过对象名调用,也可以通过类名调用,建议通过类名调用)
静态的内存图
静态的内容在方法区的静态区静态的注意事项
1、在静态中没有this对象2、静态只能访问静态
静态变量和成员变量的区别
1、所属不同静态变量:属于类,类变量
成员变量:属于对象,对象变量,实例变量
2、内存位置不同
静态变量:方法区的静态区
成员变量:堆内存
3、生命周期不同
静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
4、调用不同
静态变量:可以通过对象名调用,也可以通过类名调用
成员变量:只能通过对象名调用
main方法
public static void main(String[] args){}1、public:公共的,访问权限是最大的,由于main方法是被jvm调用,所以访问权限足够大
2、static:静态的,不需要创建对象,通过类名就可以,方便jvm调用
3、void:方法的返回值是返回给调用者,而main方法是被jvm调用,所以返回内容给jvm没有意义
4、main:是一个常见的方法入口
5、String[] args:早期是为了接收键盘录入的数据
在工具类中使用静态方法,将其构造函数私有化,通过类直接调用方法。
class Teacher { public int num = 10; public static int num2 = 20; public void show() { System.out.println(num); //隐含的告诉你访问的是成员变量 System.out.println(this.num); //明确的告诉你访问的是成员变量 System.out.println(num2); //function(); //function2(); } public static void method() { //无法从静态上下文中引用非静态 变量 num //System.out.println(num); System.out.println(num2); //无法从静态上下文中引用非静态 方法 function() //function(); function2(); } public void function() { } public static void function2() { } } class TeacherDemo { public static void main(String[] args) { //创建对象 Teacher t = new Teacher(); t.show(); System.out.println("------------"); t.method(); } }
相关文章推荐
- 杭电adc java 2011
- OFBiz用MySQL时mysql-connector-java版本不对的解决办法
- Eclipse下Maven插件配置
- Java框架与低耦合
- eclipse 配置java rmi
- java 重载、重写、构造函数详解
- javaWeb开发之基础--------------MySQL数据库总结
- Proxy
- Java中的进制转换,练习
- struts2+spring+hibernate框架总结(框架分析+环境搭建+实例源码下载)
- JDK源码阅读(三) Collection<T>接口,Iterable<T>接口
- java模拟线程死锁
- java 矩阵相乘
- Java的类引用的思索
- java反射机制
- java nio 高级
- java web OA 实战系列 1.-理解mvc
- Java集合工具2--Arrays
- [注意事项&车轮]java源代码 产生局部javadoc api档
- eclipse设备SVN插入