生命周期

PHP内核探索:一次请求生命周期

爱⌒轻易说出口 提交于 2020-02-29 09:33:49
深入探讨 真正的内部运行过程没有这么简单。以上过程只是个简略版,让我们再深入挖掘一下,看看幕后还发生了些什么。 Apache启动后,PHP解释程序也随之启动。PHP的启动过程有两步: 第一步是初始化一些环境变量,这将在整个SAPI生命周期中发生作用; 第二步是生成只针对当前请求的一些变量设置。 PHP启动第一步 不清楚什么第一第二步是什么?别担心,我们接下来详细讨论一下。让我们先看看第一步,也是最主要的一步。要记住的是,第一步的操作在任何请求到达之前就发生了。 启动Apache后,PHP解释程序也随之启动。PHP调用各个扩展的MINIT方法,从而使这些扩展切换到可用状态。看看php.ini文件里打开了哪些扩展吧。 MINIT的意思是“模块初始化”。各个模块都定义了一组函数、类库等用以处理其他请求。 一个典型的MINIT方法如下: PHP_MINIT_FUNCTION(extension_name){ /* Initialize functions, classes etc */ } PHP启动第二步 当一个页面请求发生时,SAPI层将控制权交给PHP层。于是PHP设置了用于回复本次请求所需的环境变量。同时,它还建立一个变量表,用来存放执 行过程 中产生的变量名和值。PHP调用各个模块的RINIT方法,即“请求初始化”。一个经典的例子是Session模块的RINIT,如果在php

【Java对象生命周期】Java对象的生命周期:java是怎么分配内存的和怎么回收的?

