Static(静态)是一种修饰符,用于修饰成员(成员变量、成员函数)

1.静态方法只能访问静态成员。

2.静态随着类的加载而加载

通过代码分析:

 class PersonDemo
{
public static void main(String[] args)
{
Person p=new Person("zhangsan",25);
Person p1=new Person("lisi",22);
}
} class Person
{
//成员变量的默认初始化
private String name;
//
private int age;
//静态成员
private static String country="cn"; //构造函数
Person(String name , int age)
{
//this关键字:代表当前对象
this.name=name;
this.age=age;
}
//成员函数
public void setName(String name)
{
this.name=name;
}
public void speak()
{
System.out.println("Speak");
} //静态方法
public static void showCountry()
{
System.out.println("静态方法:"+country);
}
//静态代码块
static
{
showCountry();
System.out.println("静态代码块");
}
//构造代码块
{
//System.out.println("构造代码块");
System.out.println("构造代码块;;" + "name="+name+";age="+age);
}
}

运行结果:

Person p=new Persong("XXX",XXX);

做了哪些事情

1.通过new从硬盘中找到的Person.class文件加载到内存中

2.Person类被加载到内存,静态成员就被加载到内存(方法区)中

3.执行该类的静态代码块

4.在堆内存中开辟空间,分配地址

5.在堆内存中建立对象的成员(成员变量,成员方法),并进行初始化

6.对对象构造代码块初始化

7.对对象构造函数初始化

8.将内存地址赋值个栈内存中的p变量

内存表现形式

补充一点:

p.setName("wangwu");内存表现:

Java学习之Static的更多相关文章

  1. Java学习笔记——static关键字与静态的使用方法

    static:可以修饰成员变量和成员方法. 当变量被static修饰后,则其可以直接被类名调用.类名.成员. static特点: 随着类的加载而加载: 优先于对象存在: 被所有的对象共享,节省空间,但 ...

  2. Java学习——使用Static修饰符

    程序功能:通过两个类 StaticDemo.LX4_1 说明静态变量/方法与实例变量/方法的区别. package Pack1; public class Try { public static vo ...

  3. Java学习:static 关键字概述

    static 关键字概述 一旦用了static关键字,那么这样的内容不再属于对象自己.而是属于类的,所以凡是本类的对象,都共享同一份. 如果没有static关键字,那么必须首先创建对象,然后通过对象才 ...

  4. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  5. Java学习笔记之---static

    Java学习笔记之---static static不能修饰类,局部变量 (一)静态成员的特征 static+属性  静态属性 无论实例化出来多少个对象,都会共用同一块静态空间,类对象共享 静态成员从第 ...

  6. Java学习笔记之面向对象、static关键字

    一周Java学习总结 今天就总结理清一下关于面向对象和面向过程的程序设计的一些不同特点,以及讲下static关键字. 面向对象 现在接触的Java是面向对象的,现在的程序开发几乎都是以面向对象为基础的 ...

  7. java学习面向对象值static

    讲完了this这个关键字,我们继续前进,这节我们讲另外一个比较重要的东东,java当中的static,在main函数前面这个家伙都在那里一直挺着,你瞅见了么,你就不好奇么,你就不想知道他杵在那里做什么 ...

  8. 【Java学习笔记之十五】Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  9. java学习(四)static静态变量 和this

    java中的this /* this:是当前类的对象引用.简单的记,它就代表当前类的一个对象. 注意:谁调用这个方法,在该方法内部的this就代表谁. this的场景: 解决局部变量隐藏成员变量 */ ...

随机推荐

  1. linux nfs文件共享

    ◆一.概念   NFS是网络文件系统(Network File System)的简称,是分布式计算机系统的一个组成部分,可实现在异构网络上共享和装配远程文件系统.   NFS由SUN公司开发,目前已成 ...

  2. JS中基本数据类型和引用类型最根本的区别

    栈内存和堆内存:https://segmentfault.com/a/1190000015118062 https://segmentfault.com/a/1190000016389376 变量:内 ...

  3. intel instruction 指令速查

    参考:http://ref.x86asm.net/ http://ref.x86asm.net/coder32.html

  4. qt ui界面控件布局设计

    1.布局控件简介: 水平布局,里面的控件将水平展示,布局器里面的控件大小若没有固定,其大小将随着布局的大小而自动拉伸.可以通过设置其左(layoutLeftMargin).上(layoutTopMar ...

  5. 实用js片段

    算法 //加法 add(10,2) //12 function add(a, b) { var c, d, e; try { c = a.toString().split(".") ...

  6. 57.Queue Reconstruction by Height(按身高重建对列)

    Level:   Medium 题目描述: Suppose you have a random list of people standing in a queue. Each person is d ...

  7. linux mysql数据库安装

    1.创建mysql用户账号:groupadd mysqluseradd -d /sbin/nolog -g mysql -M mysql-s /sbin/nologin 表示禁止该用户登录,只需要角色 ...

  8. iview 分割面板效果(二)

    源码地址:https://gitee.com/yolanda624/coffer/tree/master/src/components/a-split-panel

  9. C中整数的溢出

    /** * 整数的溢出 */ #include <stdio.h> int main(int argc, char *argv[]) { short i = -24; // 将-24以无符 ...

  10. oracle sys_refcursor用法和ref cursor区别

    --创建过程,参数为sys_refcursor,为out型 create or replace procedure aabbsys_refcursor(o out sys_refcursor) is ...