1.ART 与 Dalvik 的优缺点对比 什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机.dex格式是专为Dalvik应用设计的一种压缩格.Dalvik允许同时运行多个虚拟机的实例,并且每一个应用作为独立的Linux进程执行.  目前在Android4.4及其以下的版本中,应该全都是使用的Dalvik这种模式. 什么是ART:在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效…
静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明.程序员必须声明一个私有构造器.私有构造器禁止开发者在类的范围之外实例化类的实例.使用私有构造器的效果与使用静态类的效果非常相似.两者的区别在于,私有构造器方式仍然可以从类的内部对…
静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明.程序员必须声明一个私有构造器.私有构造器禁止开发者在类的范围之外实例化类的实例.使用私有构造器的效果与使用静态类的效果非常相似. 两者的区别:私有构造器方式仍然可以从类的内部对类…
转载原地址: http://www.cnblogs.com/NothingIsImpossible/archive/2010/07/28/1786706.html C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向你做一下解析. C#的类中可以包含两种方法:C#静态方法与非静态方法.那么他们的定义有什么不同呢?他们在使用上会有什么不同呢? 让我们来看看最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法. 下面我们分四个方面来看看…
静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明.程序员必须声明一个私有构造器.私有构造器禁止开发者在类的范围之外实例化类的实例.使用私有构造器的效果与使用静态类的效果非常相似.两者的区别在于,私有构造器方式仍然可以从类的内部对…
静态类和非静态类的区别 静态类: static       关键字 调用 类名.方法 在静态方法中只能访问静态成员  在静态类中只能有静态成员 在非静态类中 即可有非静态成员,也可以有静态成员 在静态方法中只能使用静态成员…
static静态类与非静态类的区别 1.在非静态类中可以有实例成员也可以有静态成员 2.在调用的时候需要使用对像名.实例成员调用(先要实例化,如person ps=new person();  ps.janzhi;) 在调用静态成员的时候,需要使用类名.静态成员名person.jianzhi()  int.parse()   ConSole.WriteLine()  Convert.toint32() 3.静态函数方法中不能访问实例成员,只能访问静态成员 4.实例函数方法可以使用静态成员,也可以…
静态类静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明.程序员必须声明一个私有构造器.私有构造器禁止开发者在类的范围之外实例化类的实例.使用私有构造器的效果与使用静态类的效果非常相似. 两者的区别:私有构造器方式仍然可以从类的内部对类进…
静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明.程序员必须声明一个私有构造器.私有构造器禁止开发者在类的范围之外实例化类的实例.使用私有构造器的效果与使用静态类的效果非常相似. 两者的区别:私有构造器方式仍然可以从类的内部对类…
1.Cache接口和DiskBasedCache实现类 首先,DiskBasedCache类是Cache接口的实现类,因此我们需要先把Cache接口中的方法搞明白. 首先分析下Cache接口中的东西,首先是接口的内部类 class entry{},用途是返回缓存的数据,下面是内部类的具体实现: class Entry { /** * 从缓存中返回的数据 * The data returned from cache. * */ public byte[] data; /** * 缓存一致性 * E…
1. RequestQueue类 我们使用 Volley 的时候创建一个 request 然后把它丢到 RequestQueue 中就可以了.那么来看 RequestQueue 的构造方法,含有四个参数的构造器是最终会调用的构造器. public RequestQueue(Cache cache, Network network, int threadPoolSize, ResponseDelivery delivery) { mCache = cache; mNetwork = network…
呵呵,静态类,静态构造函数,静态字段,静态属性和静态方法.既然是静,那就顾其名思其意吧. 静态成员主要包括静态字段和静态属性,静态成员可以实现类中能够被所有实例对象共享的数据.静态成员属于类所有,无论创建多少实例对象,静态成员在内存中只有一份. 1.什么是静态类呢?简单的来说一个类如果只包含静态成员和静态方法,则该类可以定义为静态类,定义的方法是给该类加上static修饰符.用一个例子简单说明下: static class MyStatic { private static string sta…
java静态与非静态区别   这里的静态,指以static关键字修饰的,包括类,方法,块,字段. 非静态,指没有用static 修饰的. 静态有一些特点: 1.全局唯一,任何一次的修改都是全局性的影响 2.只加载一次,优先于非静态 3.使用方式上不依赖于实例对象. 4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束. 可参考 :http://blog.csdn.net/zhandoushi1982/article/details/8453522/. 关于静态内部类(嵌套类)和非静态内部类…
为提升应用运行性能,谷歌官方从5.0(api level:21)版本开始,将虚拟机运行环境默认为ART, 此处主要研究ART.Dalvik在multidex处理上的差异和关联,做了一个简单的手绘,如下: multidex由分包.合包两个过程组成,分包均是通过andriod build tool来做的,两者存在一个很重要的差异点: android 5.0及以上手机在安装apk时,手机设备中的dex2oat工具会将dex1~dexN读取合成为一个oat文件, 供art使用.dex2oat的过程是不区…
Java内部静态类与内部非静态类 把类看成一个属性,稍微容易理解一些:在main方法中,不会去直接引用一个非static的变量,对于类也一样. 学习了:http://blog.csdn.net/zero_and_one/article/details/53167372 这个膜拜一下 org https://zhidao.baidu.com/question/149873207.html https://www.zhihu.com/question/28197253…
昨天发现了一个问题,就是使用对类中的非静态成员函数使用std::bind时,不能像普通函数一样直接传递函数名,而是必须显式地调用&(取地址),于是引申出我们今天的问题:非静态类成员函数指针和普通函数指针有什么区别? 一.C++中对函数到指针的隐式转换 以前在C语言程序设计课上,老师都会说:“函数名就是指向这个函数的指针”.实际上通过查阅cppreference中的隐式转换规则,其中有这么一句关键的话道出了玄机: 函数类型 T 的左值能隐式转换成指向该函数的指针纯右值.这不作用于非静态成员函数,因…
一.IntentService与Service的区别 Service 是 Android 四大组件之一,正常来说,我们直接使用 Service 就可以了. 但是 Service 存在几个问题: 默认不会运行在单独的进程中,而是和所在应用共用同一个进程. Service 也是在主线程中运行,所以一些耗时操作,依然需要单独开启线程去执行. 第一个问题其实并不是什么大的问题,但是正常来说,我们使用 Service 就是想在后台执行一些其他的操作,例如:下载等,而这些,又需要额外开启线程来完成任务,这样…
1.首先来看一个常规的handler用法: 在主线程中建立一个handler: private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0: mTestTV.setText("This is handleMessage");//更新UI break; }…
service生命周期 Service主要包含本地类和远程类. Service不是Thread,Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的.如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的.如果是Remote Service,那么对应的 Service 则是运行在独立进程的 main 线程上. 通信方式有很多但是需要根据需求去选择…
Volley没有jar包,需要从官网上下载源码自己编译出来,或者做成相关moudle引入项目中.我们先从最简单的使用方法入手进行分析: //创建一个网络请求队列 RequestQueue requestQueue = Volley.newRequestQueue(this); String url = "http://news-at.zhihu.com/api/4/news/latest"; //创建一个网络请求 StringRequest request = new StringRe…
1. 在StringRequest类中的75行--new String();使用方法 /** * 工作线程将会调用这个方法 * @param response Response from the network * @return */ @Override protected Response<String> parseNetworkResponse(NetworkResponse response) { String parsed; try { parsed = new String(res…
链接:http://www.jb51.net/LINUXjishu/19905.html 查看Linux里面的batch: cat /etc/crontab (1)0 19 * * 6 root /data01/home/centillion/apps/himawari_delete_batch/batch-delete-candle.sh 正常是星期六的19点钟执行一次,然后看时区,如果是UTC,由于服务器是在日本那边,所以UTC+9 因此是周日的凌晨四点执行  (背景:武汉工作)*/30 *…
新项目组使用完善的angularMVVM设计思路架构,很庆幸能够来到这个项目组,在这里的每一天都能够学习到新的知识,为了防止以后忘记,记录一下个人的理解 首先接触最多的是directive,directive目前用到了以下几个属性, restrict,scope,link,templateUrl 首先是restrict:这个无需多说,用来定义自定义指令的使用形式,包括A属性,E标签,C是class,M是备注,最常用的就是EA,尤其是E可以在标签中使用自定义属性传参给父controller,或者定…
1. 适配器设计模式 实例描述:我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,比如德国,使用的是两项圆头的插头,那么我们使用的手机充电器插头无法插到德国的插排中去,那就意味着我们无法给手机充电.怎样解决这个问题呢?只要使用一个电源转化器就行了. 2.listview性能优化…
学习了LayoutInflater的原理分析.视图的绘制流程.视图的状态及重绘等知识,按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件.组合控件.以及继承控件.那么下面我们就来依次学习一下,每种方式分别是如何自定义View的. (一)自绘控件 自绘控件的意思就是,这个View上所展现的内容全部都是我们自己绘制出来的.绘制的代码是写在onDraw()方法中的.参考相关博客 http://blog.csdn.net/guolin_blog/article/details/1735…
1.handler+Thread 和 runOnUIThread 和 handler.post 方法 区别: 从实现原理上,两者别无二致,runOnUiThread也是借助Handler实现的.  对于使用场景,runOnUiThread用法简单,并且共享了同一个Handler,用起来高效.方便.另外,如果在主线程中直接调用,runOnUiThread也可以判断并立即执行,不再推入消息队列.  而Handler由于更加基础,所以可定制性要比runOnUiThread强,可以实现标记.延时等功能,…
学习完了CacheDispatcher这个类,下面我们看下NetworkDispatcher这个类的具体细节,先上代码: /** * 提供一个线程执行网络调度的请求分发 * Provides a thread for performing network dispatch from a queue of requests. * * 请求被添加到了指定的队列中 * 返回的数据通过ResponseDelivery接口返回 * Requests added to the specified queue…
接着volley源码(三)继续,本来是准备写在(三)后面的,但是博客园太垃圾了,写了半天居然没保存上,要不是公司这个博客还没被限制登陆,鬼才用这个...真是垃圾 继续解读RequestQueue的源码,Volley 的入口是创建一个 RequestQueue 队列,然后开启一个缓存线程和一组网络线程,等待用户 add 新的 request.那我们现在看一下 add 方法里面,RequestQueue 做了哪些事情. /** * 添加一个请求到这个消息队列中去 * Adds a Request t…
CAS主要参考博文:classtag  http://www.jianshu.com/p/473e14d5ab2d CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术 .Compare and Swap, 翻译成比较并交换. 简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值. java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包.可见CAS的重要性…
1.reentrantLock java.util.concurrent.lock 中的Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作为语言的特性来实现.这就为Lock 的多种实现留下了空间,各种实现可能有不同的调度算法.性能特性或者锁定语义.         ReentrantLock 类实现了Lock ,它拥有与synchronized 相同的并发性和内存语义,但是添加了类似锁投票.定时锁等候和可中断锁等候的一些特性.此外,它还提供了在激烈争用情况下更佳的性能…