首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java static修饰方法

一、static 修饰方法 1、与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。...例如: public class StaticMethod { //使用static关键字修饰静态方法 public static void print(){ System.out.println("i...= "23"; //使用static关键字修饰静态方法 public static void print(){ // 静态方法直接调用静态变量 System.out.println...如果希望在静态方法中调用非静态方法,可以通过创建类的对象,然后通过对象来访问非静态方法 例如: public class StaticMethod { //使用static关键字修饰静态方法 public...public class StaticMethod { //定义静态变量 static String age = "23"; //使用static关键字修饰静态方法

23720

static使用方法小结

static使用方法小结 statickeyword是C, C++中都存在的keyword, 它主要有三种使用方式, 当中前两种仅仅指在C语言中使用, 第三种在C++中使用(C,C++中详细细微操作不尽同样...(对于C++中的class对象例外, class的对象实例假设不初始化, 则会自己主动调用默认构造函数, 无论是否是static类型) 特点: static局部变量的”记忆性”与生存期的”全局性” 所谓...利用static的作用, 延长变量的生存期....二、外部静态变量/函数 在C中static有了另外一种含义:用来表示不能被其他文件訪问的全局变量和函数。, 但为了限制全局变量/函数的作用域, 函数或变量前加static使得函数成为静态函数。...注意此时, 对于外部(全局)变量, 不论是否有static限制, 它的存储区域都是在静态存储区, 生存期都是全局的. 此时的static仅仅是起作用域限制作用, 限定作用域在本模块(文件)内部.

28820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 中static和非static的区别(方法和变量)

    static修饰的变量在加载的时候先于main方法加载在内存中的数据共享区-------方法区,而非static的变量在加载的时候,是要创建变量才加载在堆内存中的。...一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。static变量值在方法区加载一次,而非static在创建对象时会加载很多次。...static方法和非static方法的区别 static修饰的方法也和static一样。先于main方法被加载到方法区,以便共享使用。...静态的static方法中不能使用this或者super关键字,因为static方法是先于对象创建之前就已经加载的方法,是属于类的方法,而this和super指向的是本类的对象或者父类的对象,非静态的方法是属于对象的...static方法可以用对象.方法名来调用,也可以用类名.方法名来调用。而非静态的方法只能创建对象后时调用。 static方法是加载一次,被所有的对象所共享。

    71330

    PHP类的静态(static)方法和静态(static)变量使用介绍

    在php中,访问类的方法/变量有两种方法: 1. 创建对象object = new Class(),然后使用”->”调用: 2....如果是方法,除了该方法可访问外,还需要满足: b1) 如果是静态方法,没有特殊条件; b2) 如果是非静态方法,需要该方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题...使用class::… 调用静态方法/变量,不需要执行构造函数创建对象; 3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。...然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢? 差异还是显然存在的,如下: 1....静态方法 静态方法可以直接使用class::… 来调用,而非静态方法需要满足一定限制条件才能使用class::.. 的方法调用,如之前所述

    4.2K10

    关键字static修饰属性、方法

    在Java中,关键字static可以修饰属性和方法,它表示这些属性和方法属于类而不是属于类的实例。也就是说,无论创建多少个对象,这些静态属性和方法的值和行为都是相同的。...static修饰属性当我们将一个属性声明为静态时,它就不再是属于对象的属性,而是属于类的属性。这意味着所有对象都可以共享这个属性的值,而且可以在不创建对象的情况下直接使用该属性。...在最后的使用示例中,我们直接使用类名调用了静态方法getCount(),来获取创建的Car对象的数量。static修饰方法当我们将一个方法声明为静态时,它就不再是属于对象的方法,而是属于类的方法。...这意味着我们可以在不创建对象的情况下直接使用该方法。静态方法在类被加载时就已经存在,可以直接使用。...下面是一个示例:public class Config { public static final String NAME; public static final int VERSION;

    22041

    细谈Java中使用static变量,方法

    问题引入 我们知道,一个类可以创建多个对象,每个对象中都有自己的成员,相互独立,但是假想有这样一种情况,我们希望所有的变量成员都共享一个成员 "static"关键字 Java中 “static” 修饰的成员或类成员...,它属于整个类,会被类的所有对象所共享 如何调用由"static"修饰的成员 有两种访问方法: 通过类名直接访问 通过类名创建的对象进行访问 static 修饰的变量为静态变量,在声明之初,系统就为它分配了内存...,但是为了避免出现未知的问题,还是小心为好 static还可以修饰方法?...static修饰的变量是静态变量,static修饰的方法是静态方法,静态方法又称之为类方法 我们一直写得main 函数就是一个静态方法,所以创建一个静态方法得时候,我们还是得通过类来调用这个静态方法。...return Demo.a + Demo.b; } public static void main(String[] args) { //调用静态方法 System.out.println

    49510

    详解php用static方法的原因

    静态方法不需要所在类被实例化就可以直接使用。 静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。...静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。 static全局变量和普通全局变量,static局部变量和普通局部变量,static函数与普通函数的区别?...如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。...因此还是建议: 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近1倍。...对于一个正常的php框架,里面的类和方法还是非常多的,如果我们能够做成静态方法,还是使用静态方法比较好,效率比较高。

    1K10

    为什么 main 方法是 public static void ?

    ---- 文章目录 1、为什么main方法是静态的(static) 2、为什么main方法是公有的(public) 3、为什么main方法没有返回值(Void) 4、总结 main 方法是我们学习Java...编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 的。...main 方法必须严格遵循它的语法规则,方法签名必须是 public static void,参数是字符串数组类型,如果是Java1.5及以后的版本还可以使用可变参数: public static void...main(String... args) 1、为什么main方法是静态的(static) 正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。...你可以声明main方法使用java1.5的可变参数的方式如: public static void main(String... args) 除了static、void、和public,你可以使用

    33620

    Java static 静态方法 并发(是否线程安全)

    public class TestUitl { public static User setName(User user,String name) { User u = user...; u.name = name; return u; } } 如上面的代码所示,在 setName 这个static方法里面u...首先说明一点,方法属于一个程序块,只有当别人调用它时才会调到内存里面去执行,也就是说当前有多少个线程在执行就有多少组方法块里的局部变量 (当然无论是静态方法还是实例方法,在内存中都只有一份代码,也就是只占用一份内存空间...答案不取决与是否为静态方法,而在于传进来的user,如果传进来的user属于共享变量或者是同一个User变量,那u也不是线程安全的,如果user都是独立变量,那u也就不用担心线程安全的问题。...在web开发中,我们的servlet,struts2都是属于线程安全的,所以我们在使用静态方法处理业务时是不用担心并发的问题

    4.5K60

    Java之面向对象概述,类,构造方法static,主方法,对象

    四、static静态修饰符 由static修饰的变量,常量,和方法被称作静态变量、静态常量、和静态方法。他们都存放在内存的“”静态区”中,这些变量和方法有独立的生存周期。...在Java中,我们把共享的变量用static修饰,该变量就是静态变量。...静态常量 用final static修饰一个成员变量,这个成员变量就会变成一个静态常量。...public class Staticd { public static void show(){ System.out.println("这是静态方法show()");...静态代码块 在类中的成员方法之外,用static修饰代码区域可以称之为静态代码块,定义一块静态代码块,可以完成类的初始化操作,在类声明时就会运行。

    1K50

    Java静态方法中引用非静态方法、变量报错处理:Non-static method ‘xxx()‘ cannot be referenced from a static context

    【情况一】:在静态方法中引用了一个非静态方法 报错: Non-static method 'xxx()' cannot be referenced from a static context 形如:...void staticMethod() { // 在静态方法中引用非静态方法,会导致错误 nonStaticMethod(); // 错误:Non-static method...'nonStaticMethod()' cannot be referenced from a static context } } 解决这个问题的方法是,要么将非静态方法改为静态方法,或者在静态方法内部创建实例对象后调用非静态方法...【情况二】:在静态方法中引用了一个实例变量 报错: Non-static variable 'instanceVariable' cannot be referenced from a static...'instanceVariable' cannot be referenced from a static context } } 解决这个问题的方法是,要么将实例变量改为静态变量,或者在静态方法内部创建实例对象后访问实例变量

    3.4K10

    static示例

    求生成对象的个数 1 class A{ 2 private int i; 3 private static int cnt = 0; 4 //此处用static修饰,让...} 9 10 //无参构造方法和有参构造方法在new对象时必须执行并且只能执行其中一个 11 12 public A(int i){//new对象并且传值时会调用有参构造方法...指向a本身 5 //此处的static不能省略,下面的getA方法将会访问a对象(属性) 6 //不然静态方法将不能访问非静态成员 7 8 private...A(){ //将构造方法设置为私有,这样就只能在本类里面创建对象 9 } 10 11 public static A getA(){ 12 //返回值类型是A,是一个地址类型...,对象a的地址 13 //在其他类调用getA()方法,可以得到a对象 14 //注意此方法必须设置为static静态的,其他类可以不创建对象就能访问 15 return

    90610

    抽象方法不能为private,final或者static,为什么

    4)抽象方法不能为private,final或者static, native, synchrozied为什么?...【新手可忽略不影响继续学习】马克-to-win:抽象方法的最实质的意义在于被未来的子类覆盖实现掉。它自己是个空方法。private的实质意义在于本类其他方法调用它。...有关static,我们上一章讲过: 马克-to-win:static方法是静态方法,可以直接被类名所调用。而abstract方法是无方法体的方法,直接调用毫无意义,所以矛盾了。...顺便说一下,抽象方法也不能为native和synchronized,native说明此方法正在用其他语言(c)编写,此方法是c写的。你java这里却声明说方法是空的,这不符合逻辑。...synchronized说明这个方法和另外一个实在做事的方法不能同时执行。而现在你自己却是一个空方法,这也毫无意义。

    46020

    static静态方法内调用Spring(依赖注入)的bean

    前言:一般需要在static方法里调用注入进来的service,因为是静态方法,所以必须声明该service也必须是static的,这时候你会发现注入不进来,会报null指针,这个时候需要使用 @PostConstruct...@PostConstruct 和@PreDestroy 注解:要定义安装和拆卸一个bean,我们只是声明了初始化方法和/或销毁,方法的参数。...在init-method属性指定一个方法,是被称为bean上后立即实例化。同样,销毁规定了被称为bean被从容器中取出之前的方法。...类上需要用@Component //解决static方法 调用注入对象的方法 @Autowired private ConfigDaoImpl configDaoImpl;...static方法 调用注入对象的方法 private static UserService userService; @Autowired public void setUserService

    8.4K21
    领券