首页 > 编程语言 >java中static详解

java中static详解

时间:2022-09-24 16:57:33浏览次数:48  
标签:java 变量 静态 Demo 详解 static println out

Java中static(随着类的出现而出现):

  1. 适用范围:可以修饰变量和方法

  2. 静态(static)修饰如下:

        a.变量:称为类变量、静态变量

        b.方法:称为类方法、静态方法

        c.代码块:称为静态代码块

    3.特点:

        a.随着类的加载而加载

public class Demo {
//创建一个类,定义一个静态变量,一个实例变量
	
	String name="赵丽颖";
	static String sex="男";

//	在mian方法里面调用这两个变量是不一样的
	public static void main(String[] args) {
//		静态变量可以通过类调用也可以通过对象调用,而实例变量只能通过对象调用
     
     System.out.println(Demo.sex);
     Demo demo=new Demo();
     System.out.println(demo.sex);
    System.out.println(demo.name);
	}

}

         b.优先于对象存在   (为创建对象的时候就已经存在)

         c.被类的所有对象共享(静态变量随着类的加载出现,全局中类只会被加载一次,静态会被所有对象共享)

 
public class Demo {
//创建一个类,定义一个静态变量,一个实例变量
	static int age=18;

     int a=10;

	public static void main(String[] args) {
//	静态变量是被所有对象共享的,实例对象是每个对象里面都是独立的
//		demo1,demo2对age都进行了修改,以最终修改为主
     
     Demo demo1=new Demo();
     demo1.age=22;
     demo1.a=5;
     Demo demo2=new Demo();
     demo2.age=30;
     demo2.a=50;
     System.out.println(demo1.age);
     System.out.println(demo1.a); 
     System.out.println(demo2.age);
     System.out.println(demo2.a);
	}

}
  d.可以通过类名调用

4.类的成员变量可以分为以下两种:

  1. 静态变量(或称为类变量),指被 static 修饰的成员变量。
  2. 实例变量,指没有被 static 修饰的成员变量。

5. 注意事项:

      a.在静态方法中不可以使用this关键字(静态方法随着类的出现而出现,this指向的是当前对象,类出现时对象还没有出现,所以不能用this)       b.静态方法只能访问静态的成员变量和静态的成员方法(静态方法随着类的出现而出现,成员变量,成员方法需要对象的调用,类出现时对象还没有出现)       c.子类不能重写父类中含有static,final,private修饰的方法   6.静态变量和成员变量的区别:    a. 所属不同          静态变量属于类,所以也称为为类变量          成员变量属于对象,所以也称为实例变量(对象变量)    b. 内存中位置不同          静态变量存储于方法区的静态区(常量池)         成员变量存储于堆内存    c.内存出现时间不同          静态变量随着类的加载而加载,随着类的消失而消失          成员变量随着对象的创建而存在,随着对象的消失而消失    d.调用不同           静态变量可以通过类名调用,也可以通过对象调用           成员变量只能通过对象名调用

7.代码块

  • 定义:在Java中,使用{}括起来的代码被称为代码块,根据位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块。
    • 局部代码块在方法中出现;限定变量生命周期,及早释放,提高内存利用率
    • 构造代码块类中方法外出现;多个构造方法方法中相同的代码存起,每次调用构造都执行,并且在构造方法前执行(相当于构造方法的初始化)
    • 静态代码块在类中方法外出现,加了static修饰在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次
  • 执行顺序:静态代码块>构造代码块>构造方法
    public class Demo {
    
    	static 
    	{
    	System.out.println("Demo 静态代码块");
    	}
    
    	{
    	System.out.println("Demo 代码块");
    	}
    	
    	public Demo()  {
    	System.out.println("Demo 构造方法");
    	}
    	}
    
    public class Test {
    
    	static
    	 {
    	 System.out.println("我是静态代码块");
    	 }
    	public static void main(String[] args) {
    	 System.out.println("我是main方法");
    	Demo demo1=new Demo();
    	Demo demo2=new Demo();
    	
    	 }
    	
    	
    }	 
    	

标签:java,变量,静态,Demo,详解,static,println,out
From: https://www.cnblogs.com/xiao-xing33/p/16725939.html

相关文章

  • 四 Java数组
    Java数组数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元......
  • http协议详解:HTTP报文、请求方法、HTTP状态码
    简介HTTP协议,即超文本传输协议(Hypertexttransferprotocol)。是一种详细规定了浏览器和万维网(WWW=WorldWideWeb)服务器之间互相通信的规则,通过因特网传送万维网文......
  • java中的static关键字
    引言  通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员声明前面加上static关键字就能创建这样的成......
  • 计算机毕业设计 SpringBoot+Vue零食商城平台系统 零食网上商城系统 零食购物商城系统J
    ......
  • 力扣23(java)-合并k个升序链表(困难)
    题目:给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4......
  • my.java
    packagecn.ac.cti.txfz.common.szs;importcn.ac.cti.txfz.common.constant.BaseEnum;importcn.ac.cti.txfz.common.constant.InfoEnum;importio.swagger.annotatio......
  • 二 Java流程控制
    java流程控制Scanner对象实现程序和人的交互,通过Scanner类来获取用户的输入。Scanners=newScanner(System.in);通过Scanner类的next()与nextLine()方法获取输入......
  • 三 Java方法
    Java方法什么是方法Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合。方法包含于类或对象中。方法在程序中被创建,在其他地方被引......
  • Java基础 (1)
    IJ的使用快捷键:ctrl+d复制当前行到下一行psvmpublicstaticvoidmain(String[]args){}soutSystem.out.println();Java基础1.注释注释包括单行注释,......
  • java static
    1.static关键字的目的:   主要用于内存管理2.static关键字的范围:     1)使用范围:javastatic关键字可以用在变量、方法、代码块和嵌套类伤。   2)作......