两盒软妹~` 提交于 2019-12-27 13:56:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>   http://www.uml.org.cn/j2ee/201301183.asp 要理解java对象的生命周期,我们需要要明白两个问题,   1、java是怎么分配内存的 ,2、java是怎么回收内存的。   喜欢java的人,往往因为它的内存自动管理机制,不喜欢java的人,往往也是因为它的内存自动管理。我属于前者,这几年的coding经验让我认识到,要写好java程序,理解java的内存管理机制是多么的重要。任何语言,内存管理无外乎分配和回收,在C中我们可以用malloc动态申请内存,调用free释放申请的内存;在C++中,我们可以用new操作符在堆中动态申请内存,编写析构函数调用delete释放申请的内存;那么在java中究竟是内存怎样管理的呢?要弄清这个问题,我们首先要了解java内存的分配机制,在java虚拟机规范里,JVM被分为7个内存区域,但是规范这毕竟只是规范,就像我们编写的接口一样,虽然最终行为一致,但是个人的实现可能千差万别,各个厂商的JVM实现也不尽相同,在这里,我们只针对sun的Hotspot虚拟机讨论,该虚拟机也是目前应用最广泛的虚拟机。   虚拟器规范中的7个内存区域分别是三个线程私有的和四个线程共享的内存区,线程私有的内存区域与线程具有相同的生命周期,它们分别是: 指令计数器、

UIViewController的生命周期

蹲街弑〆低调 提交于 2019-12-26 19:12:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> UIViewController 是IOS程序中的一个重要组成部分,扮演者一个大管家的身份,管理着程序中的众多视图: 何时加载view,加载的原则是什么,视图何时消失等问题,文档中讲的都很详细。   Controller的view最好在需要显示时再去加载,并且在系统发出内存警告时释放不必要的view及相关的可再生的数据对象。 一、UIViewController的初始化   初始化时会根据需要调用init,initWithCoder等相关函数,这个时候我们可以做一下简单的初始化操作,建立ViewController中需要使用的数据模型等,不建议在初始化阶段就直接创建view及其他与显示有关的对象(应该放到loadView的时候去创建,或者采用懒加载的方法创建)。   我们都知道ViewController可以通过代码和xib两种方式创建,这两种方式的初始化流程也不尽相同。   1)使用xib创建的VC   xib其实最终是会把我们的设置保存成一个 数据集(xml文件) ,当需要初始化构建VC的时候,回去读取记录的数据集,然后帮我们动态的创建VC,因此可以想象它在初始化时会先去找看是否实现initWithCoder方法,如果该类实现了该方法,就直接调用initWithCoder方法创建对象

ViewController的生命周期分析和使用

允我心安 提交于 2019-12-26 18:42:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者 shenqiliang 发布在 2012年3月20日 下午8:11 iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验。 一、结构 按结构可以对iOS的所有ViewController分成两类: 1、主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController。 2、用于控制和显示其他ViewController的ViewController。这种ViewController一般都是一个ViewController的容器。如UINavigationController,UITabbarController。它们都有一个属性:viewControllers。其中UINavigationController表示一种Stack式结构,push一个ViewController或pop一次,因此后一个ViewController一般会依赖前一个ViewController。而UITabbarController表示一个Array结构,各个ViewController是并列的。 第一种ViewController会经常被继承

android Service 服务的生命周期

痞子三分冷 提交于 2019-12-07 19:30:04
1、Service的概念 2、Service的生命周期 3、实例:控制音乐播放的Service 一、Service的概念 Service是 Android 程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。 二、Service的生命周期 Service对象不能自己启动,需要通过某个Activity、Service或者其他Context对象来启动。启动的方法有两种,Context.startService和Context.bindService()。两种方式的生命周期是不同的,具体如下所示。 Context.startService方式的生命周期: 启动时,startService –> onCreate() –> onStart() 停止时,stopService –> onDestroy() Context.bindService方式的生命周期: 绑定时,bindService -> onCreate() –> onBind() 解绑定时,unbindService –>onUnbind() –> onDestory() 三、实例:控制音乐播放的Service 有了 Service 类我们如何启动他呢,有两种方法: • Context.startService() • Context.bindService() 1

Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)

半城伤御伤魂 提交于 2019-12-05 21:51:12
一、什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置 <activity android:label="@string/app_name" android:name=".MainActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的Activity时这个当前的这个Activity将会停止,新的Activity将会压入栈中,同时获取用户焦点,这时就可在这个Activity上操作了。都知道栈是先进后出的原则,那么当用户按Back键时,当前的这个Activity销毁,前一个Activity重新恢复。 二、Activity生命周期 先看下图: 这个图不再多说什么,下面我们通过一个实例来说明问题。新建工程

iOS对UIViewController生命周期和属性方法的解析

给你一囗甜甜゛ 提交于 2019-12-05 12:54:44
iOS对UIViewController生命周期和属性方法的解析 一、引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的View层上。iOS中的UIViewController是UIKit框架中最基本的一个类。从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础。基于UIViewController的封装和扩展,也能够出色的完成各种复杂界面逻辑。这篇博客,旨在讨论UIViewController的生命周期和属性方法,在最基础的东西上,往往会得到意想不到的惊喜。 二、UIViewController的生命周期 要了解UIViewController,先要弄清楚其生命周期。在面向对象的语言中,是对象,就一定要有生命周期,UIViewController也不例外,生命周期管理Controller的作用范围和时间,也管理其内对象的作用范围和时间。首先,UIViewController中与其生命周期有关的几个函数如下: //类的初始化方法 + (void)initialize; //对象初始化方法 - (instancetype)init; //从归档初始化 - (instancetype)initWithCoder:(NSCoder *)coder; //加载视图

Android Activity的生命周期详解

蓝咒 提交于 2019-12-04 04:31:30
Activity是由Activity栈进管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Activity底部。Acitivity一般意义上有四种状态: 1.当Activity位于栈顶时,此时正好处于屏幕最前方,此时处于 运行状态 ; 2.当Activity失去了焦点但仍然对用于可见(如栈顶的Activity是透明的或者栈顶Activity并不是铺满整个手机屏幕),此时处于 暂停状态 ; 3.当Activity被其他Activity完全遮挡,此时此Activity对用户不可见,此时处于 停止状态 ; 4.当Activity由于人为或系统原因(如低内存等)被销毁,此时处于 销毁状态 ; 在每个不同的状态阶段,Adnroid系统对Activity内相应的方法进行了回调。因此,我们在程序中写Activity时,一般都是继承Activity类并重写相应的回调方法。 在上图中,Activity有三个关键的循环: 1.Activity实例是由系统自动创建,并在不同的状态期间回调相应的方法。 Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。 一个最简单的完整的Activity生命周期会按照如下顺序回调:onCreate -> onStart -> onResume ->

管理Activity的生命周期

旧时模样 提交于 2019-12-02 17:45:44
As a user navigates through, out of, and back to your app, the Activity instances in your app transition between different states in their life cycle. 作为一个用户通过导航进出和回到你的应用程序的这个过程中,你应用程序的Activity实例在它的生命周期的不同状态之间转换。 For instance, when your activity starts for the first time, it comes to the foreground of the system and receives user focus. 例如:当你的Activity第一次启动时,它会出现在系统的最前端并接受用户的焦点。 During this process, the Android system calls a series of lifecycle methods on the activity in which you set up the user interface and other components. 在这个过程中,Android系统调用了Activity一系列的生命周期方法,在这些方法中你可以设置用户界面和其他组件。 If the

Acitivty生命周期

时光总嘲笑我的痴心妄想 提交于 2019-12-01 19:37:51
Acitivty 有七个生命周期: onCreate: 当第一次调用一个Activity就会执行onCreate方法 onStart: 当Activity处于可见状态的时候就会调用onStart方法 onResume: 当Activity可以得到用户焦点的时候就会调用onResume方法,由被覆盖状态回到前台或解锁屏调用此方法。 onRestart: 当Activity没有被销毁的时候重新调用这个Activity就会调用onRestart方法 onPause: 当Activity被遮挡住的时候就会调用onPause方法,暂停当前activity。 onStop: 当Activity处于不可见状态的时候就会调用onStop方法 onDestory: 当Activity被销毁时会调用onDestory方法 环境:一共两个页面,A,B A页面有一个button点击之后打开B页面 activity启动的时候: onCreate ---> onStart ---> onResume ,打开A页面:启动时调用,可见状态调用,获取焦点调用。 点击button后打开B页面此时A页面的状态是: onPause---> onStop, 首先暂停A页面activity,然后对B页面的activity执行上面的三步,然后对A页面进行停止操作。 当按返回键时: onRestart--->onStart---