Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android. 很多开发规范都是不建议在Android中使用枚举的,在Android系统中使用枚举的开销是使用常量的2倍.一般地,在一个文件中定义常量 public class FileType { public static final int TYPE_MUSIC =…
前言:我相信大家在编写代码时经常会遇到各种状态值,而且为了避免硬编码和代码中出现魔法数,通常我们都会定义一个枚举,来表示各种状态值,直到我看到Java中这样使用枚举,我再想C# 中可不可以这样写,今天就分享一下我的感悟. 一.通常我们是这样使用枚举的 (1)switch中使用枚举 public enum EmployeeType { Manager, Servant, AssistantToTheRegionalManager } public class Employee { public E…
预备知识: Java注解基础 Java反射原理 Java动态代理 一.布局文件的注解 我们在Android开发的时候,总是会写到setContentView方法,为了避免每次都写重复的代码,我们需要使用注解来代替我们做这个事情,只需要在类Activity上声明一个ContentView注解和对应的布局文件就可以了. @ContentView(R.layout.activity_main) public class MainActivity extends AppCompatActivity {…
1.@Nullable  作用于函数参数或者返回值,标记参数或者返回值可以为空. 2,@NonMull 作用于函数参数或者返回值,标记参数或者返回值不可以为空. 3.@LayoutRes 标记整数值android.R.layout类型 4.@UiThread 标记运行在UI线程 中 5.@MainThread 标记运行在主线程中 6.@workThread 标记运行在后台线程中 7.@binderThread 标记运行在Binder线程中 8.@RequiresPermission 标记运行权限…
1.MODE_PRIVATE:默认操作模式,代表该文件是私有数据,只能被应用自身访问,在该模式下,写入的的内容会覆盖原文件中的内容. 2.MODE_APPEND:该模式会检查文件是否存在,存在就往文件追加内容,否则新建文件. 3.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取. 4.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.…
原文网址:http://android-performance.com/android/2014/02/17/android-manage-memory.html 本文内容翻译自:http://developer.android.com/training/articles/memory.html 随机存取存储器(RAM)再任何软件开发环境中都是宝贵的资源,但是在移动操作系统中,内存资源更为宝贵,使用时也会收到限制.虽然Android的Dalvik虚拟机有运行时的垃圾回收机制,但是这不意味着你的A…
转自:http://www.2cto.com/kf/201405/302998.html 这篇文章主要讲解注解实现findViewById的功能,首先我们来熟悉一下在java中怎么定义一个注解和解析一个注解 注解的概念是在jdk5.0中提出来的,在java.lang的包中已经定义了三个注解:Override,Deprecated,SuppressWarningsOverride相信大家非常熟悉,就是表明这个方法是改写了父类的方法Deprecated表示在新版本的 jdk中已经不建议使用这个方法或…
一.Enum的产生 Java1.5中引入了枚举的语法,包括Enum,EnumSet,EnumMap等.其中Enum就是我们在C或C++中见过的枚举类型,但是Java中的枚举又比C或C++中的枚举更成熟和复杂.在Java中,枚举算是一种特殊的类,也就是class,因此它可以做很多类相关的事情,而不仅仅是定义几个枚举值 二.Android官方建议 Android官网不建议使用enums,占用内存多(Enums often require more than twice as much memory…
反射 Java反射(Reflection)定义 Java反射机制是指在运行状态中 对于任意一个类,都能知道这个类的所有属性和方法:对于任何一个对象,都能够调用它的任何一个方法和属性: 这样动态获取新的以及动态调用对象方法的功能就叫做反射. 比如像下面: //获取类 Class c = Class.forName("java.lang.String"); // 获取所有的属性 Field[] fields = c.getDeclaredFields(); StringBuffer sb…
转载请注明出处:http://blog.csdn.net/blog_wang/article/details/38468547 相信很多使用过Afinal和Xutils的朋友会发现框架中自带View控件注解及 事件绑定功能,我们无需使用findViewById和setOnClickListener即可完成view初始化和监听事件,使用注解在很大程度上使 我们的代码看起来更加简洁,让我们的代码看起来不是那么冗余,那我们今天就来一探究竟,看看其中原理是如何来实现的. Java注解相当于一种标记,标记…