【服务端开发】对比Java和PHP的final

简介: 对比Java和PHP的final

对比Java和PHP的final


final---用于类、方法前。

final类---不可被继承。

final方法---不可被覆盖。


注意:php中不能用final不能修饰属性。php和Java不同,Java中类属性是可以用final修饰表示的是常量;PHP不能,因为PHP的常量只能用define或者const定义。


单引号和双引号的区别


PHP中,单引号和双引号所包围的字符串有什么区别呢?

双引号包裹的$变量会被解析,而单引号不解析;

因为双引号包裹的内容要检查是否包括变量,所以读取双引号的速度比单引号要慢。


堆 栈


<?php 
class A{
    public $num=100; 
}
$a = new A();
$b = $a;
$a->num=200;
echo $b->num;
?>


输出结果


200


分析:在PHP中,基本类型变量放在栈中,对象、数组放在堆中,对象中真正的内容是存在堆中。


a只是存放了该对象在堆中的地址,将a只是存放了该对象在堆中的地址,将aa赋给b,只是把对应的地址给了他,即b,只是把对应的地址给了他,即b,a、b都存放了对象在堆中的地址,所以b都存放了对象在堆中的地址,所以bb->num和$a->num访问的是同一份数据。


unset


$a="hello";
$b= &$a;
unset($b);
$b="world";
echo $a; 


输出结果:


hello


我们可以把变量名想象成一个容器:


微信图片_20221112124713.jpg


unset相当于把这个标签名给撕了,但是只要这个盒子还有标签名贴着,那就不会被PHP的垃圾回收机制给回收掉!

所以除非把所有标签给撕了,或者直接把容器里面的东西给拿出来,那么就成了空==>NULL了


合并数组


PHP中array_merge()和+的区别


测试代码:


$a = ['a', 'b', 'c'];
$b = ['a', 'b'];
$r1 = $a + $b;
$r2 = array_merge($a, $b);
echo "+结果:";
var_dump($r1);
echo "array_merge结果:";
var_dump($r2);
exit();


运行结果:


  1. +合并数组,相同的值不会重复追加;
  2. array_merge() 相同的值也会重复追加,且第二个参数直接合并到第一个参数数组的后面。


微信图片_20221112124718.jpg


相关文章
|
19天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
4天前
|
IDE Java 数据库连接
使用 Java 进行桌面应用开发
【4月更文挑战第19天】Java 是一款广泛应用于企业级、网络和桌面应用开发的编程语言。其跨平台特性使Java程序能在不同操作系统上运行,而JDK提供了开发所需工具和库。使用Swing等GUI库构建用户界面,结合JDBC进行数据库操作,Socket实现网络通信。虽然面临性能和用户体验的挑战,但通过优化和选用合适的IDE,Java仍能开发出高效稳定的桌面应用。
|
5天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
5天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
39 10
|
5天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
12天前
|
运维 NoSQL 算法
Java开发-深入理解Redis Cluster的工作原理
综上所述,Redis Cluster通过数据分片、节点发现、主从复制、数据迁移、故障检测和客户端路由等机制,实现了一个分布式的、高可用的Redis解决方案。它允许数据分布在多个节点上,提供了自动故障转移和读写分离的功能,适用于需要大规模、高性能、高可用性的应用场景。
16 0
|
14天前
|
人工智能 小程序 Java
JAVA开发智慧学校系统源码+人脸电子班牌布局
智慧校园是通过利用物联网,大数据技术来改变师生和校园资源相互交互的方式,以便提高交互的明确性、灵活性和响应速度,从而实现智慧化服务和管理的校园模式。
|
17天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
17 3
|
20天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
20天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发