static关键字 java
来源:互联网 发布:dota2和lol的区别 知乎 编辑:程序博客网 时间:2024/06/03 23:48
static最突出的特点是在没有创建对象的情况下来就可以调用方法或变量。被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。static可以用来修饰类的成员方法、类的成员变量,也可以编写static代码块来优化程序性能。下面对这些特性进行讲解:
1、静态变量
static变量也称作静态变量,静态变量和非静态变量的区别是:
静态变量被所有的对象所共享,在内存中只有一个副本,被所有的实例共享。
非静态变量是某个对象单独拥有,在创建对象的时候被初始化,各个对象拥有的非静态变量互不影响。
如下例:
class Student {static String schoolName; // 定义静态变量schoolName}public class Example12 {public static void main(String[] args) {Student stu1 = new Student(); // 创建学生对象Student stu2 = new Student();Student.schoolName = "传智播客";// 为静态变量赋值System.out.println("我的学校是" + stu1.schoolName);// 打印第一个学生对象的学校System.out.println("我的学校是" + stu2.schoolName); // 打印第二个学生对象的学校}}
输出:
我的学校是传智播客
我的学校是传智播客
public class Student {public void speak() { static int num=12; //不能用于修饰局部变量,即使speak也定义为static}}
2、静态方法
被static修饰的方法称作作静态方法,不创建对象就可以调用静态方法,静态方法可以使用“类名.方法名的方式来访问”。
但也因为这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
class Person {public static void sayHello() { // 定义静态方法System.out.println("hello");}}class Example {public static void main(String[] args) {Person.sayHello(); // 调用静态方法,最后直接输出hello}}
3、静态代码块
static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,只会执行一次(只会在类第一次使用时才会被加载)也因此static关键字形成静态代码块可以优化程序性能。
class Person {static String country;static { //一个静态代码块 country = "china";System.out.println("Person类中的静态代码");}}class Example2 { static { // 静态代码块 System.out.println("测试类静态代码");}public static void main(String[] args) {Person p1 = new Person();// 创建对象p1Person p2 = new Person();// 创建对象p2}}结果:该方法中创建了两个对象,但在两次实例化的过程中,静态代码只执行了一次,这说明类在第一次使用时才会被加载
阅读全文
1 0
- Java this关键字,static关键字
- Java static关键字,final关键字
- JAVA STATIC 关键字
- Java中的static关键字
- JAVA中的static关键字
- Java 中 static 关键字
- java static关键字
- java static关键字
- Java关键字final、static
- java中static关键字
- Java中static关键字
- java中static关键字
- java中关键字:static
- JAVA中的static关键字
- java中的static关键字
- java关键字 static
- java中的static关键字
- java关键字static
- ubuntu下安装postfix出现configuration界面,但是按确定没反应,就一直卡在配置界面
- ViewPager
- 大话 elf 格式! -- 可连接elf 格式
- iOS开发--项目学习过程知识点集合
- (2)Java语言,JDK,JRE简介
- static关键字 java
- okhttp
- kaldi 中安装GridEngine的一些注意事项
- Spark如何读取Hbase特定查询的数据
- viewPager适配器
- 如何深入理解Java内存回收机制?
- 《数据结构学习与实验指导》4-9:笛卡尔树
- [leetcode]79. Word Search(Java)
- ListView 默认背景色