关于java中static详解

【Java基础知识 33】Java 中的 static 关键字详解 在 JVM 加载一个类的时候,若该类存在 static 修饰的成员变量和成员方法,则会为这些成员变量和成员方法在固定的位置开辟一个固定大小的内存区域,有了这些“固定”的特性,那么 JVM 就可以非常方便地访问他们。............... 阅读详情

关于java中static详解

我们接触static的时候不是在学习面向对象的时候接触的,是在学习方法的时候就有过接触,我们之前对static的了解只是静态的修饰,本篇文章我们对static这个修饰符做一个详细的理解😀。

  • static 如果在属性上,叫做静态属性。
  • static 如果在方法上,叫做静态方法。

一、static静态属性

1、我们来新建一个软件包,创建一个学生类Student类。

package oop.Demo09;

public class Student
{
    private static int age;//静态属性
    private double score;//非静态属性
}

2、我们在这个类里面,定义一个main方法(psvm)

package oop.Demo09;

public class Student
{
    private static int age;//静态属性
    private double score;//非静态属性

    public static void main(String[] args) {
        Student student = new Student();
        int age1 = student.age;
        System.out.println(Student.age);//通过类调用,叫做类变量
        System.out.println(student.age);//通过对象调用
    }
}

3、如果我们用类Student,直接调用score,编译器会报错,因为非静态的类不可以直接调用。

4、我们如果要用很多类,去操作属性,就会用到static,我们会在后面的多线程详细说明类直接调用属性😎。

二、static静态方法

package oop.Demo09;

public class Student
{
    private static int age;//静态属性
    private double score;//非静态属性
    public void run()//静态方法
    {
        System.out.println("run");
    }
    public static void go()//非静态方法
    {
        System.out.println("go");
    }
    public static void main(String[] args) {
        //如果我们想调用run,需要实例化
        Student student = new Student();
        student.run();
        //如果我们想调用go,可以直接类调用
        Student.go();
        //因为go在当前的类里面,也可以直接调用
        go();
    }
}

因为静态方法,是跟着这个类一起加载的,加载Student的时候,就有go方法了。

三、静态代码块

package oop.Demo09;

public class Person 
{
    {
        //代码块(匿名代码块)
    }
    static
    {
    	//静态代码块(静态代码块)
    }
}

静态代码块,用于加载一些初始化的数据,类加载的时候直接执行,永久只执行一次。

1、我们在代码块,静态代码块中都写一行代码,并且写一个构造器ALT+INS

package oop.Demo09;

public class Person
{
    {
        System.out.println("匿名代码块");
    }
    static
    {
        System.out.println("静态代码块");
    }

    public Person()
    {
        
    }
    public static void main(String[] args) 
    {
        Person person = new Person();
    }
}

2、我们定义一个main方法,来看一下这几样东西的加载顺序,我们执行一下代码输出一下结果。

静态代码块
匿名代码块
构造方法

我们可以看到,先执行了static代码块,然后执行了匿名代码块,最后执行了构造方法,我们再来new一下Person。

package oop.Demo09;

public class Person
{
    {
        System.out.println("匿名代码块");
    }
    static
    {
        System.out.println("静态代码块");
    }

    public Person()
    {
        
    }
    public static void main(String[] args) 
    {
        Person person = new Person();
        System.out.println("===========");
        Person person = new Person();
    }
}
静态代码块
匿名代码块
构造方法
===========
匿名代码块
构造方法

我们可以看到,静态代码块不执行了,执行的是匿名代码块和构造,这就是我们上面说的,静态代码块只执行一次。

  • 匿名代码块:赋初始值。

四、静态导入包

1、我们再创建一个test类。

package oop.Demo09;

public class Test {
    public static void main(String[] args) {
        System.out.println(Math.random());//数学工具类返回随机数的方法
    }
}

我们执行以下代码,第一次返回。

0.017777263064599036

我们执行以下代码,第二次返回。

0.780661495903694

2、我们不想每次都写出Math,就可以提前导入😉

package oop.Demo09;
import static java.lang.Math.random;//静态导入包
public class Test {
    public static void main(String[] args) {
        System.out.println(random());
    }
}

3、我们也可以导入PI。

package oop.Demo09;
import static java.lang.Math.random;//静态导入包
import static java.lang.Math.PI;//静态导入包
public class Test {
    public static void main(String[] args) {
        System.out.println(random());
        System.out.println(PI);
    }
}

4、我们Ctrl+左键 ,点击进入Math类,会发现Math类是final修饰的,常量修饰就不会有子类了,不会被继承。

public final class Math
  • final以后,断子绝孙!🤣
用友U8自定义按钮开发:从基础配置到实战业务集成 本文详细介绍了用友U8自定义按钮开发的完整流程,从基础配置到实战业务集成。通过实际案例演示如何在U8系统中添加和替换功能按钮,包括数据库配置、SQL脚本编写和VB组件开发等关键技术点,帮助企业用户实现业务场景的深度定制。 阅读详情

