首页 > 编程语言 >java第二周

java第二周

时间:2022-09-18 20:33:14浏览次数:78  
标签:静态方法 变量 实例 静态 访问 第二周 static java

static声明的成员变量为静态成员变量,其的生命周期和类相同,在整个应用程序执行期间都有效。

静态方法不能调用非静态成员。

static可以用来修饰类的成员方法、类的成员变量。被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

static方法也成为静态方法,由于静态方法不依赖于任何对象就可以直接访问,因此对于静态方法来说,是没有this的,在静态方法中不能访问类的非静态成员变量和非静态方法,因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。

如果想在不创建对象的情况下调用某个方法,就可以将这个方法设置为static。

最常见的静态方法就是main方法,因为程序在执行main方法的时候没有创建任何对象,只有通过类名来访问。

static方法是属于类的,非实例对象,在JVM加载类时,就已经存在内存中,不会被虚拟机GC回收掉,这样内存负荷会很大,但是非static方法会在运行完毕后被虚拟机GC掉,减轻内存压力

static变量也称为静态变量,static成员变量初始化顺序按照定义的顺序来进行初始化。

静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化。

非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响

静态方法不需要通过它所属的类的任何实例就可以被调用,因此在静态方法中不能使用 this 关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。另外,和 this 关键字一样,super 关键字也与类的特定实例相关,所以在静态方法中也不能使用 super 关键字。

非静态的方法用”对象.方法”的方式,因为他在对象创建前不存在,必须依赖对象的创建后,才能使用

运行时,Java 虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。

在类的内部,可以在任何方法内直接访问静态变量。

在其他类中,可以通过类名访问该类中的静态变量。

静态变量可以被类的所有实例共享,因此静态变量可以作为实例之间的共享数据,增加实例之间的交互性。

如果类的所有实例都包含一个相同的常量属性,则可以把这个属性定义为静态常量类型,从而节省内存空间。例如,在类中定义一个静态常量 PI。

 

标签:静态方法,变量,实例,静态,访问,第二周,static,java
From: https://www.cnblogs.com/yetang307/p/16705669.html

相关文章

  • javase基础
    1.类与对象*类是方法与属性的集合,是一种抽象的概念*对象是对该类事物的具体体现形式,具体存在的个体studentstu1=newstudent();student为类名stu1为对象名=new......
  • Java8新特性
    1.lambda表达式即允许将函数作为参数传递进方法中。可以替代匿名内部类的编写新手一开始不能直接写出lambda表达式,我们可以先用Idea的提示写出匿名内部类,匿名内部类比较......
  • k8s 的java程序内存设置多大合适 怎么设置
     主要参考的三个博客参考1:https://www.cnblogs.com/xiaoqi/p/container-jvm.html参考2:https://www.imooc.com/article/292785?block_id=tuijian_wz参考3:https://blog.csd......
  • java: Flyweight Patterns
     /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*享元模式FlyweightPatterns*历史版本:JDK14.02*2022-09-12创建者geovindu*2022-09-1......
  • javascript中的一些细节,undefined和null的区别,什么情况下是false,函数赋值,等等
    如果不赋值,就使用默认值,page=1,size=10如果赋值按位置赋值,如果要跨越位置赋值size,则page定义为undefined则使用的是默认值如下图:javascript什么情况下是false,什么情况......
  • Java8/18
    Java流程控制1.用户交互ScannerScanner是Java5提供的一个工具类(java.until.Scanner),用来获取用户的输入,实现人机交互。基本语法:Scanners=newScanner(System.in);......
  • Java8/18
    Java方法1.方法概念eg:System.out.println();----System是一个系统类,out是System类的一个输出对象,println()就是一个方法什么是方法:Java方法是语句的集合,他们在一起执行......
  • Java static关键字
    在类中,使用static修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。注意:static......
  • JAVA Lambda表达式
    JAVALambda表达式函数式在数学中,函数就是有输入量,输出量的一套计算方案,也就是拿数据做操作面向对象思想强调“必须通过对象形式来做事情”函数式思想则尽量忽略......
  • 电信l1研发工程师 --- java题库
     编程题目1,严格按照题目提示编程。比如定义一个公共类Main和静态方法mainpublicclassMain{ publicstaticvoidmain(String[]args){ //这里开始写程序 }}2.不要带......