文档章节

php static静态属性、java static属性变量的区别

斑驳
 斑驳
发布于 2016/03/25 14:15
字数 344
阅读 293
收藏 3

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

java的static静态属性:

<%!
static class Count {
    private static int count = 0;
    public static int getCount() {
        count++;
        
        return count;
    }
}
%>
<%
out.print(Count.getCount());
out.print("<br />");
out.print(Count.getCount());
%>

第一次输出1、2

刷新后输出3、4,一直刷新会一直递增。

如果重启tomcat server后再次打开,重新输出1、2

 

php的static静态属性

<?php
class Count {
    private static $count = 0; // 类里定义静态属性
    public static function getCount() {
        self::$count++;
        return self::$count;
    }
}

echo Count::getCount();
echo "<br />";
echo Count::getCount();

第一次输出1、2,刷新依然会输出1、2

 

对比总结:

1. java程序是常驻内存的,程序运行期间,static属性一直存在,除非重启。

2. php程序为每次请求创建一个内存,static属性只针对一次请求,php文件执行完毕,该static属性也立刻消亡,再次请求会重新创建内存。

 

补充:

另外,php还有一个static静态变量的概念。静态属性是类里的东西,静态变量是函数里的东西(和 C 一样):

function count() {
    static $count = 0; // 方法里定义静态变量
    $count++;
    return $count;
}

echo count();
echo "<br />";
echo count();
echo "<br />";
echo count();

第一次输出1、2、3,刷新后依然输出1、2、3,说明php的静态变量和静态属性一样,也是只对单次请求有效。

 

参考:

http://huangqiqing123.iteye.com/blog/1921934

http://www.zhihu.com/question/35472851

 

© 著作权归作者所有

斑驳
粉丝 12
博文 57
码字总数 9410
作品 0
深圳
高级程序员
私信 提问
关于Java内部类字段和方法不能使用static修饰的原因

昨天的文章中,遗留了一个问题就是,为什么Java内部类字段和方法不能使用static修饰。 先下下面一段代码: 上面的内部类的成员变量和方法,只要加上了static修饰,就会出现编译错误。 原因:...

九劫散仙
2018/06/02
30
0
Java:关于Static静态关键字的那些小事

前言 在中,静态 关键字使用十分常见 本文全面 & 详细解析静态 关键字,希望你们会喜欢 目录 1. 定义 一种 表示静态属性的 关键字 / 修饰符 2. 作用 共用、共享 能有此作用的原因分析: Java...

Ala6
2018/10/27
0
0
使用Java实现面向对象编程——第一章 对象和封装

1、软件出现的目的: 用计算机的语言描述现实世界 用计算机解决现实世界的问题 ◆面向对象设计和开发程序的好处: 交流更加流畅 提高设计和开发效率 计算机语言的发展向接近人的思维方式演变...

逆風〠飛翔
2018/08/17
0
0
构造方法、封装、关键字(this、static)和代码块的介绍

1.构造方法 1.1 构造方法与成员方法的区别 构造方法分为无参构造和有参构造,其中有参构造方法和无参构造方法为方法的重载关系。 构造方法在初始化一个类的对象时进行调用,它没有返回值,方...

编程SHA
04/23
8
0
干货——详解Java中的关键字

在平时编码中,我们可能只注意了这些static,final,volatile等关键字的使用,忽略了他们的细节,更深层次的意义。 本文总结了Java中所有常见的关键字以及一些例子。 static 关键字 概述: ...

Janti
2018/07/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

006-ELK的二进制安装

二进制安装ELKstack 本次搭建属于单点,在同一台机器上进行安装 基础组件部署 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yu...

伟大源于勇敢的开始
5分钟前
1
0
OSChina 周四乱弹 —— 浙江台的电话号码倒是记得挺牢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :《Out On The Streets》 一直不理解北欧人对重金属和死亡摇滚的热情,听完这首歌好像理解了。#今日歌曲推荐# 《Out On The Stre...

小小编辑
今天
6
0
Leetcode PHP题解--D121 21. Merge Two Sorted Lists

D121 21. Merge Two Sorted Lists 题目链接 21. Merge Two Sorted Lists 题目分析 合并两个有序链表。 思路 逐个遍历两个链表,把小的数字塞入数组里。之后再拼起来。 最终代码 <?php/** *...

skys215
今天
5
0
mars-config 动态配置管理

mars-config 码云地址:https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :sprin...

fashionbrot
今天
14
0
女朋友玩吃鸡手游被开挂老哥骗炮,我见义勇为将骗子绳之以法

大家好,我是乔哥。 晚上10点以后下班后我回到自如出租房里面,开始处理公众号粉丝发来的消息,一条一条处理,突然看到了这么几条消息,吸引了我的眼球: 然后我就和这位女粉丝小红(化名)聊...

gzc426
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部