相关推荐

Fluent温度超限调试:从能量方程到网格优化的实战指南

本文深入解析Fluent中温度超限问题的诊断与解决方法,从能量方程机制到网格优化策略,提供实战指南。通过分析温度与焓的换算关系,探讨典型场景如能量方程发散、局部网格质量差等,并给出五步调试法及高级命令应用,帮助工程师有效解决温度计算异常问题。

weixin_29045585的博客 530

java中static的用法

java中static关键字的用法和注意事项 1.static的作用范围及用法 2.static 的应用—单例模式 3.static注意事项总结

虽然但是 2万+

光电振荡器(OEO):从原理到应用,解锁高频微波信号新纪元

本文深入解析了光电振荡器(OEO)的核心原理与前沿应用。OEO通过巧妙的光-电-光转换机制,利用光学谐振腔产生高频、高纯度、低相位噪声的微波信号,有效突破了传统电子电路的频率瓶颈。文章详细拆解了其工作流程,并探讨了在雷达系统、高速光通信及精密测量等领域的硬核应用价值。

weixin_29231027的博客 365

Java 中的 static:静态变量、静态方法,一切都在掌握中

本文将深入研究 Java 中的 static 关键字,探讨其在类中的各种用途。从静态方法到静态变量,我们将详细解释 static 的工作原理,并提供大量示例,以帮助读者理解这一关键字的用法和局限性。

todoitbo的博客 3万+

【自动驾驶端到端5:VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning】

从大规模人类驾驶演示中学习类人驾驶策略是有希望的。但是,规划的不确定性使得从驾驶演示中提取驾驶知识是有挑战性的。从统计学习的角度来看,动作(包括实际和速度)是高度随机的,受许多无法建模的潜在因素影响。

weixin_40000560的博客 1404

【AI大模型应用开发】【LangChain系列】实战案例6:利用大模型进行文本总结的方法探索,文本Token超限怎么办?

假设有一组文档(PDF、Notion页面、客户问题等),你想要总结内容。可以利用大模型来帮你。今天来系统看下利用大模型来对文本进行总结的方法,以LangChain的使用为例。

同学小张的博客 3749

Java中static关键字的五种使用方法

static关键字的四种用法: 1、修饰成员变量 2、修饰成员方法 3、修饰代码块 4、修饰内部类 5、静态导包 修饰成员变量 注意: 首先声明一下,这里所修饰的是成员变量,而不是局部变量,局部变量是不允许被static修饰的。(了解成员变量和局部变量的概念和区别) 通常我们在开发过程中,用static去修饰一个成员变量,是为了声明一个全局变量,让它对该类的所有对象共享。或者配合final关键字声明一个全局的常量。被static所修饰的成员变量称为静态变量(或类变量),是属于类的范畴。没有被sta.

qq_58154602的博客 5410

WinCC实现定时存储数据至SQLServer

环境 Win10 WinCC V7.5 SQL Server 2016 运行结果 流程 WinCC变量 全局VB脚本 (我设置的是每2秒存一次,因此周期性触发器设置1秒)

skr? 3986

Java封装三:static-静态属性;static-静态方法;static-静态代码块;代码块中的变量应用;总结;

1.static-静态属性 (1)static代表“全局”或“静态”,可以理解为:方便在没有创建对象的情况下来进行某些操作。通常用于修饰成员变量和方法,也可以形成静态代码块。 实际应用中,可将需频繁操作、通用型信息设置、公共组件封装等操作设置为“静态” static修饰的类成员属性,是该类所有对象共享的区域; (2)类加载时产生,类彻底销毁时,才进行资源释放;其生命周期长,即资源占用周期长,要慎用。 (3)如下的一个示例: 2.static-静态方法 static修饰方...

小枯林的博客 2124

【AFAC2026金融智能-赛题二】2亿像素的面条图,我切了1000刀拼回完美Markdown

摘要: AFAC2026金融智能创新大赛的「复杂金融文档还原挑战」任务是将高分辨率金融文档截图转换为结构化Markdown文本。面对2亿像素的“面条图”和严格的计算限制(禁用主流大模型,仅允许调用FinixDoc-VL API且模型需小于10M),作者提出四层流水线解决方案: 图像预处理:通过文本行投影检测在行间隙处智能切图,避免截断文字; API调度:5路并发轮询请求,结合内容哈希缓存与指数退避重试机制优化调用效率; 后处理:采用最长公共子串匹配去除文本重叠,并设计表格对齐算法修复跨块表格; 结果输出:按

169

流体动力学仿真软件:SU2_(1).SU2简介与安装

SU2 是一个开源的计算流体动力学(CFD)和计算结构动力学(CSD)仿真软件,由斯坦福大学的航空航天系开发。它主要用于解决流体动力学问题,包括但不限于空气动力学、热力学、化学反应流等。SU2 的特点在于其高度的灵活性和可扩展性,使其成为科研和工业领域中非常受欢迎的工具。SU2 采用有限体积法(FVM)和有限元法(FEM)进行数值求解,支持多种物理模型和求解器,如 Euler 方程、Navier-Stokes 方程、RANS 方程等。

