当一个应用的组件开始运行,并且这个应用没有其它的组件在运行,系统会为这个应用启动一个新的 Linux 进程,这个进程只有一个线程 .默认情况下,一个应用的所有组件都运行在一个进程和线程(主线程)中.如果一个应用的线程开始运行,并且已经存在这个应用的线程了(因为有这个应用程序的另一个组件已经运行了),于是这个组件就会在这个已有的进程中启动并且运行在同一个线程中. 然而,你完全可以安排不同的组件运行于
由于最近在开发一个关于微博整合的小应用,于是开始接触各大微博平台的开放平台(新浪、搜狐、网易、QQ):目前这三大微博的应用开发都采用OAuth授权,要访问大部分API都需要OAuth方式的身份鉴权。 OAuth是什么? 先 来简单介绍一下OAuth授权协议:OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAuth认证服 务,任何服务提供商都可以实现自
当一个应用被启动,系统创建一个执行线程,叫做 "main" 。这个线程是十分重要的,因为它主管向用户界面控件派发事件。其中包含绘图事件。它也是你的应用与界面工具包( android.widget 和 android.view 包中的组件)交互的地方。于是 main 线程也被称为界面线程。 系统不会为每个组件的实例分别创建线程。所有运行于一个进程的组件都在界面线程中被实例化,并且系统对每个组件的调用
,被隔离的容器间可通信,而与其它容器不可通信。或者设置规则来组成更加丰富的隔离效果。 部署组件详解 在kubernetes 1.4版本利用kubeadm部署过程中,安装的插件包括kube-di
内存泄露出现的原因:当一个对象已经不再被使用时,本该被回收但却因为有另外一个正在使用的对象持有它的引用从而导致它不能被回收。 这就导致了内存泄漏。
UML(Unified Modeling Language)中文统一建模语言,是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 【维基百科】
essage、Looper、MessageQueue之间的关系,对于其工作原理我们不做详解(Handler机制详解)。 Message:Handler发送、接收和处理的消息对象 Looper:每个线程只能拥有一个Looper
,组成表的成分所在的位置和顺序都是已经严格定义好的。 Class字节码总体结构如下: 具体详解请参考 http://www.blogjava.net/DLevin/archive/2011/09/05/358033
最普通的动画就是匀速的动画,每次增加固定的值。但是生活中很多运动并不是匀速运动的,而是有加速度改变的运动。在Web动画中,缓动动画有时候会让网站增色不少。
本文介绍了如何使用缓存来提高UI的载入输入和滑动的流畅性。使用内存缓存、使用磁盘缓存、处理配置改变事件等方法将会有效的解决这个问题。
在Flow 的使用入门一文中,我们在语法层面简要介绍了 Flow 的实际使用;其中有一个联结类型,本文介绍联结类型的使用及相关知识点。
在java中,拷贝分为深拷贝和浅拷贝两种。java在公共超类Object中实现了一种叫做clone的方法,这种方法clone出来的新对象为浅拷贝,而通过自己定义的clone方法为深拷贝。
iOS 和 Android 设备横行的今天,微软 Surface 系列产品如何吸引消费者,下文就带来产品详解。 亮点一:厚度和重量 Surface for Windows RT 的厚度为9.3mm ,重量
SQL SERVER 使用扫描(scan)和查找(seek)这两种算法从数据表和索引中读取数据。这两种算法构成了查询的基础,几乎无处不在。Scan 会扫描并且返回整个表或整个索引。
REQUIRED ,这个是默认的属性 Support a current transaction, create a new one if none exists. 如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。
之前我们关于 Java 8的lambda 的文章看上去很受欢迎。这次我们继续介绍Java 8的新特性,这回要介绍的是默认方法。与lambdas类似,这些都是Java 8引入的主要特性。在这篇文章里,我们要介绍默认方法是什么,有什么作用,已经在日常开发中如何去运用默认方法。
在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。
如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是用static修饰的成员可以通过类名加“.”进行直接访问。
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。