java
CCCCCCCC777
这个作者很懒,什么都没留下…
展开
-
Android解压zip文件
1. 引入第三方工具类库 implementation 'com.blankj:utilcode:1.29.0' 2. 调用压缩工具类方法 List<File> unzipFileList = ZipUtils.unzipFile(zip文件路径地址, 要解压到哪个目录下); 返回值是解压的文件列表原创 2020-11-25 22:38:35 · 627 阅读 · 0 评论 -
fragment getActivity()为空
复写Activity的onSavaInstanceState()方法 @Override public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { } 不要调用其父类的方法,不要让Activity保存Fragment的状态原创 2016-06-07 16:53:37 · 678 阅读 · 0 评论 -
抽象类
当多个类中出现相同功能,但是功能主体不同 这时可以进行向上抽取这时,只抽取功能定义,而不抽取功能主体 关键字abstract 抽象类的特点: 1.抽象方法一定在抽象类中 2.抽象方法和抽象类都必须被abstract关键词修饰 3.抽象类不可以用new创建对象,因为调用抽象方法没有意义 4.抽象类中的方法要被使用,必须由子类复写所有抽象发发后,建立子类对象调用原创 2016-06-01 23:19:05 · 205 阅读 · 0 评论 -
多态
多态:可以理解为事物存在的多种形态 1.多态的好处 父类的引用指向了自己的子类对象 父类的引用也可以接受自己的子类对象 2.多态的前提 必须类与类之间有关系,要么继承,要么实现 存在覆盖 3.多态的好处 提高了程序的扩展性 4.多态的应用 5.多态的弊端: 但是只能使用父类引用访问父类中的成员原创 2016-06-01 23:18:30 · 226 阅读 · 0 评论 -
多线程
创建线程的第一种方式 1.定义类继承Thread 2.复写Thread类的run方法 目的:将自定义代码存储在run方法中,让线程运行 3.调用线程的start方法 该方法两个作用:启动线程,调用run方法 发现每次运行结果都不同 因为多个线程都获取cpu执行权,cpu执行到谁,谁运行。 明确的一点,某一时刻,只有一个程序在运行(多核除外) 我们可以形象的把多原创 2016-06-01 23:18:01 · 207 阅读 · 0 评论 -
线程锁
synchronized(obj){ //同步代码块 } 同步函数使用的锁是this 必须两个或两个以上线程 必须是同一个锁 如果同步函数被静态修饰后,使用的锁不再是this 静态进内存时内存中没有本类对象,但是有该类对应的字节码对象 类名.class 该对象的该类是Class 静态的同步方法,使用的锁是该方法所在类的字节码对象原创 2016-06-01 23:17:25 · 211 阅读 · 0 评论 -
多线程-单例设计模式懒汉 饿汉
饿汉 class Single{ private static final Single s = new Single(); private Single(); private static Single getInstance(){ return a; } } 懒汉 class Single { private static S原创 2016-06-01 23:16:50 · 505 阅读 · 0 评论 -
多线程通讯-等待唤醒机制
wath notify notifyAll 都是用在同步中,因为要对持有监视器(锁)的线程操作 所以要使用在同步中,因为只有同步具有锁 为什么这些操作线程的方法要定义在Object类中呢 因为这些方法操作同步中线程时,必须要标识他们它们所操作线程只有的锁 不可以对不同锁中的线程进行唤醒。 也就是或,等待唤醒必须是同一个锁 而锁可以是任意对象,所以可以i被任意对象调原创 2016-06-01 23:15:55 · 220 阅读 · 0 评论 -
多线程(停止线程)
使用interrupt(中断方法) 该方法是结束线程的冻结状态,使线程回到运行状态中来 stop方法过时 如何停止线程 只有一种,run方法结束 多线程运行,运行代码通常是循环结构。 只要控制住循环,就可以让run方法结束,也就是线程结束 特殊情况: 当线程处于冻结状态 就不会读取到标记,那么线程就不会结束原创 2016-06-01 23:15:17 · 315 阅读 · 0 评论