首页 > 编程语言 >Java基础-学习笔记08

Java基础-学习笔记08

时间:2024-08-12 15:38:14浏览次数:9  
标签:Java 变量 静态 08 笔记 访问 static 方法 加载

01 类变量、类方法、main方法、代码块

类变量(静态变量)

类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。

关于静态变量在内存中的存放地址,有两种说法,①认为静态变量存放在堆中,②认为静态变量存放在方法区中的方法域中。
不管哪种说法,不影响类变量作为类对象的共享属性的特点。类变量是随着类的加载而创建,所以即使没有创建对象实例也可以访问。
实际上,JDK7版本以前是②存放在方法区里的,JDK以上的版本则是①存放在堆里的。在进行类加载时,会在堆里生成一个对应的class对象(原型对象),在这个对象的最后会加载类变量。

定义语法:

访问修饰符 static 数据类型 变量名;
static 访问修饰符 数据类型 变量名;

访问语法:

类名.类变量名
对象名.类变量名 //静态变量的访问修饰符发访问权限,和普通属性一样

使用细节:

  1. 什么时候使用类变量
    当我们需要让某个类的所有对象都共享一个变量时,就可以考虑使用类变量(静态变量):比如:定义学生类,统计所有学生共交多少钱。Student(name, static fee)
  2. 类变量与实例变量(普通属性)的区别
    类变量是该类的所有对象共享的,而实例变量是每个对象独享的。
  3. 加上 static 称为类变量或静态变量,否则称为实例变量/普通变量/非静态变量。
  4. 类变量可以通过 类名.类变量名 或者 对象名.类变量名 来访问,前提是满足访问修饰符的访问权限和范围。
  5. 类变量的生命周期随类的加载开始,随类消亡而销毁。

类方法(静态方法)

形式:

访问修饰符 static 数据返回类型 方法名(){}
static 访问修饰符 数据返回类型 方法名(){}

类方法的调用:

类名.类方法名
对象名.类方法名 //前提是满足访问修饰符的访问权限和范围

使用细节:

  1. 当方法中不涉及到任何和对象相关的成员,则可以将方法设计成静态方法,提高开发效率。比如,工具类中的方法utils,这样我们不需要创建对象就可以使用了。
  2. 类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区。类方法中无 this 参数,普通方法中隐含着 this 的参数。
  3. 普通方法和对象有关,需要通过对象名调用,不能通过类名调用。
  4. 类方法中不允许使用和对象有关的关键字,比如 this 和super,普通方法可以。
  5. 类方法(静态方法)中只能访问静态变量或静态方法。普通成员方法,遵守访问权限的前提下,既可以访问非静态成员,也可以访问静态成员。

理解 main 方法

解释 main 方法的形式:public static void main(String[] args){}

  1. main方法是虚拟机在调用
  2. Java虚拟机需要调用类的 main() 方法,所以该方法的访问权限必须是public
  3. Java虚拟机在执行main() 方法时不必创建对象,所以该方法必须是 static
  4. 该方法接收 String 类型的数组参数,该数组中保存执行Java命令时传递给所运行的类的参数,接收参数
  5. Java执行的程序 参数1 参数2 参数3
    Eg:

IDEA传参数:edit configurations

代码块

代码块又称为初始化块,,属于类中的成员(即是类的一部分),类似于方法,将逻辑语句封装在方法体中,通过 {} 包围起来
但和方法不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象或类显示调用,而是加载类时,或创建对象时隐式调用。
语法:

[修饰符]
{
  代码
};

说明:

  1. 修饰符可选,只能选static或者不选
  2. 使用static修饰的叫静态代码块,没有static修饰的叫普通代码块
  3. 结尾 ; 可写可不写
    理解:
  4. 相当于另外一种形式的构造器(对构造器的补充机制),可以做初始化操作
  5. 当多个构造器中都有重复的语句,可以抽取到初始化块中,提高代码的重用性
  6. 代码块的执行顺序,优先于构造器

使用细节:

  1. static代码块,随着类的加载而执行,只会执行一次。如果是普通代码块,每创建一个对象,就执行一次。
  2. 类被加载的3种情况
    ① 创建对象实例时(new)
    ② 创建子类对象实例,父类也会被加载
    ③ 使用类的静态成员时(静态属性、静态方法)

