static方法

 1 静态方法只能调用静态属性或静态方法,调用非静态的会报错
 2 静态方法调用静态属性或方法时,使用的是  类名.静态属性  或  类名.静态方法
 3 静态方法调用非静态属性或方法时,使用的是  对象名.属性  或  对象名.方法
 4 若两个静态方法都在同一个类中,则静态方法调用静态方法,只需写静态方法名时即可。
 5
 6
 7 非静态的方法可以调用非静态的方法或静态方法
 8
 9
10 静态的属性和方法跟对象是无关的,是整个类所共享的
11 非静态的属性和方法跟对象是有关的,是对象专有的
12 1
13 1
14 1
15 1
16 1
17
18 1
19 1
20 1
21 1
22 1
23 1
24 1
时间: 2024-10-13 12:21:30

static方法的相关文章

java——多线程——单例模式的static方法和非static方法是否是线程安全的?

单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static方法不是线程安全的,那么不会因为这个类使用了单例模式,而变的安全. 闲话休说,看代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class TestSingl

JAVA Static方法与单例模式的理解

近期用sonar測评代码质量的时候,发现一个问题,project中一些util类,曾经写的static方法都提示最好用单例的方式进行改正. 为此,我细致想了想,发现还是非常有道理的.这里谈谈我个人对static方法与单例模式的理解. 所谓单例模式,我不做过多解释,推荐java设计模式之禅这本书,好好理解一下. 这里我谈谈两种写法: 曾经一些公共的类,我不假思索,习惯依照例如以下写法去写: public class DateUtil { public final static String DAT

Java基础复习(1) 为什么在java中我们要将main定义为一个static方法?

2015-10-20 以前学习java知识,只是跟着用到的代码跳着学了些,学的不全还错漏成片……恩,好惨! 思来想去,是必须要好好复习加整理下,不然写出来的东西真没法读了.所以,就从今儿起一点一点的啃下去吧. 回头创建了Class文件,又看到了熟悉的main函数……然后,有了标题的问题.那么,今天就回顾这个问题吧. 1 public class Review_p2 { 2 public static void main(String[] args) { 3 byte b = 3; 4 5 byt

static方法和非static方法的区别

●生命周期(Lifecycle):静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭.非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用.不会常驻内存,当实例对象被JVM 回收之后,也跟着消失. ● 在内存中存储位置静态方法和静态变量创建后始终使用同一块内存,是连续的.非静态方法会存在于内存的多个地方,是离散的.

java什么时候声明static方法

1.经常用到的方法,可以声明为static,这样省去了每次new对象的内存空间,因为非static方法,需要new对象才能调用此方法.但因此也产生多线程访问线程安全问题 比如: 2.当一个方法或者变量需要在类加载器加载类的时候,就需要初始化时,声明为static.Static变量在项目启动时就分配内存,直到程序结束释放内存.static和const变量在项目启动时就已经分配内存了,而且方法调用之后也不会被释放. 3.声明为static方法后,内存中就只有一份数据了.所以就要注意线程安全问题,就需

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

PHP类的静态(static)方法和静态(static)变量使用介绍,学习php的朋友可以看下 在php中,访问类的方法/变量有两种方法: 1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问. 2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以.但是有前提条件: A. 如果是变量,需要该变量可访问. B. 如果是方法,除了该方法可访

JVM学习03_new对象的内存图讲解,以及引出static方法(转)

目录 -=-讲解对象创建过程中,-=-堆内存和栈内存的情况 -=-构造函数对类对象的成员变量的初始化过程 -=-构造函数出栈 -=-类的方法在不访问类对象的成员变量时造成的内存资源浪费怎么解决? -=-引出static方法 扯淡 --明确概念: -=-类:是对现实事物的抽象描述:举例:人,有年龄,姓名,高矮胖瘦等特征:有吃喝睡等行为动作:现实中的人由特征和行为组成{思想这种东东暂时还是不考虑吧} -=-怎么判别一个类里面时候需要有主函数mian():看这个类是否需要独立运行 -=-描述事物的类有

synchronized 修饰static方法

•1.依靠对象锁锁定 初始化一个对象时,自动有一个 对象锁. synchronized {普通方法}依靠对象锁工作,多线程访问synchronized方法,一旦某个进程抢得锁之后,其他的进程只有排队对待. synchronized void method{}功能上,等效于: void method{ synchronized(this) { ... } } •2.针对每个类,也有一个锁(作为类的Class对象的一部分), 所以synchronized static方法可以在类范围内防止对stat

JVM学习03_new对象的内存图讲解,以及引出static方法

目录 -=-讲解对象创建过程中,-=-堆内存和栈内存的情况 -=-构造函数对类对象的成员变量的初始化过程 -=-构造函数出栈 -=-类的方法在不访问类对象的成员变量时造成的内存资源浪费怎么解决? -=-引出static方法 扯淡 --明确概念: -=-类:是对现实事物的抽象描述:举例:人,有年龄,姓名,高矮胖瘦等特征:有吃喝睡等行为动作:现实中的人由特征和行为组成{思想这种东东暂时还是不考虑吧} -=-怎么判别一个类里面时候需要有主函数mian():看这个类是否需要独立运行 -=-描述事物的类有

Java语言中synchronized 修饰在 static方法和 非static方法的区别(转)

synchronized锁住的是对象,当初始化对象的时候,JVM在对象初始化完成之前会调用方法外面的语句块,这个时候对象还不存在,所以就不存在锁了. 那么,在static方法和非static方法前面加synchronized到底有什么不同呢? 大家都知道,static的方法属于类方法,它属于这个Class(注意:这里的Class不是指Class的某个具体对象),那么static获取到的锁,就是当前调用这个方法的对象所属的类(Class,而不再是由这个Class产生的某个具体对象了).而非stat