java 堆、栈、方法区堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 3、new出来的对象,有初始值。栈区: 1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在
转载
2023-10-19 11:49:33
14阅读
先看最终结论:1、父类静态变量和静态代码块(先声明的先执行);2、子类静态变量和静态代
原创
2022-07-03 01:23:35
10000+阅读
# Java 静态方法加载顺序
在Java中,静态方法是属于类的方法,而不是属于类的实例。静态方法在类加载的过程中被加载,因此它们可以在类被实例化之前就被调用。本文将介绍Java静态方法的加载顺序,并通过代码示例来说明。
## 静态方法加载顺序
在了解Java静态方法加载顺序之前,我们首先需要了解类的加载过程。当Java程序启动时,JVM会首先加载类的字节码文件,并将其存储在内存中。在这个加
示范类StaticTest.javapublic class StaticTest { {//只有当创建对象的时候执行 System.out.println("H1"); } static {//加载该类就执行,仅一次加载 程序执行中一直使用 System.out.println("H2"); } StaticTest...
原创
2021-07-09 09:50:12
251阅读
类对象的初始
原创
2022-07-04 06:27:54
10000+阅读
面试官问:“class A和class B,其中class A中有静态方法和构造函数,class B中也有静态方法和构造函数,class A为父类,class B为子类,请问他们的加载顺序如何?”一、对于有继承关系的加载顺序关于关键字static,大家 都知道它是静态的,相当于一个全局变量,也就是这个属性或者方法是可以通过类来访问,当class文件被加载进内存,开始初始化的时候,被static修饰
转载
2023-07-18 17:06:17
225阅读
一、什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new StaticCode();2.使用类中的静态成员:StaticCode.num=9; StaticCode.show();3.在命令行中运行:java StaticCodeDemo二、类所有内容加载顺序和内存中的存放位置:利用语句进行分析。1.Person p=new Person("zhangsan",20);该句话
转载
2022-12-22 00:47:41
163阅读
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方
转载
2023-06-18 12:18:55
47阅读
java中静态代码块的用法 static用法详解
(一)java 静态代码块 静态方法区别 一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用 比如main方法就必须是静态的
转载
2023-09-08 22:46:31
54阅读
Java的静态加载类和动态加载类两个概念,想必有不少的程序员一直是一知半解,不知道为什么动态加载类功能的存在,其中一大部分的原因是现在开发工具导致的,如Eclipse、Idea等等,自动编译,而我当初学程序是从使用Editplus开始的,使用Javac编译和Java运行,编译和运行在时间上有了更大的跨度。以下代码是静态加载类的实例:package com.xq.core.dynamic;
pub
(一)java 静态代码块 静态方法区别
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用
比如main方法就必须是静态的 这是程序入口
两者的区别就
类加载的顺序
类加载的顺序: 1.加载静态成员/代码块: 先递归地加载父类的静态成员/代码块(Object的最先);再依次加载到本类的静态成员。 同一个类里的静态成员/代码块,按写代码的顺序加载。 如果其间调用静态方法,则调用时会先运行静态方法,再继续加载。同一个类里调用静态方法时,可以不理会写代码的顺序。 调用父类的静态成员,可以像调用
转载
2023-07-09 23:23:23
104阅读
package com.fuzi.demo;
class SuperLei {
public static int a = 10;
public int b = 20;
static {
System.out.println("超类的静态代码块--获取静态参数a的值:" + a);
}
public SuperLei() {
总结:静态代码块总是最先执行。 非静态代码块跟非静态方法一样,跟对象有关。只不过非静态代码块在构造函数之前执行。 父类非静态代码块、构造函数执行完毕后(相当于父类对象初始化完成), 才开始执行子类的非静态代码块和构造函数。 相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,
原创
2022-03-30 15:55:54
1026阅读
一、java类的static块什么时候执行
如果了解JVM原理,我们可以知道,一个类的运行分为以下步骤:
1、装载;2、链接;3、初始化;4、初始化;5,实例化(创建新的实例)
实际上,static块的执行发生在“初始化”的阶段。初始化阶段,jvm主要完成对静态变量的初始化,静态块执行等工作。
下面我们看看执行static块的几种情况:
转载
2023-08-19 23:33:39
51阅读
static 是 java 语言中的关键字,意思是“静态的”,它可以用来修饰变量、方法、代码块等,修饰的变量叫做静态变量,修饰的方法叫做静态方法,修饰的代码块叫做静态代码块。static的作用就是用于区分成员变量、方法、内部类、初始化块这四种成员到底属于类本身还是属于实例。静态变量是成员变量的一种,静态变量存储在方法区中,则它在类加载时就会进行初始化,所以静态变量访问的时候不需要创建实例(对象),
转载
2023-06-24 23:26:56
46阅读
示例如下程序的运行结果是什么public class B {
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("构造块");
}
static
{
System.out.println("静态
结论: 基本上代码块分为三种:Static静态代码块、构造代码块、普通代码块代码块执行顺序:静态代码块——> 构造代码块 ——> 构造函数——> 普通代码块继承中代码块执行顺序:父类静态块——>子类静态块——>父类代码块——>父类构造器——>子类代码块——>子类构造器代码块的分类基本上代码块分为三种:Static静态代码块、构造代码块、普通代码块 代
转载
2023-08-16 21:52:09
68阅读
结论1(存在 new 实例对象): 父类静态属性代码块执行或者父类静态代码块(看代码的先后顺序)——> 子类静态代码块或者子类静态属性代码块(看代码的先后顺序)——> 父类普通代码块或者父类属性代码块(看代码的先后顺序)——>父类构造代码块——> 子类普通代码块或者子类属性代码块(看代码的先后顺序) ...
转载
2021-09-13 11:04:00
245阅读
2评论
(一)java 静态代码块 静态方法区别
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用
比如main方法就必须是静态的 这是程序
转载
2023-07-17 11:59:30
84阅读