- 博客(22)
- 资源 (2)
- 收藏
- 关注
原创 17年那点事
17年初毕业 至今已在江湖上混了320天了 220个工作日 平均工作15h 原创博客308篇 访问量18.6w 看了5本杂书 体重稳定在70kg 没挣到钱……目前水平还是很菜很菜 18年希望能养成几个好习惯 技术上能有所长进
2017-12-30 11:22:38 193 1
原创 android 数据库
生成数据库的时候 名字传入带路径的即可demo: public StudentDBDemo(Context context, String name) { // sdcard 更目录下创建name数据库 super(context, Environment.getExternalStorageDirectory() + "/"
2017-12-27 10:23:24 132
转载 Android开发中很有用的方法、类与接口收集
第一部分 (By StephenLee)1、Throwable类中的getStackTrace()方法,根据这个方法可以得到函数的逐层调用地址,其返回值为StackTraceElement[];2、StackTraceElement类,其中四个方法getClassName(),getFileName(),getLineNumber(),getMethodName()在调试程序打印Log时
2017-12-27 09:56:07 599
原创 线程异常
线程代码不能抛出任何checked异常。,checked异常都只能被线程本身消化掉。checked异常一定要在线程内部消化。 但是,线程代码中是可以抛出错误(Error)和运行级别异常(RuntimeException)的。Erro通常是vm处理的,而RuntimeException确是比较正常的,如果在运行过程中满足了某种条件导致线程必须中断,可以选择使用抛出运行级别异常来处理。当线
2017-12-19 11:26:14 996
原创 android setContentView原码分析一
1、源头 Activity的setContentView()public void setContentView(@LayoutRes int layoutResID) { getWindow().setContentView(layoutResID); initWindowDecorActionBar();}public Window getWindo
2017-12-18 15:10:11 378
原创 Activity启动源码分析二
用户从Launcher程序点击应用图标可启动应用的入口Activity,Activity启动时需要多个进程之间的交互,Android系统中有一个zygote进程专用于孵化Android框架层和应用层程序的进程。还有一个SystemServer进程,该进程里运行了很多Binder Service,例如ActivityManagerService,PackageManagerService,Win
2017-12-17 19:00:08 188
原创 Activity启动源码分析
启动Activity的请求会由Instrumentation来处理,然后它通过Binder向AMS发请求,AMS内部维护着一个ActivityStack并负责栈内的Activity的状态同步,AMS通过ActivityThread里面ApplicationThread的去同步Activity的状态从而完成生命周期方法的调用。图一 转载图片
2017-12-16 12:03:09 244
转载 Java NIO
目录:一.java NIO 和阻塞I/O的区别 1. 阻塞I/O通信模型 2. java NIO原理及通信模型二.java NIO服务端和客户端代码实现 具体分析: 一.java NIO 和阻塞I/O的区别 1. 阻塞I/O通信模型 假如现在你对阻塞I/O已有了一定了解,我们知道阻塞I/O在调用InputStream.read()方法
2017-12-15 14:29:16 138
原创 PorterDuffXfermode
PorterDuffXfermode设置的是两个图层交集区域的显示方式,det是先画的图形而src则是后画的图形。常用方式: 使用一张图片作为另外一张图片的遮罩层,通过控制遮罩层的图形,来控制下面被遮罩图形的显示效果。其中最常用的就是通过DST_IN、SRC|_IN模式来实现讲一个矩形图片变成圆角图片或者是圆形图片。demo:public static Bit
2017-12-11 15:35:12 171
原创 坐标那点事
X、Y,translateX、translateY都是相对于父View的View 在平移的过程中,top和left表示的是原始左上角的位置信息,其值并不会发生改变,此时发生改变的是X、Y,translateX、translateY。 ...
2017-12-09 14:37:10 168
原创 android canvas
canvas 当创建一个canvas对象的时候,传入一个bitmap new canvas(bitmap) [这个bitmap就相当于画布了],这个bitmap可以用来存贮所有绘制在canvas上的像素信息,通过这种方式创建的canvas对象,后面在调用canvas画图就都发生在这个bitmap上了demo: @Override protected void onD
2017-12-08 17:16:26 216
原创 并发访问数据库的坑啊
1、脏读 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。例如:张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。与此同时,事务B正在读取张三的工资,读取到张三的工资为8000。随后,事务A发生异常,而回滚了事务。张三的工资又回滚为5
2017-12-05 12:49:48 1108
原创 http Content-Type
文件扩展名Content-Type(Mime-Type)文件扩展名Content-Type(Mime-Type).*(二进制流,不知道下载文件类型)application/octet-stream.tifimage/tiff.001application/x-001
2017-12-03 15:09:06 220
原创 java volatile
jvm运行时刻内存有一个内存区域是jvm虚拟机栈,每一个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值信息。当线程访问某一个对象的值的时候,首先通过对象的引用找到对应在堆内存的变量的值,然后把堆内存变量的具体值load到线程本地内存中,建立一个变量副本,之后线程就不再和对象在堆内存变量值有任何关系,而是直接修改副本变量的值,在修改完之后的某一个时刻(线程退出之前),自动把线程变量副本的值
2017-12-01 15:00:28 149
原创 java对象实例化过程
1. 首先,按需加载需要的 *.class文件,如果已经加载,便不再重复加载;如果没有加载,则加载进内存。(有一个检查的过程); 2. 根据属性在内存堆中分配对象空间,期间会递归分配所有父类空间,并对属性完成默认初始化。如: int型初始化为0,Object型初始化为null; 3. 进行属性的赋值; 4. 递归调用父类构造器; 5. 调用本类构造器。
2017-12-01 13:19:28 229
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人