- 博客(42)
- 资源 (22)
- 问答 (3)
- 收藏
- 关注
原创 Java 线程 : Runnable与Callable区别
参考:Java Runnable与Callable区别public interface Callable<V> { V call() throws Exception;}public interface Runnable { void run();}相同点都是接口都可以编写多线程程序都采用Thread.start()启动线程...
2019-10-31 11:39:34 591
原创 Java创建线程的两种方式
参考:Java创建线程的两种方式导航:继承Thread类实现Runnable方法start()方法和run()方法区别比较实现接口的方式比继承类的方式更灵活,也能减少程序之间的耦合度,面向接口编程也是设计模式6大原则的核心 implements Runnable public class RunnalbleTest2 implements Runnable { priv...
2019-10-31 11:27:22 133
原创 java并发: 多线程与volatile、AtomicInteger、ReentrantLock、Condition、Semaphore
参考:Java 每日算法,三个线程按顺序打印题目一启动3个线程A、B、C,使A打印0,然后B打印1,然后C打印2,A打印3,B打印4,C打印5,依次类推。/** * 启动3个线程A、B、C,使A打印0,然后B打印1,然后C打印2,A打印3,B打印4,C打印5,依次类推。 */public class PrintSequenceThread implements Runnable { ...
2019-10-30 19:15:02 598
原创 git常见命令与branch分支操作
-r表示remote,-a表示all,-b表示branch,-d表示delete,常见的branch操作命令//***************************** 增 ******************************git branch branchname // 新建一个【本地分支】,但依然停留在当前分支git checkout -b branchna...
2019-10-30 16:55:30 2356
原创 Git push 常见用法
参考:Git push 常见用法git push命令用于将本地分支的更新,推送到远程主机。git push的一般形式为git push <远程主机名> <本地分支名>:<远程分支名> ,git push [remote_host] [local_branch_name]:[remote_branch_name]注意:1、这里的:前后是必须...
2019-10-30 16:50:45 709
原创 Java : fileutil 文件写入工具类
工具类import android.os.Environment;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.OutputStr...
2019-10-30 10:12:53 238
原创 java : 多线程保证操作同步ReentrantLock、synchronized
参考:Android 多线程保证操作同步(同步锁的俩种)同步的方式1.使用synchronized关键字。使用synchronized关键字修饰的方法会同步执行,必须要等上一个synchronized执行完才会继续执行,如果在执行过程中线程阻塞,他就会一直保持等待的状态,在这里不特别推荐使用这种方式,如果你的需求是必须保证数据同步的情况下且保证不会出现其他情况使用户无法完成操作的情况...
2019-10-24 18:54:25 206
原创 java : 并发线程: AtomicBoolean 与 线程原子性 :多线程只执行一次
AtomicBoolean 与 线程原子性参考:AtomicBoolean使用AtomicBoolean 的api简单使用:public class Test2 { @Test public void test1() { AtomicBoolean exists = new AtomicBoolean(false); System.out....
2019-10-24 18:53:23 1139
原创 kotlin 匿名内部类对比java
匿名内部类多个方法Single.just(1) .subscribe(new SingleObserver<Integer>() { @Override public void onSubscribe(Disposable d) { } @Override public void onSuccess(Integer integer) { } @O...
2019-10-23 19:13:09 390
原创 java、kotlin的单例与构造方法对比
单例模式:双重检测object Test51 { val instance: Test51 get() = SingletonInstance.INSTANCE private object SingletonInstance { internal val INSTANCE: Test51 = Test51 }}//测试fun m...
2019-10-23 10:41:47 204
原创 sharesdk : SMSSDK短信验证
Activitypublic class ThirdLoginBindPhoneActivity extends BaseActivity implements ITimerCallBack { private EditText mThirdLoginEditUsername; private Button mThirdLoginBtnBind; private Str...
2019-10-22 23:24:56 205
原创 Android :手机号码校验
简单校验public boolean isMobileNO(String mobiles) { //"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个, //"\\d{9}"代表后面是可以是0~9的数字,有9位。 String telRegex = "[1][34578]\\d{9}"; if (TextUtils.isEmpty(mobiles)) ret...
2019-10-22 23:23:13 2285
原创 Java : 强软弱虚引用
类关系图Reference (java.lang.ref) PhantomReference (java.lang.ref) SoftReference (java.lang.ref) SoftValueReference in LocalCache (androidx.test.espresso.core.internal.deps.guava.cache) ...
2019-10-21 12:07:02 170
原创 bitmap 与 InputStream、filePath 、resId 、ByteArray、URL互转
转bitmap//BitmapFactory.Options : 可配置比例压缩public class BitmapFactory { //ByteArray -> Bitmap public static Bitmap decodeByteArray(byte[] data, int offset, int length, ...
2019-10-18 16:48:30 374
原创 maven:SSL peer shut down incorrectly/Could not GET/Could not download
项目报错:SSL peer shut down incorrectlyorg.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://jcenter.bintray.com/xxxxxx.jar'.或Unable to resolve dependency for ':p...
2019-10-18 15:39:21 1551
原创 kotlin : 可变长参数数组:kotlin :(vararg a : T) / Java (T... arrays)
kotlin :@Testfun test1() { val temp = arrayOf("1", "2", "3") temp.forEach { println(it) }}//1//2//3//array前面加星号,变为可变长数组@Testfun test2() { val temp = arrayOf("1", "2"...
2019-10-18 11:18:04 7639
原创 kotlin : map / flatMap / flatten
//下面使用map跟flatMap达到同样的效果@Testfun test1() { val list = listOf(1, 2, 3, 4, 5) println("----------------------------") val list2 = list.map { it + 1 } list2.map { pr...
2019-10-18 11:17:13 909
原创 Kotlin 循环(for/foreach)与返回和跳跃(break/continue/return)
class ExampleUnitTest { @Test fun test1() { println("===========for in==============") for (i in 1..5) { println(i) } //1 //2 //3...
2019-10-17 18:39:16 3357
原创 rxjava : Completable # andThen 对比 Observable # flatMapCompletable
Completable # andThen ://返回一个新的Completable C,它首先运行此Completable A,然后再运行另一个Completable B。//A / B 没有数据关系,只有执行顺序关系和是否执行关系//A 先执行 , B 后执行//A onError报错不执行B , A onComplete 才执行Bpublic final Completable ...
2019-10-17 17:56:55 1046
原创 rxjava 与 kotlin filter/groupBy/(flatten) 对比
filterrxjava :@Testpublic void test3() { ArrayList<Integer> integers = new ArrayList<>(); for (int i = 0; i < 6; i++) { integers.add(i); } Observable.fromIte...
2019-10-17 17:52:43 437
原创 rxjava : concat、concatWith、concatArray/merge、mergeWith、mergeArray
串行有序concat 连接最多四个 ObservableSourceconcatWith 与 concatArray 是 concat 的升级版 , 支持连接多个ObservableSource,只是写法不同并行无序merge 连接最多四个 ObservableSourcemergeWith 与 mergeArray 是 merge 的升级版 , 支持连接多个ObservableS...
2019-10-16 19:42:03 1346
原创 rxjava : 检测重复,不去重
@Testpublic void checkDuplicate1() { List<String> list = getStringList(); String temp; for (int i = 0; i < list.size() - 1; i++) { temp = list.get(i); for (int j...
2019-10-15 16:19:05 268
原创 rxjava : flatMap、flatMapIterable、flatMapMaybe、flatMapCompletable、flatMapSingle
flatMap返回一个Observable,它向源ObservableSource和指定的集合ObservableSource发出的一对值发射指定函数的结果,同时限制对这些ObservableSources的并发预订的最大数量public final <R> Observable<R> flatMap( Function<? super T, ? ex...
2019-10-15 11:18:18 2106
原创 rxjava :StartWith
在应用到可观察到的序列之前,StartWith先取一个序列并将其串联起来。StartWith 是用 concat 和 just 处理我们序列的缩减名称。//在应用到可观察到的序列之前,StartWith先取一个序列并将其串联起来。@Testpublic void startWith1() { Observable<Integer> range = Observable....
2019-10-14 18:43:42 358
原创 rxjava: concat \ concatWith \ concatEager \ concatDelayError \ concatMap \ concatArray
concat :concatWith :concatEagerconcatDelayErrorconcatMapconcatMapEagerconcatMapDelayErrorconcatMapEagerDelayErrorconcatMapMaybeconcatMapMaybeDelayErrorconcatMapSingle...
2019-10-14 17:48:04 1054
原创 rxjava : Completable # andThen
Completable # andThen() 源码:先订阅Completable,再订阅 ObservableSource 、 Publisher 、 SingleSource 、 MaybeSource 、 CompletableSource ,并返回新的Observable、Flowable、Single、Maybe、Completable来自此Completable的【错误事...
2019-10-14 16:10:04 976
原创 rxjava : toList 、 toSortedList(排序) 、 toMap
toList : 转为listString[] strs = new String[]{"jack", "ann", "one", "two", "three", "four"};Observable.fromArray(strs) .toList() .subscribe(new SingleObserver<List<String>>...
2019-10-12 15:54:24 2033
原创 rxjava : forEach、subscribe
forEach :订阅{@link ObservableSource}并接收每个元素的通知。参数Consumer : 只关心数据结果subscribe :订阅ObservableSource并提供回调以处理其发出的项目。参数Consumer 、 Observer : 关心数据结果、 异常 、 结束等示例一:Disposable forEach1 = Observa...
2019-10-12 15:05:14 473
原创 rxjava : mergeArray 、 mergeArrayDelayError
参考:RxJava合并Observable——merge和mergeDelayError操作符示例:public void mergeArray() { Observable[] array = getObservables(); Observable.mergeArray(array) .subscribe(getObserver());}/...
2019-10-12 15:04:22 1754
原创 rxjava : publish 与 缓存加载
参考:RxJava2 实战知识梳理(8) - 使用 publish + merge 优化先加载缓存,再读取网络数据的请求过程Observable 、 Observer//模拟缓存数据源。private Observable<List<MyData>> getCacheArticle(final long simulateTime) { return Ob...
2019-10-11 17:35:09 282
原创 rxjava: combineLatest 与 表单验证
RxJava2 实战知识梳理(7) - 基于 combineLatest 实现的输入表单验证效果:两个输入框,分别对应用户名和密码,它们的长度要求分别为28和416,如果两者都正确,那么登录按钮的文案变为“登录”,否则显示“用户名或密码无效”。<Button android:layout_width="match_parent" android:layout_hei...
2019-10-11 16:55:43 209
原创 rxjava : publish / refCount / share / replay
参考:RxJava连接操作符RxJava操作符(09-算术/聚合操作&连接操作)总结:ConnectableObservable 和它的子类以及它们的操作符:ConnectableObservable.connect() — 指示一个可连接的Observable开始发射数据Observable.publish() — 将一个Observable转换为一个可连接的Observa......
2019-10-11 16:53:35 742
原创 rxjava : 不继承RxAppCompatActivity的情况下使用RxLifeCycle
示例:主要原理用到的是Android的LifeCycle。public class Activity2 extends AppCompatActivity { private static final String TAG = "RxLifecycleAndroid"; @Override protected void onCreate(Bundle savedIn...
2019-10-10 16:09:51 413
原创 rxjava : RxLifeCycle解析
参考:Android技能树 — Rxjava取消订阅小结(2):RxLifeCycleRxLifeCycle 官方demo://Note:Activity需要继承RxAppCompatActivity,fragment需要继承RxFragment// implementation 'com.trello.rxlifecycle3:rxlifecycle:3.1.0'// //...
2019-10-10 15:53:28 244
原创 rxjava : 依赖库和相关依赖库
基础库:https://github.com/ReactiveX/RxAndroidhttps://github.com/ReactiveX/RxJava/tree/2.xallprojects { repositories { mavenCentral() //仓库 }}implementation 'io.reactivex.rxjava2:rxa...
2019-10-09 16:08:29 2123
原创 rxjava : Flowable 和Backpressure背压
参考:给初学者的RxJava2.0教程(五)同步和异步的区别仅仅在于是否有水缸当上下游工作在同一个线程中时, 这时候是一个同步的订阅关系, 也就是说上游每发送一个事件必须等到下游接收处理完了以后才能接着发送下一个事件.当上下游工作在不同的线程中时, 这时候是一个异步的订阅关系, 这个时候上游发送数据不需要等待下游接收, 为什么呢, 因为两个线程并不能直接进行通信, 因此上游发送的事件...
2019-10-09 16:05:39 328
原创 rxjava : 常用的 compose 与 ObservableTransformer
RxJavaUtils 工具类public class RxJavaUtils { public static <T> ObservableTransformer<T, T> applySchedulers() { return new ObservableTransformer<T, T>() { @Over...
2019-10-08 17:57:21 3913
原创 rxjava : lambda 与 ObservableTransformer 、compose:
示例一 : 将Integer 转 String// private ObservableTransformer<Integer, String> transformer() {// return new ObservableTransformer<Integer, String>() {// @Override// ...
2019-10-08 17:40:31 332
原创 rxjava : compose 与 ObservableTransformer、lift 与 ObservableOperator
compose 与 ObservableTransformer ://操作被观察者(abstract class Observable<T> implements ObservableSource<T> )//将源ObservableSource整体转换//通过对它应用特定的Transformer函数来转换ObservableSource。 //此方法在Obs...
2019-10-08 17:37:17 2669
原创 报错:java.lang.NoSuchFieldError: No static field
java.lang.NoSuchFieldError: No static field recyclerview of type I in class Lcom/example/vidarecyclerviewstagger/R$id; or its superclasses (declaration of 'com.example.vidarecyclerviewstagger.R$id...
2019-10-07 20:59:19 3999
android studio (as)主题theme
2018-10-08
android反编译工具
2018-06-04
httpClient4.5.3+Jsoup1.10.2
2018-02-23
httpclient-4.5.3完整jar包
2018-02-23
decp2 dbutils pool2 mysql
2016-11-15
android studio 安装插件gsonformat 出现timeout
2018-03-30
求解输出??并解析~谢谢。
2016-03-13
java问题~数字判断!~~~~~
2016-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人