作者介绍:Hollis,阿里巴巴技术专家,51CTO专栏作家,CSDN博客专家,掘金优秀作者,《程序员的三门课》联合作者,《Java工程师成神之路》系列文章作者;热衷于分享计算机编程相关技术,博文全网阅读量上千万。
2021年09月08日 想要搞清楚这个问题,首先我们需要翻阅一下String的源码,看下其中是否有关于长度的限制或者定义。
2021年08月24日 运行时常量池( Runtime Constant Pool)是每一个类或接口的常量池( Constant_Pool)的运行时表示形式。
2021年08月24日 对于初学者来说,要想把这个问题回答正确,最初思考这个问题的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂。所以,就有了我写这篇文章的初衷。
2021年08月24日 在程序语言中,这个传递过程中传递的两种情况,即值传递和引用传递。我们来看下程序语言中是如何定义和区分值传递和引用传递的。
2021年08月24日 目前,可以直接在JVM上运行的语言有很多,今天介绍其中比较重要的九种。
写《Go语言四十二章经》,纯粹是因为开发过程中碰到过的一些问题,踩到过的一些坑,感觉在Go语言学习使用过程中,有必要深刻理解这门语言的核心思维、清晰掌握语言的细节规范以及反复琢磨标准包代码设计模式,于是才有了这本书。
2021年09月03日
斯坦福教授、Tcl 语言发明者 John Ousterhout 的著作《A Philosophy of Software Design》,自出版以来,好评如潮。按照 IT 图书出版的惯例,如果冠名为“实践”,书中内容关注的是某项技术的细节和技巧;冠名为“艺术”,内容可能是记录一件优秀作品的设计过程和经验;而冠名为“哲学”,则是一些通用的原则和方法论,这些原则方法论串起来,能够形成一个体系。正如”知行合一”、“世界是由原子构成的”、“我思故我在”,这些耳熟能详的句子能够一定程度上代表背后的人物和思想。用一句话概括《A Philosophy of Software Design》,软件设计的核心在于降低复杂性。
2021年10月09日
TIPI项目是一个自发项目, 项目主要关注PHP的内部实现, 以及PHP相关的方方面面, 该项目包括《深入理解PHP内核》这本书,以及一些相关的PHP项目,例如一些PHP扩展及研究项目.
你可以联系以下作者
reeze http://reeze.cn reeze.xia@gmail.com
er http://www.zhangabc.com er@zhangabc.com
phppan http://www.phppan.com/ phppan.p@gmail.com
HonestQiao http://www.wapm.cn/ honestqiao@gmail.com
mengkang https://mengkang.net i@zhoumengkang.com
或者发给所有组员: team@php-internals.com
贡献者
感谢这些贡献者:https://github.com/reeze/tipi/contributors
你可以联系以下作者
reeze http://reeze.cn reeze.xia@gmail.com
er http://www.zhangabc.com er@zhangabc.com
phppan http://www.phppan.com/ phppan.p@gmail.com
HonestQiao http://www.wapm.cn/ honestqiao@gmail.com
mengkang https://mengkang.net i@zhoumengkang.com
或者发给所有组员: team@php-internals.com
贡献者
感谢这些贡献者:https://github.com/reeze/tipi/contributors
2022年12月04日 编程语言的实现是一门非常复杂的工程。包括语法实现,对象模型。流程结构等等的设计和实现。在面向对象语言中对象模型是尤为重要的,PHP的对象模型比较常规,和Java/C++类似。
2022年12月04日 SPL,PHP标准库(Standard PHP Library),从 PHP 5.0 开始内置的接口和类的集合,从 PHP5.3 开始逐渐成熟并成为内核组件的一部分。但是由于其文档的稀少以及推行的力度不够,导致较多的PHP开发人员对其不了解,甚至闻所未闻。
2022年12月02日 在维基百科中,对命名空间的定义是:命名空间(英语:Namespace)表示标识符(identifier)的上下文(context)。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。函数和类的作用域可被视作隐式命名空间,它们和可见性、可访问性和对象生命周期不可分割的联系在一起。
2022年12月02日 对象是我们可以进行研究的任何事物,世间万物都可以看作对象。它不仅可以表示我们可以看到的具体事物,也可以表示那些我们看不见的事件等。对象是一个实体,它具有状态,一般我们用变量来表示,同时它也可以具有操作行为,一般用方法来表示,对象就是对象状态和对象行为的集合体。
在之前我们很多次的说到类,对于对象来说,具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,我们常常也说对象是类的实例。从对象的表现形式来看,它和一般的数据类型在形式上十分相似,但是它们在本质是不同的。对象拥有方法,对象间的通信是通过方法调用,以一种消息传递的方式进行。而我们常说的面向对象编程(OOP)使得对象具有交互能力的主要模型就是消息传递模型。对象是消息传递的主体,它可以接收,也可以拒绝外界发来的消息。
这一小节,我们从源码结构来看看PHP实现对象的方法以及其消息传递的方式。
在之前我们很多次的说到类,对于对象来说,具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,我们常常也说对象是类的实例。从对象的表现形式来看,它和一般的数据类型在形式上十分相似,但是它们在本质是不同的。对象拥有方法,对象间的通信是通过方法调用,以一种消息传递的方式进行。而我们常说的面向对象编程(OOP)使得对象具有交互能力的主要模型就是消息传递模型。对象是消息传递的主体,它可以接收,也可以拒绝外界发来的消息。
这一小节,我们从源码结构来看看PHP实现对象的方法以及其消息传递的方式。
2022年12月01日 在面向对象语言中,都会内置一些语言内置提供的基本功能类,比如JavaScript中的Array,Number等类,PHP中也有很多这种类,比如Directory,stdClass,Exception等类,同时一些标准扩展比如PDO等扩展中也会定义一些类,PHP中类是不允许重复定义的,所以在编写代码时不允许定义已经存在的类。
2022年11月30日 PHP中有一些特殊的函数和方法,这些函数和方法相比普通方法的特殊之处在于: 用户代码通常不会主动调用,而是在特定的时机会被PHP自动调用。在PHP中通常以""打头的方法都作为魔术方法, 所以通常不要定义以""开头的函数或方法。例如:autoload()函数, 通常我们不会手动调用这个函数, 而如果在代码中访问某个未定义的方法, 如过已经定义了autoload()函数,此时PHP将会尝试调用autoload()函数, 例如在类的定义中如果定义了construct()方法,在初始化类的实例时将会调用这个方法, 同理还有__destuct()方法。
2022年11月29日 面向对象的三大特性(封装、继承、多态),在前一小节介绍了封装,这一小节我们将介绍继承和多态的实现。
2022年11月29日 面向对象的三大特性(封装、继承、多态),其中封装是一个非常重要的特性。封装隐藏了对象内部的细节和实现,使对象能够集中而完整的描述并对应一个具体的事物,只提供对外的访问接口,这样可以在不改变接口的前提下改变实现细节,而且能使对象自我完备。除此之外,封装还可以增强安全性和简化编程。在面向对象的语言中一般是通过访问控制来实现封装的特性。
2022年11月29日 在上一小节,我们介绍了类的结构和声明过程,从而,我们知道了类的存储结构,接口抽象类等类型的实现方式。在本小节,我们将介绍类的成员变量和成员方法。首先,我们看一下,什么是成员变量,什么是成员方法。
类的成员变量在PHP中本质上是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。类的成员变量也称为成员属性,它是现实世界实体属性的抽象,是可以用来描述对象状态的数据。
类的成员方法在PHP中本质上是一个函数,只是这个函数以类的方法存在,它可能是一个类方法也可能是一个实例方法,并且在这些方法上都加上了类的访问控制。类的成员方法是现实世界实体行为的抽象,可以用来实现类的行为。
类的成员变量在PHP中本质上是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。类的成员变量也称为成员属性,它是现实世界实体属性的抽象,是可以用来描述对象状态的数据。
类的成员方法在PHP中本质上是一个函数,只是这个函数以类的方法存在,它可能是一个类方法也可能是一个实例方法,并且在这些方法上都加上了类的访问控制。类的成员方法是现实世界实体行为的抽象,可以用来实现类的行为。
2022年11月10日 面向对象编程中我们的编程都是围绕类和对象进行的。那在PHP内部类是怎么实现的呢?它的内存布局以及存储是怎么样的呢?继承、封装和多态又是怎么实现的呢?
Lua 是一门扩展式程序设计语言,被设计成支持通用过程式编程,并有相关数据描述设施。 同时对面向对象编程、函数式编程和数据驱动式编程也提供了良好的支持。 它作为一个强大、轻量的嵌入式脚本语言,可供任何需要的程序使用。
2022年12月22日
前一页
后一页