WisdowsBlog 
  • Home
  • Archives
  • Categories
  • Tags
  • About
  •     

去除DialogFragment的背景阴影-背景色-标题栏

去除DialogFragment的背景阴影,背景色,标题栏 style中: 12345678910111213<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="MyDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowTitleStyle">@null</item> <item name="android:colorBackgroundCacheHin
 2017-08-12   Android    布局 

链表问题

链表逆序 从尾到头打印节点2018-04-16更新: 递归逆序链表 1234567891011121314151617181920212223242526class LinkNode(object): def __init__(self, val, next=None): self.val = val self.next = next def __str__(self): if self.next is not None: return '{},{}'.format(self.val, self.next) return '{}'.format(self.val)def reverse(cur, pre=None): next = cur.next cur.next = pre if next is None: return cur else: return reverse(next, cur)if __name__ == '__main__':
 2017-08-12   数据结构    链表 

HashMap-HashTable-ConcurrentHashMap

HashTable线程安全的HashMap。对读写方法都使用了同步锁。 ConcurrentHashMap也是线程安全的HashMap。支持高并发,性能比HashTable高。首先它只对写入加锁,没有对读加锁。 HashTable对插入和获取操作都使用了同步锁:HashTable不能出入null的key和value 123456789101112131415161718192021public synchronized V put(K key, V value) { // Make sure the value is not null if (value == null) { throw new NullPointerException(); } // Makes sure the key is not already in the hashtable. Entry<?,?> tab[] = table; int hash = key.hashCode(); int index = (hash & 0x7F
 2017-08-11   Java   

Volley Source Code

以StringRequest为例子,分析Volley是怎样执行一个网络请求的。 先看实现Request抽象类的StringRequest1234567891011121314151617public class StringRequest extends Request<String> { private Listener<String> mListener; /** * Creates a new request with the given method. * * @param method the request {@link Method} to use * @param url URL to fetch the string at * @param listener Listener to receive the String response * @param errorListener Error listener, or null to ignore errors */
 2017-08-09   Android    多线程  Source Code  网络 

TCP三次握手和四次握手

TCP三次握手建立连接 发生的事件: Host A sends a TCP SYNchronize packet to Host B Host B receives A’s SYN Host B sends a SYNchronize-ACKnowledgement Host A receives B’s SYN-ACK Host A sends ACKnowledge Host B receives ACK. TCP socket connection is ESTABLISHED. TCP四次握手释放连接 document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;';
 2017-08-06   网络    TCP 

AsyncTask Source Code

AsyncTask类的初始化过程初始化阶段: 初始化线程池THREAD_POOL_EXECUTOR。用于执行任务。 构造一个负责调度线程的线程池的Executor SerialExecutor,用于任务的排队,维护AsyncTask的任务串行执行。 构造一个sHandlerInternalHandler。负责将执行结果从线程切换到主线程(UI线程)。AsyncTask内部的线程是通过一个线程池负责调度执行 : 构造THREAD_POOL_EXECUTOR 123456public static final Executor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor( CORE_POOL_SIZE, //核心线程池大小,CPU核心数+1 MAXIMUM_POOL_SIZE, //线程池最大容量,CPU核心数*2+1 KEEP_ALIVE,TimeUnit.SECONDS, //每个空闲线程的等待时间,60秒 sPoolWorkQueue, //缓冲队列为LinkedBlockingQueue sThreadFactory);
 2017-08-06   Android    多线程  Source Code 

IntentFilter匹配规则

Activity的启动方式分为两种: 显式启动 通过指明启动的Activity类 隐式启动 通过Intent匹配目标组件的IntentFilter中设置的信息。如果不匹配,就无法启动目标Activity。 隐式启动中IntentFilter的作用IntentFilter主要包括 : action category data。只有Intent完全匹配三者,才能成功启动Activity。一个Activity可以拥有多个IntentFilter,一个Intent只要能匹配其中一个,就能成功启动Activity。 12345678<activity android:name=".MyActivity"> <intent-filter> <action android:name="com.me.my_activity" /> <category android:name="com.me.my_category" /> <category android:name="android.intent
 2017-08-05   Android    Manifest 

ThreadLocal理解

不同的线程可以通过同一个 ThreadLocal 对象获取只属于自己的数据。 ThreadLocal.ThreadLocalMapThreadLocal的内部类。是以ThreadLocal的 hash 值为数组下标,Entry元素为值的数组。ThreadLocalMap 内部是实现了一个类似 Map 的映射关系,内部的 Entry 继承自WeakReference<ThreadLocal<?>>,它持有ThreadLocal的弱引用,保存ThreadLocal.set(value)传入的value。 123456789static class Entry extends WeakReference<ThreadLocal<?>> { /** The value associated with this ThreadLocal. */ Object value; Entry(ThreadLocal<?> k, Object v) { super(k); value = v;
 2017-08-02   Java    多线程 

生产者-消费者问题

生产者-消费者问题常见实现方式:三个同步,一个管道 wait()/notify()实现 await()/signal()实现 BlockQueueing阻塞队列实现 PipedInputStream/PipedOutputStream管道实现 wait,notify1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889public class Main { private static final int FULL = 20; private static int count; private static final Object ASYNC = new Object(); public static void main(String[] args) { new
 2017-07-30   Java    并发 

泛型

泛型注意:任意泛型类型兼容所有原始类型,泛型类型型关系要一一对应。 List<Object>接受List List<String>接受List List<Object>不接受List<String> List<Base>不接受List<Child> 1234567891011121314151617181920212223242526272829303132333435public class Main { public static void main(String[] args) { Main main = new Main(); //没有使用泛型的List List list = new ArrayList(); list.add(new Object()); list.add(new Main()); list.add(1); list.add("1241"); list.add(14);
 2017-07-30   Java   
1…232425262728

搜索

Hexo Fluid
 总访问量 次   总访客数 人