JAVA
文章平均质量分 67
ZionLife
这个作者很懒,什么都没留下…
展开
-
JAVA中线程相关知识
JAVA中的线程调度方式是抢占式调度。即每个线程将有系统分配执行时间,线程的切换不由线程本身来决定。在这种线程调度方式下,线程的执行时间是可控的,不会有一个一个线程阻塞导致整个进程阻塞的问题。在JAVA中,我们可以通过给线程设置优先级来“建议”系统给线程分配或多或少的执行时间。当两个线程都处于Ready状态时,优先级高的线程容易(并非绝对)被系统选择执行。 由于JAVA中的线程是通过映原创 2017-03-27 20:23:08 · 450 阅读 · 0 评论 -
线程池深入解析笔记
https://www.jianshu.com/p/117571856b28 https://juejin.im/entry/58fada5d570c350058d3aaad概述这篇笔记也是整理于寒假实习期间,由于美颜相机demo中的缩略图渲染功能涉及到多线程,使用了线程池减少资源开销,所以整理一下线程池笔记,以便以后查询(待完善)。 使用线程池的主要目的在于: 1. 降低资源消...原创 2018-03-11 20:36:37 · 346 阅读 · 0 评论 -
Java并发编程学习笔记(1)基本概念
线程的生命周期状态NEW:一个已创建而未启动的线程出于该状态。RUNNABLE:该状态可以被看成一个复合状态,包含两个子状态:READY和RUNNING。前者表示线程可以被线程调度器(Scheduler)进行调度而使之处于RUNNING状态。后者表示该线程只在运行。执行Thread.yield()线程可能由RUNNING转换为READY。处于READY子状态的线程也被称为活跃线程。 ...原创 2018-03-15 10:31:19 · 440 阅读 · 0 评论 -
观察者模式与Fragment间通信
前两天腾讯电话面试,被狠狠地虐了一把。本来以为还有周末两天可以好好准备,居然投完简历半个钟就打电话过来了,心塞。面试官提到一个问题,fragment间怎样实现通信。我回答通过Activity做中介。面试官要求用低耦合的方式,一时没想起。后来上网找了一下发现可以通过观察者模式来实现。虽然也是通过Activity做中介,但是不是直接在Fragment中通过操控另一个Fragment方式,而是在frag原创 2017-06-25 11:53:19 · 1110 阅读 · 0 评论 -
JAVA运行时数据区域
JAVA运行时数据区域分为:①、方法区(Method Area);②、虚拟机栈(VM Stack);③、本地方法栈(Native Method Stack);④、堆(Heap);⑤、程序计数器(Program Counter Register); 其中,虚拟机栈、本地方法栈、程序计数器是线程隔离的数据区,方法去和堆是由所有线程共享的数据区。 ①、方法区:用于存原创 2017-04-12 20:22:53 · 632 阅读 · 0 评论 -
HashTable/HashMap/ConcurrentHashMap
概述: Hashtable 是散列表,存储的是键值对(key-value)的映射。Hashtable 继承与Dictionary,实现了Map、Cloneable、Serializable接口。它是线程安全的。Hashtable 中的映射不是有序的。 Hashtable 有四个构造函数,分别是:// 默认构造函数。public Hashtable原创 2017-06-20 23:09:52 · 440 阅读 · 0 评论 -
String/StringBuilder/StringBuffer
String JAVA中有字符串公共池,如果两个字符串具有相同的内容,它们将共享公共池内同一存储器。这样做是为了节省对经常使用的字符串存储。另一方面,通过new操作符和构造器创建的String对象,都存储在堆中,即是两个String的内容相同,它们也是相互独立的,没有共用存储。用equal()方法比较两个字符串的内容,用==比较两个变量的引用。 String中使用字符数组(c原创 2017-03-15 20:54:40 · 344 阅读 · 0 评论 -
强引用(Strong Reference)/软引用(Soft Reference)/弱引用(Weak Reference)/虚引用(Phantom Reference)
强引用:强引用指的是代码中普遍存在的,类似“Object obj = new Object()”这类的引用,只要强引用还在,垃圾回收器永远不会回收被引用的对象。 软引用:软引用是用来描述一些还有用但并非必要的对象。对于软引用关联着的对象,在系统将要发生内存溢出之前,将会把这些对象列入回收范围之中进行第二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出的异常。JDK1.2之原创 2017-04-07 15:58:40 · 550 阅读 · 0 评论 -
Android中的AsyncTask解析
概述 AsyncTask是一个抽象的泛型类,它是一个轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和后台结果传递给主线程并在主线程中更新UI。AsyncTask封装了Thread和Handler。但是AsyncTask并不适合耗时的后台任务,对于耗时的后台任务建议使用线程池。它提供了Params、Progress和Result三个泛型参数。提供了四个核心方法原创 2017-03-28 23:23:14 · 461 阅读 · 0 评论 -
接口与抽象类
abstract用于定义抽象类,抽象类不能实例化,抽象类中既可以包含已实现的方法,也可以包含方法定义,而不具体实现。 interface用于定义接口,接口只包含常量定义和方法定义。接口本身也是一种特殊的抽象类。 抽象类和接口的区别主要有一下几个方面: ①、定义格式不同://抽象类定义格式public abstract原创 2017-03-20 21:26:03 · 457 阅读 · 0 评论 -
Java并发编程学习笔记(2)硬件基础
概述这篇笔记记录了多线程编程中的硬件基础。从处理器的存储系统出发,在硬件层面解释了多线程编程中的可见性、有序性问题产生的原因及解决方案中的硬件支持。高速缓存引入高速缓存的原因现代处理器处理能力要远远胜于主内存的访问速率。为了弥补处理器与主内存之间速率的鸿沟,在他们之间引入了高速缓存(Cache)。 高速缓存是一种存取速率远比主存快,但容量远远小于主存的存储部件。每个处...原创 2018-03-22 09:20:24 · 328 阅读 · 0 评论