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. git---从已有分支拉出新分支

    文章目录 开发中,经常需要从一个已有的分支拉出一个新分支,去这个新分支做一些开发改动,这里示例为: 从master分支,重新拉取出一个新的分支,名字为dev,具体命令如下: 切换到被copy的分支(m ...

  2. Nginx负载均衡之TCP/UDP流

    负载均衡是指在多个后端服务器之间有效地分配网络流量. 从NGINX Plus R5[1] 版本开始可以代理和负载均衡传输控制协议(Transmission Control Protocol,TCP)通 ...

  3. maven导出工程pom文件中依赖的jar包

    在工程的pom文件里加上下面plugin, 然后执行mvn clean package -Dmaven.test.skip=true命令,就可以lib包收集起来了 <plugin> < ...

  4. equals方法重写

    在java中常见的equals方法的重写: 举例:一个自定义类ball如下 public class Ball { private String name; private int weight; p ...

  5. docker 实战

    创建镜像 docker pull ubuntu 创建容器 docker run -it -name web ubuntu /bin/bash 更新软件源信息 apt-get update 安装ssh  ...

  6. zoj 3777 Problem Arrangement(壮压+背包)

    Problem Arrangement Time Limit: 2 Seconds      Memory Limit: 65536 KB The 11th Zhejiang Provincial C ...

  7. 卸载 Bash On Ubuntu On Windows

    1.打开cmd,输入lxrun /uninstall /full,然后根据提示输入y即可开始卸载. 已失效

  8. 四、spring的JDBC模板和事务管理

    Spring的JDBC模板 Spring是JavaEE开发的一站式框架,对各种持久化技术都提供了简单的模板 ORM持久化技术 模板类 JDBC org.springframework.jdbc.cor ...

  9. 运用pool进程池启动大量子进程

    # Pool进程池类 from multiprocessing import Pool import os import time import random def run(index): prin ...

  10. IronPython C#与Python相互调用

    ironphy  microsoft.scripting dll using System;using System.Collections.Generic;using System.Linq;usi ...