草庐IT

从编译角度看Kotlin内存优化

作者|闫永俊,单位:中国移动智慧家庭运营中心​Labs导读今天我们来聊一聊由JetBrains开发的一种用于现代多平台应用的静态编程语言——Kotlin。Kotlin可以被编译为Java字节码,也可以被编译成JavaScript,方便在没有JVM的设备上运行。除此之外,Kotlin还可以被编译成二进制代码直接运行在机器上。在GoogleI/O2017中,Google宣布在Android上为Kotlin提供一等支持。目前,Kotlin已经成为Android应用开发的首选语言。Kotlin相对于Java来说,有很多优点,如空安全、更加易用的Lambda表达式、支持扩展、众多的语法糖等。但是较少有人

从编译角度看Kotlin内存优化

作者|闫永俊,单位:中国移动智慧家庭运营中心​Labs导读今天我们来聊一聊由JetBrains开发的一种用于现代多平台应用的静态编程语言——Kotlin。Kotlin可以被编译为Java字节码,也可以被编译成JavaScript,方便在没有JVM的设备上运行。除此之外,Kotlin还可以被编译成二进制代码直接运行在机器上。在GoogleI/O2017中,Google宣布在Android上为Kotlin提供一等支持。目前,Kotlin已经成为Android应用开发的首选语言。Kotlin相对于Java来说,有很多优点,如空安全、更加易用的Lambda表达式、支持扩展、众多的语法糖等。但是较少有人

iPhone 14正式发布!从设计师角度聊聊苹果的灵动岛功能

编者按:灵动岛作为苹果发布会的一大亮点,让无数人有了购买iPhone14的理由,本文详细分析一下灵动岛的功能设计。苹果的发布会经常会被视作为「科技春晚」,而如果你看过几次,大体上还是能够看出一些套路的。最近几年的发布会,基本上都会让最小的AppleWatch系列先来暖场,然后才会上诸如iPhone和Mac这样的重头戏。在AppleWatchUltra为整个发布会打出一波小高潮之后,新的iPhone14从造型、配色到芯片上的「摆烂」,让人感到苹果的9月特别活动开始进入了一种疲软的情绪。直到iPhone14Pro出现,全新的打孔屏替代了刘海,「灵动岛」在交互上的突出表现,透出了屏幕,iPhone1

iPhone 14正式发布!从设计师角度聊聊苹果的灵动岛功能

编者按:灵动岛作为苹果发布会的一大亮点,让无数人有了购买iPhone14的理由,本文详细分析一下灵动岛的功能设计。苹果的发布会经常会被视作为「科技春晚」,而如果你看过几次,大体上还是能够看出一些套路的。最近几年的发布会,基本上都会让最小的AppleWatch系列先来暖场,然后才会上诸如iPhone和Mac这样的重头戏。在AppleWatchUltra为整个发布会打出一波小高潮之后,新的iPhone14从造型、配色到芯片上的「摆烂」,让人感到苹果的9月特别活动开始进入了一种疲软的情绪。直到iPhone14Pro出现,全新的打孔屏替代了刘海,「灵动岛」在交互上的突出表现,透出了屏幕,iPhone1

换个角度理解计算机网络,搭建计网知识框架

所谓换个角度,就是从三层物理设备(物理层、数据链路层、网络层)开始,串联起整个网络的工作原理可能有些小伙伴看见物理设备天生就犯困,反手就准备关闭文章,且慢!本文只是简单的介绍这几个设备的功能,并不会涉及复杂的底层硬件原理,不一定严谨,并且摒弃了很多细节,但读起来一定通俗易懂,帮助你迅速搭建起计网的知识框架。什么是数据?首先我们需要知道,网络上传输的东西是什么?所谓数据,什么是数据假设你要传输的数据是 name="小牛肉",那么经过从应用层开始经过层层封装,到达物理层进行传输的时候,你的数据已经被封装进了很多东西:首部里面具体是什么,不是本文的重点,你只需要知道其中有这么几个字段很重要:源IP地

换个角度理解计算机网络,搭建计网知识框架

所谓换个角度,就是从三层物理设备(物理层、数据链路层、网络层)开始,串联起整个网络的工作原理可能有些小伙伴看见物理设备天生就犯困,反手就准备关闭文章,且慢!本文只是简单的介绍这几个设备的功能,并不会涉及复杂的底层硬件原理,不一定严谨,并且摒弃了很多细节,但读起来一定通俗易懂,帮助你迅速搭建起计网的知识框架。什么是数据?首先我们需要知道,网络上传输的东西是什么?所谓数据,什么是数据假设你要传输的数据是 name="小牛肉",那么经过从应用层开始经过层层封装,到达物理层进行传输的时候,你的数据已经被封装进了很多东西:首部里面具体是什么,不是本文的重点,你只需要知道其中有这么几个字段很重要:源IP地

从源码角度看 PHP 字符串类型转换

PHP的类型转换是比较方便的,但是越是容易使用的东西,底层的实现越是复杂,而且在使用中像我这样的新手也往往不清楚转换后的结果到底是什么。有时候,对于Java这种强类型的语言,使用的时候需要强制进行转换,这样多半转换后的结果是可以预料的,至少自己是想这么做的。通过实例看转换写个关于PHP类型转换的代码测试一下吧,看看大家是否能知道输出结果。把 各种数据类型 都转换为 字符串类型试试。php$var=false;echo'$var:',$var,"\r\n";$var=null;echo'$var:',$var,"\r\n";$var=true;echo'$var:',$var,"\r\n";$v

从源码角度看 PHP 字符串类型转换

PHP的类型转换是比较方便的,但是越是容易使用的东西,底层的实现越是复杂,而且在使用中像我这样的新手也往往不清楚转换后的结果到底是什么。有时候,对于Java这种强类型的语言,使用的时候需要强制进行转换,这样多半转换后的结果是可以预料的,至少自己是想这么做的。通过实例看转换写个关于PHP类型转换的代码测试一下吧,看看大家是否能知道输出结果。把 各种数据类型 都转换为 字符串类型试试。php$var=false;echo'$var:',$var,"\r\n";$var=null;echo'$var:',$var,"\r\n";$var=true;echo'$var:',$var,"\r\n";$v

Fragment(一)从源码角度看add和replace过程

简书《Fragment(一)从源码角度看add和replace过程》《Fragment(二)状态改变与管理》《Fragment(三)ViewPager中使用Fragment》《Fragment(四)常见问题》CSDN《Fragment(一)从源码角度看add和replace过程》《Fragment(二)状态改变与管理》《Fragment(三)ViewPager中使用Fragment》《Fragment(四)常见问题》Fragment(一)从源码角度看add和replace过程博客对应的Demo地址:GitHub、Gitee通过这篇博客,我们能知道以下问题:Fragmentadd()和repla

Fragment(一)从源码角度看add和replace过程

简书《Fragment(一)从源码角度看add和replace过程》《Fragment(二)状态改变与管理》《Fragment(三)ViewPager中使用Fragment》《Fragment(四)常见问题》CSDN《Fragment(一)从源码角度看add和replace过程》《Fragment(二)状态改变与管理》《Fragment(三)ViewPager中使用Fragment》《Fragment(四)常见问题》Fragment(一)从源码角度看add和replace过程博客对应的Demo地址:GitHub、Gitee通过这篇博客,我们能知道以下问题:Fragmentadd()和repla