1、静态代码块:在方法区类加载的时候执行;如果一个类需要在加载的时候执行一段代码,可以在静态块中写入逻辑。代码块是自动执行的2、构造方法:在对象实例化的时候执行。3、静态方法:在类进行方法调用的时候执行。代码是被动调用执行的 它们在代码中具体的执行过程如下:对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看
转载 2023-06-18 12:19:10
973阅读
java面试题】java开发什么时候用到static变量(方法)一、什么时候用到static变量 1、静态变量: 当数据是对象特有的数据,必须由对象本身保存在对象中,就是非静态的。例如:张三李四都是姓名,姓名是属性,数据是值-》张三李四,值不一样不能共享,只能是对象特有数据 当数据是共享的,对象不需要修改,只需要使用,不用存储在对象中,就可以定义为静态的 2、静态函数: 该功能如果需要访问非静态
转载 8月前
195阅读
1、简单认为JAVA静态代码块在类被加载时就会自动执行  是错误的class MyClass1 { static {//静态块 System.out.println("static block "); } } public class Main { Class[] classArray = { MyClass1.cla
一、概述        我们在谈到java里面static代码块的执行时机的时候,我们都知道是它在类被加载的时候被执行,这种说法没有毛病,但是有误区,因为一个类的加载过程并不是一步就可以完成的。        如果从大的整体上来说这句话没有
转载 2023-09-02 07:11:40
285阅读
1.从代码层面理解:静态的,就是被static修饰符修饰的内容,常见的有:静态变量(又称全局变量),静态方法,静态内部类,静态代码块(局部变量也是静态的,但不需static修饰)等。2.从概念层面理解:静态的内容(属性,方法*下文同步)基于类而存在,非静态的内容基于对象而存在。也就是说静态内容是一类事物(即基于该类的所有对象)的共有特征,而非静态内容每个对象的独有特征。(类:通俗的理解,类似于“物
我们知道,一个类的方法从调用方式上可以分为“静态方法”与“非静态方法”(实例方法)。在.net框架中,也有很多这种公共静态方法。现在我想讨论一下,一个类为什么要提供静态方法以及在什么时候应该提供静态方法。静态方法与非静态方法最明显的区别就是如果某个方法是公共静态的,那么可以直接 通过类名.方法名的方法来调用,而公共实例方法则需要事先实例化对象,然后才能调用。很多人认为静态方法来速度上、在内存占用比
前言:  在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下。一、学习前千的疑问:  稍微了解Java虚拟机内的加载过程的步骤,都很清楚,一个类的静态资源、一些常量都是在类加载的时候就被加载金内存中分配空间了,所以我一开始理所当然的以为静态
我们知道java中类的生命周期为装载、连接、初始化、使用和卸载五个过程,如下图所示:1.加载我们编写一个java类的代码,经过编译之后生成一个后缀名为.class的文件,java虚拟机就能识别这种文件。java的生命周期就是class文件从加载到消亡的过程。 关于加载,其实,就是将源文件的class文件找到类的信息将其加载到方法区中,然后在堆区中实例化一个java.lang.Class对象,作为方
1. Java中为什么需要静态变量?答:每当我们希望为一个类的所有对象拥有一个公共属性时,我们就使用一个类级别的变量,即静态变量。在类加载时,此变量仅在内存中加载一次。 由于它不是在Java中按对象定义的,因此可以节省内存。2. 为什么Java创建静态变量不是一个好习惯?答:静态变量是类的所有对象共有的。 如果创建了新对象,则无需测试静态变量的值。 使用静态变量的任何代码都可以处于任何状态。 它
一, 静态变量在类加载时被加载加载指的是将类的class文件读入到内存,类加载器会读取class文件,并为之创建一个java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象。二,静态变量在类卸载时被销毁当Sample类被加载、连接和初始化后,它的生命周期就开始了。当代表Sample类的Class对象不再被引用,即不可触及时,Clas
# Java中工厂、池和异步的使用场景 在Java编程中,我们经常会遇到需要使用工厂、池和异步等概念来提高程序的性能和可维护性。但是,很多开发者对于这些概念的具体应用场景和使用方法并不清楚。在本文中,我们将详细介绍Java中工厂、池和异步的使用场景,并提供相应的代码示例。 ## 工厂(Factory) 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。当我们需要根据一些条件来创建
原创 2月前
6阅读
1、定义 队列是一种特殊的线性表,遵循的原则就是 “ 先入先出 ” 。在我们日常使用中,经常会用来并发操作数 据。在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列通常有两种方 式:一种是使用阻塞队列,另一种是使用线程同步锁 存储结构 类似栈有顺序队和链式队两种。 我们可以围绕栈的 4 个元素来实现队列: 2 状态:是否队空;是否队满。
目录1.static:静态的2.static可以用来修饰:属性、方法、代码块、内部类3.使用static修饰属性:静态变量(或类变量)4.使用static修饰方法:静态方法4.1 Java静态方法能否被重写5.static注意点:6.开发中的使用:练习题: 1.static:静态的2.static可以用来修饰:属性、方法、代码块、内部类3.使用static修饰属性:静态变量(或类变量)3.1
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有5种情况必须立即对类进行初始化:第一种:遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始
文章目录队列结构图队列种类划分阻塞 / 非阻塞 :`阻塞队列``非阻塞队列`总结:有界/无界`有界``无界`单向 / 双向链表`单向链表``双向链表`Queue(队列)接口方法:增删查(抛异常)增删查(返回特殊值)Deque(双端队列)接口方法增删查(抛异常)`First`Element (Head)`Last`Element (Tail)增删查(返回特殊值)`First`Element (He
我们知道,一个类的方法从调用方式上可以分为“静态方法”与“非静态方法”(实例方法)。在.net框架中,也有很多这种公共静态方法。现在我想讨论一下,一个类为什么要提供静态方法以及在什么时候应该提供静态方法。静态方法与非静态方法最明显的区别就是如果某个方法是公共静态的,那么可以直接 通过类名.方法名的方法来调用,而公共实例方法则需要事先实例化对象,然后才能调用。很多人认为静态方法来速度上、在内存占用比
# Java静态什么时候运行 在Java中,静态类是一种特殊的类,它具有一些特殊的行为和用途。本文将解释静态类的概念以及它们何时运行,并通过代码示例来说明。 ## 静态类的概念 在Java中,静态类是指被声明为`static`关键字的类。静态类不需要实例化就可以访问其成员,可以直接通过类名来调用静态方法和访问静态变量。静态类主要用于工具类、常量类或者单例模式中。 ## 静态类的运行时机
# Java 静态方法的执行时机与实现 作为一名刚入行的开发者,你可能对Java中的静态方法感到好奇。静态方法是属于类的,而不是类的实例。这意味着你不需要创建类的实例就可以调用它。本文将指导你理解静态方法的执行时机,并展示如何实现一个简单的静态方法。 ## 静态方法的执行流程 首先,让我们通过一个表格来了解静态方法的执行流程: | 步骤 | 描述
原创 1月前
6阅读
首先,让我们来讨论下为什么要用集合类?数组是很常用的一种的数据结构,我们用它可以满足很多的功能,但是,有时我们会遇到如下这样的问题:1、我们需要该容器的长度是不确定的。2、我们需要它能自动排序。3、我们需要存储以键值对方式存在的数据。如果遇到上述的情况,数组是很难满足需求的,接下来本章将介绍另一种与数组类似的数据结构—集合类,集合类在Java中有很重要的意义,保存临时数据,管理对象,泛型,Web框
转载 8月前
28阅读
# Java中void方法的使用Java编程中,void方法是一种特殊的方法类型,它不返回任何值。在编写Java程序时,我们通常需要根据具体的需求来决定何时使用void方法和何时使用其他类型的方法。本文将介绍何时适合使用void方法以及何时使用其他类型的方法,并通过代码示例来说明。 ## 什么时候适合使用void方法 在Java中,void方法通常用于执行一些操作而不需要返回任何值的情况
原创 3月前
40阅读
  • 1
  • 2
  • 3
  • 4
  • 5