首页 > static关键字和内存使用

static关键字和内存使用

1 static静态的,用来修饰属性,方法,代码块,内部类

2 当其中一个变量对此属性进行修改,会导致其他对象对此属性的一个调用

vs 实例变量:对象各有一套副本

3 静态变量和方法随着类的加载而加载,可以直接用类调用或对象调用,因为类加载早于对象。

4. static方法(类方法)中不能调用非静态的属性或方法。而非静态的方法可以调用静态的属性或方法。由于静态的结构生命周期早于非静态的结构,死亡还晚。所以在静态方法中调用时对象还没创建,自然不能调用非静态结构。反之亦然。静态方法中不能有this或super。

5 static的应用:使用静态变量可以实现“累加”的效果,因为静态变量在内存中独一份。

新建 Microsoft PowerPoint 演示文稿

package lianxi3;public class TestStatic {public static void main(String[] args) {Account user1 = new Account("123", 3000);Account user2 = new Account("456", 5000);Account user3 = new Account("789", 8000);System.out.println(user1.toString());System.out.println(user2);System.out.println(user3);}}class Account {private int id;private String password;private static int rate;private double balance;private static double minbalance;private static int init = 1200; // 初始化账号public Account(String password, double balance) { // 注意:不用再写int id,已经设置初值了this.id = init++;this.password = password;this.balance = balance;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public static int getRate() {return rate;}public static void setRate(int rate) {Account.rate = rate;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}public static double getMinbalance() {return minbalance;}public static void setMinbalance(double minbalance) {Account.minbalance = minbalance;}public static int getInit() {return init;}public static void setInit(int init) {Account.init = init;}public int getId() {return id;}@Overridepublic String toString() {return "Account [balance=" + balance + ", id=" + id + ", password="+ password + "]";}}

结果:

Account [balance=3000.0, id=1200, password=123]

Account [balance=5000.0, id=1201, password=456]

Account [balance=8000.0, id=1202, password=789]

转载于:https://www.cnblogs.com/yjtm53/p/4135310.html

更多相关:

  • 在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用json格式的配置文件,那么在.net core中该如何读取json文件呢?1、在Startup类中读取json配置文件1、使用Confi...

  •   1 public class FrameSubject extends JFrame {   2    3   …………..   4    5   //因为无法使用多重继承,这儿就只能使用对象组合的方式来引入一个   6    7   //java.util.Observerable对象了。   8    9   DateSub...

  • 本案例主要说明如何使用NSwag 工具使用桌面工具快速生成c# 客户端代码、快速的访问Web Api。 NSwagStudio 下载地址 比较强大、可以生成TypeScript、WebApi Controller、CSharp Client  1、运行WebApi项目  URL http://yourserver/swagger 然后...

  •   在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性.   ModelState 在ApiController中一个ModelState属性用来获取参数验证结果.   public abstract class ApiController : IHttpController,...

  • 1# 引用  C:AVEVAMarineOH12.1.SP4Aveva.ApplicationFramework.dll C:AVEVAMarineOH12.1.SP4Aveva.ApplicationFramework.Presentation.dll 2# 引用命名空间, using Aveva.Applicati...

  • jdt可以做语法树分析,并且支持visitor模式对代码进行分析。跟pmd的分析方式一样,我们只要实现 visitor接口即可实现一个插件。 @Service("requestMappingInfoService")public class RequestMappingInfoServiceImpl implements Reques...

  • 1.静态方法 static:通常在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: (1)它们仅能调用其他的static方法。  (2)它们只能访问static数据。 (3)它们不能以任何方式引用this 或super。 class Simple {static v...

  • 类的静态构造函数也叫类型构造器,静态构造器,他调用的时刻由CLR来控制:CLR会选择如下时间之一来调用静态构造函数:      1,在类型的第一个实例创建之前,或类型的非继承字段或成员第一次访问之前。这里的“之前”,代表前后衔接的意思。这里的时刻是精确的!      2,在非继承的静态字段或成员第一次访问之前的某个时刻,具体时刻不定!...

  • 2019独角兽企业重金招聘Python工程师标准>>> django的settings中包含三个static相关设置项: STATIC_ROOT STATIC_URL STATICFILES_DIRS STATIC_URL 好理解,就是映射到静态文件的url,一般为/static/ STATICFILES...

  • 现状:每日在进行系统之间的订单对账时,往往是这样的操作流程; 1.从外部系统拉取数据存入本地数据库; 2.查询本地订单数据集合localSet; 3.查询外部系统订单数据集合outerSet; 4.以本地localSet为基准,对照outerSet,进行遍历,将数据不一致(金额、状态等),或者localSet存在而outerSet不存...