创建对象时,先进行类的加载。先加载父类,再加载子类。(加载静态属性、执行静态代码块)。然后执行构造器,执行构造器时,会默认执行super();

标签:Java,变量,静态,08,笔记,访问,static,方法,加载
From: https://www.cnblogs.com/97gogo/p/18344591

相关文章

  • JDK自带命令:深入理解Java程序的运行机制
    JDK(JavaDevelopmentKit)是Java开发和运行环境的核心,它提供了丰富的命令和工具来帮助我们更好地理解和控制Java程序的运行。本文将详细介绍JDK自带的一些关键命令,以及它们的详细参数和执行结果。1.jps(JavaVirtualMachineProcessStatusTool)jps命令用于列出正在运行的......
  • JAVA中的File类
    File类概述`File`类提供了一系列的方法来操作文件和目录。它不直接访问文件内容本身,而是操作文件系统的属性,如文件大小、最后修改时间、文件类型(普通文件、目录等)等。需要注意的是,`File`对象本身只是文件路径的抽象表示,只有当通过`File`对象调用相关方法时,才会与底层文件系统......
  • 三十分钟入门基础Go(Java小子版)
    前言Go语言定义Go(又称Golang)是Google的RobertGriesemer,RobPike及KenThompson开发的一种静态、强类型、编译型语言。Go语言语法与C相近,但功能上有:内存安全,GC,结构形态及CSP-style并发计算。适用范围本篇文章适用于学习过其他面向对象语言(Java、Php),但没有学过......
  • leetcode刷题笔记8.5-8.9
    刷题笔记8.5-8.9刷题顺序依照labuladong算法小抄两数之和(8.5)初始化数组:int[]num=newint<length>;int[]num={1,2,3,4};其中数组名代表指针变量,故不可以直接将数组名a赋值给数组名b错误的复制:int[]b=a;数组元素复制:假设数组nums的元素复制到numsSort中:int[]......
  • 科普文:Java基础系列之【你必须知道的框架基础-代理详解】
     概叙科普文:Java基础系列之【你必须知道的框架基础-反射/代理】-CSDN博客前面我们详细讲解了反射,反射作用在类加载后创建对象这个期间,再来看看代理。反射是基础,通过反射获取对象及其属性和操作;代理则可以将反射出来的类包装成目标类,然后构建一个代理类,通过代理类来操控目......
  • 科普文:Java基础系列之【你必须知道的框架基础-反射/代理】
    前言科普文:Java基础系列之【Java动态代理的应用场景和基本原理】-CSDN博客科普文:Java基础系列之【字节码增强技术探索】-CSDN博客科普文:Java基础系列之【字节码应用案例Fastjson原理和实操说明】-CSDN博客科普文:Java基础系列之【JVM字节码操作ASM框架概叙】-CSDN博客......
  • Rounding necessary错误解决Java的BigDecimal除法的
    出现Roundingnecessary错误原因是使用了BigDecimal的setScale方法导致。错误原因:setScale方法保留小数位数小于实际位数并且未指定roundingMode参数即报错。如下代码:BigDecimalrs=newBigDecimal("2057.9200");rs.setScale(2);上述代码实际数值是2057.9200是4位小......
  • 【2024-08-08】连岳摘抄
    23:59假如你想快乐一小时,就去睡个午觉;快乐一天,就去钓鱼;快乐一个月,就去结婚;快乐一整年,就继承一笔遗产;快乐一辈子,就去帮助别人。                                              ......
  • 最新Java面试题及答案(500道)
    第一章-Java基础篇Object中有哪些方法   难度系数:⭐protectedObjectclone()--->创建并返回此对象的一个副本。booleanequals(Objectobj)--->指示某个其他对象是否与此对象“相等protectedvoidfinalize()--->当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃......
  • 【2024-08-09】连岳摘抄
    23:59说别人错很容易,但重要的是自己怎么做才是对的。                                                 ——汪成为确实,婚姻需要磨合。如切如磋者,道学也,如琢如磨者,自......