- 博客(19)
- 收藏
- 关注
原创 ThreadLocal
ThreadLocalThreadlocal而是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据。ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应的值。以下为ThreadLocal的使用:static final ThreadLocal<T...
2020-07-02 17:37:31
172
原创 并发编程 Java 三把锁(Synchronized、ReentrantLock、ReadWriteLock)
Lock、ReentrantLock与Synchronized很相似,对对象加锁Lock接口:public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long time...
2020-07-02 10:16:30
3559
原创 Java类加载机制,你理解了吗?
java文件通过编译器变成了.class文件,接下来类加载器又将这些.class文件加载到JVM中。其中类装载器的作用其实就是类的加载。类的加载的概念:其实可以一句话来解释:类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类加载的过程其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的.
2020-05-13 12:42:48
192
原创 为什么要反射?
这里我不打算像别的答案上来就上代码,给你讲怎么用,是啥是啥,老实说那样比较像培训java程序员的感觉,一点对知识的好奇心都没有,如果是想速成反射的,大家看别的答案吧。写答案,可能会有默认知识现象,就是有些知识点,我知道,但你不知道,可以评论!这里我试着简单粗暴地解释一波!<img src="https://pic4.zhimg.com/v2-4face8109e0d52ef5894c41c69e4ec6b_b.jpg" data-rawwidth="652" data-rawheight=
2020-05-13 12:27:11
272
原创 Android 多线程
AsyncTask:AsyncTask的使用:创建 AsyncTask 子类 & 根据需求实现核心方法private class MyTask extends AsyncTask<Params, Progress, Result> { .... // 方法1:onPreExecute() // 作用:执行 线程任务前的操作,...
2019-10-16 22:41:40
99
原创 Java集合类
Collection接口是集合类的根接口,没有直接的实现类;Set和List继承了Collection接口;Set中不能包含重复的元素;List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。Map是Java.util包中的另一个接口,和Collection接口相互独立;Map包含了key-value对,Map不能有重复的key,但可有相同的value。Iterator,所有...
2019-10-16 21:09:04
181
原创 考核问题
动画开发:帧动画:将一张张单独的图片进行连续播放,从而在视觉上产生一种动画的效果;有点类似于某些软件制作gif动画的方式补间动画:补间动画作用的最小元素为View,补间动画的执行并不会真正改变控件的属性值;默认情况下,补间动画的执行速率都是先加速后减速,插值器用来控制动画的执行速率,通过插值器可以修改动画的执行速率。属性动画:属性动画可以通过直接更改 View 的属性来实现 View 动画。...
2019-10-15 00:20:35
281
原创 安卓动画
帧动画:帧动画要说是三种动画中比较简单的一种了,它是基于一连串的图片完成的,它的原理就是将一张张单独的图片进行连续播放,从而在视觉上产生一种动画的效果;有点类似于某些软件制作gif动画的方式。补间动画补间动画又可以分为四种形式:alpha(淡入淡出)、translate(位移)、scale(缩放)、rotate(旋转)。补间动画的实现,一般会采用xml 文件的形式;代码会更容易书写和阅读,...
2019-10-14 23:10:56
139
原创 Activity/Fragment
ActivityActivity生命周期:onCreate(): 创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。onStart(): Activity变为在屏幕上对用户可见时调用。onResume(): Activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用)。onPause(): Activity...
2019-10-14 23:09:57
724
原创 高效布局
布局类型:LinearLayout(线性布局):实际开发中比较常用的,主要以水平和垂直的方式来显示界面中的控件RelativeLayout(相对布局):相对布局是通过相对定位的方式指定控件位置,即以其它控件或父容器为参照物,摆放控件位置FrameLayout(帧布局):Android中最简单的一种布局,该布局为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一帧)...
2019-10-11 21:21:42
142
原创 线程状态
初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得C...
2019-10-09 14:24:19
314
原创 ContentProvider基本使用
1. ContentProvider基本用法:1、创建自己的数据列表;2、自定义ContentProvider实现相关的抽象方法;3、在AndroidManifest中声明provider以及定义相关访问权限;4 、通过ContentResolver根据URI进行增删改查。-------------------------ContentProvider是一个抽象类,如果我们需要开发自己的...
2019-10-08 21:50:58
409
原创 安卓异步消息处理机制---Handler原理
Handler使用方法:---------------------Handler.sendMessage():此时更新UI的操作写在Handler的handleMessage方法中改方式分为两种:***新建Handler子类(内部类):***新创建Handler子类(继承Handler类) & 复写handleMessage()方法class Mhandler extends Ha...
2019-10-07 18:46:07
262
原创 线程池
线程池的体系结构:java.util.concurrent.Executor 负责线程的使用和调度的根接口|–ExecutorService 子接口: 线程池的主要接口|–ThreadPoolExecutor 线程池的实现类|–ScheduledExceutorService 子接口: 负责线程的调度|–ScheduledThreadPoolExecutor : 继承ThreadPool...
2019-10-07 14:30:08
130
原创 多线程创建方式
线程创建方式1. 继承Thread类创建线程类(1)定义子类继承Thread类,重写run方法,方法体为线程要完成的任务;run()方法称为执行体(2)创建Thread子类的线程对象;调用线程对象的start()方法启动线程2. 通过Runnable接口创建线程类(1)定义子类实现runnable接口,重写该接口的run()方法,方法体为线程的线程执行体(2)创建Runnable实现类...
2019-10-07 11:08:11
138
原创 数据存储
数据存储到SharedPreference:得到SharedPreference对象:有三种方法:------Context类中的getSharedPreferences()方法:共有两个参数,第一个参数指定SharedPreferences文件名称,第二个参数指定操作模式,目前只有MODE_PRIVATE可选,表示只有当前应用程序可操作-----Activity类中的getPrefe...
2019-10-05 20:31:19
260
原创 数据存储--数据库
数据库语言:创建新表:create table tablename( column1 type [not null] [primary key] autoincrement, column2 type [not null],....)数据库创建:通过SQLiteOpenHelper抽象类来生成,需要建一个类来继承SQLiteOpenHelper,实现他的构造方法和抽象方...
2019-10-05 18:09:51
144
原创 Broadcast
**Broadcast**Broadcast的分类:*标准广播:完全异步执行,当发出广播后,广播接收器几乎会在同一时刻接收到广播消息,所以没有先后顺序可言,效率比较高,无法被截断。有序广播:同步执行,广播发出后,会有一个广播接收器接收广播消息,当这个广播接收器中的逻辑执行完毕后广播才会继续传递;有先后顺序,优先级较高的接收器先收到广播消息并且可以截断正在传递的广播,使得后面的接收...
2019-09-29 20:46:01
360
原创 Service
Service首先要创建服务,必须创建 Service 的子类,同时重写一些回调方法;package com.zejian.ipctest.service; import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.support.annotati...
2019-09-29 19:50:02
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人