kkchenjj的博客 1312

Java static关键字详解

static关键字 在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。 这里要强调一下: static修饰的成员变量和方法,从属于类 普通变量和方法从属于对象 静态方法不能调用非静态成员,编译会报错 static关键字的用途 一句话描述就是:方便在没有创建对象的情况下进行调用(方法/变量)。 显然,被sta...

测试极客 15万+

【云原生技术】云计算与网络:容器服务(Tencent Kubernetes Engine,简称TKE)简介

基本概念主要特点应用场景技术实现容器服务(Tencent Kubernetes Engine,简称TKE)是腾讯云提供的一种托管的容器管理服务,基于开源的Kubernetes系统。TKE旨在简化容器的部署、管理和扩展,并且提供高性能、可靠性和安全性,适用于各种规模的企业和应用。

weixin_46453070的博客 2043

static详解java_Java的static详解

static ['stætɪk]n. 静电;静电干扰adj. 静态的;静电的;静力的在计算机上我们译为:静态的。在Java种根据它修饰对象不同,我们可以划分为1. static对象2. static方法3. static语句块TAG:static对象和static方法都属于类的成员,他们不属于类的任何实例,被所有实例共享。static语句块又叫“静态代码块”,当JVM加载类时会自动执行static...

weixin_35353285的博客 257

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java中static的作用详解_java中static作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何...

weixin_31967551的博客 9286

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java 中static 类详解_java中的static详解

java中的static详解如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量,例如:声明...

weixin_27012835的博客 2023

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java的static详解

static ['stætɪk] n. 静电;静电干扰 adj. 静态的;静电的;静力的 在计算机上我们译为:静态的。在Java种根据它修饰对象不同,我们可以划分为 1. static对象 2. static方法 3. static语句块 TAG:static对象和static方法都属于类的成员,他们不属于类的任何实例,被所有实例共享。stati...

weixin_30663471的博客 66

JAVA static详解

Static详解 public class Student { ​ private static double score; //静态变量 private int age; //非静态变量 ​ public void run (){ ​ } ​ public static void go(){ ​ } ​ public static void main(String[] args) { Student s1 = new Stude...

aixuexidexwz的博客 350

java static int a_java中static作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任...

weixin_32365089的博客 3259

Java中的static详解

1、摘要 static表示静态修饰符,在程序中任何变量都是在编译时由系统自动分配内存来存储的,而static就是指在编译后所分配的内存会一直存在,直到程序退出,内存才会释放这个空间。在Java程序里,不是static修饰的属性或方法都存在于对象空间,只有当你new出该对象时,系统才会为为对象空里的属性分配空间。但是用static修饰的成员是归属类空间的,可以通过 “ 类名.方法/属性 ” 进行直接...

长期更新自学笔记 500

static详解java_java中static作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任...

weixin_35723924的博客 108

java中static详解

static修饰类中的变量 static修饰变量使得该变量有了静态属性,又叫类属性。这个变量会被保存在全局数据区(方法区–所有对象共享的区域) 在调用过程中通过类名调用,无需实例化出对象。 static是不能修饰方法中的变量的,因为方法(无论静态方法还是普通方法)是定义在栈中的,栈上定义的变量都是局部变量,而且方法是依赖与对象而静态变量不依赖对象。这不是很矛盾嘛。所有Java中规定局static修...

坚持不懈做贡献 3055

Java static详解

static关键字 static 修饰的方法或变量,优先于对象执行,所以内存有会先有 static修饰的内容,后有对象的内容,因此,⼀个类里面 static修饰的不能访问非static修饰的成员或者方法,而非static修饰的可以访问static修饰的成员或者方法。 可以⽤来修饰类的成员方法、类的成员变量,还可以编写static静态代码块。 修饰变量就是类变量,修饰⽅法就是类方法,修饰代码块就是静态代码块。 类变量或者类方法,可以直接通过类名.方法名或者变量名进行调用,不用经过对象。 public clas

tjk12345的博客 206

Java中static的作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需...

麦子的博客 4万+

java static getclass_java中static详解

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所...

weixin_39835607的博客 264

java中static关键字详解

【摘要】 static关键字用于修饰成员变量和方法,使其成为类共享的静态成员。静态变量(如static int count)被所有对象共享,可通过类名(Person.count)直接访问;静态方法(如ArrayUtil.printArr())无需实例化即可调用,但不可直接访问非静态成员。工具类(如ArrayUtil)通常用private构造方法禁止实例化,仅通过静态方法提供功能。静态变量在JDK8+中存储于堆的Class对象内。注意事项:类体中不能单独写赋值语句,需通过静态代码块或方法内赋值;静态方法中不可

Wang1200120的博客 262
上一篇: 关于java的instanceof类型转换
下一篇: 关于java的抽象类
落满樱花的羊
博客等级 码龄5年 1021粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值