加载中
ThreadLocal的基本原理与实现

一、概念   首先,ThreadLocal并不是一个Thread,这个类提供了线程局部变量,这些变量不同于它们的普通对应物,因为访问某个变量的每个线程都有自己的局部变量,它独立于变量的初始化副本。...

2019/06/18 09:08
58
JVM的内存区域划分

学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?   由于Java程序...

2018/12/21 17:49
46
Binder 通信笔记(Java)

概述 Service注册 获取service_manager代理 Service的初始化 addService Binder驱动调用Service 参考资料 概述 在上一节Binder 通信笔记(native)中,分析了在c++层service和client是怎样与b...

Dalvik虚拟机与java虚拟机的区别

1.java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码;传统的Java程序经过编译,生成Java字节码保存在class文件中,java虚拟机通过解码class文件中的内容来运行程序。而Dalvi...

2018/12/24 15:55
77
java程序运行时内存分配详解

一、 基本概念 每运行一个java程序会产生一个java进程,每个java进程可能包含一个或者多个线程,每一个Java进程对应唯一一个JVM实例,每一个JVM实例唯一对应一个堆,每一个线程有一个自己私有...

2019/01/09 13:11
96
java重写equals()方法和hashCode()方法

1.equals()方法和hashCode()方法是什么? equals()和hashCode()都是是Java中万物之源Object类中的方法; equals方法用于比较两个对象是否相同,Object类中equals方法的实现是比较引用地址来判...

2019/06/19 09:19
268
java中ArrayList和LinkedList的区别

首先来看ArrayList和LinkedList的集成类和接口的区别。 // lang java public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable pub...

2019/06/18 18:43
176
Java线程中yield与join方法的区别

长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。...

2019/05/28 19:30
26
java的两种同步方式, Synchronized与ReentrantLock的区别

ava在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock。 相似点: 这两种同步方式有很多相似之处,它们都是加锁方式同步,...

2019/06/19 18:08
23
Java中类,对象,方法的内存分配

以下针对引用数据类型: 在内存中,类是静态的概念,它存在于内存中的CodeSegment中。 当我们使用new关键字生成对象时,JVM根据类的代码,去堆内存中开辟一块控件,存放该对象,该对象拥有一...

2018/12/21 17:24
47
Java多线程之创建线程的三种方式比较

一:继承Thread类创建线程 1:继承Thread类定义线程子类; 2:重写run()方法,定义线程的操作; 3:通过创建的线程子类对象.start() 启动线程。 package com.thread; public class FirstThre...

2019/06/18 17:26
116
一文带你理解Java中Lock的实现原理

当多个线程需要访问某个公共资源的时候,我们知道需要通过加锁来保证资源的访问不会出问题。java提供了两种方式来加锁,一种是关键字:synchronized,一种是concurrent包下的lock锁。synchro...

2019/06/19 18:33
200
Android java层binder解析1

下面直接从ServiceManager的addService看起 ServiceManager.java public static void addService(String name, IBinder service) { try { getIServiceManager().addService(name, service, f...

轻松学习java可重入锁(ReentrantLock)的实现原理

前言 相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现...

2019/06/19 17:44
15
安卓高手之路之java层Binder

很多人一提到Binder就说代理模式,人云亦云的多,能理解精髓的少。 本篇文章就从设计角度分析一下java层BInder的设计目标,以及设计思路,设计缺陷,从而驾驭它。 对于【邦德儿】的理解, 从通...

你真的完全了解Java动态代理吗?看这篇就够了

之前讲了《零基础带你看Spring源码——IOC控制反转》,本来打算下一篇讲讲Srping的AOP的,但是其中会涉及到Java的动态代理,所以先单独一篇来了解下Java的动态代理到底是什么,Java是怎么实现...

2019/06/24 08:58
20
多线程安全(synchronized、三大特性、Java内存模型)

线程安全问题? 什么是线程安全问题?简单的说,当多个线程在共享同一个变量,做读写的时候,会由于其他线程的干扰,导致数据误差,就会出现线程安全问题。 比如说,多个窗口同时卖票这个案例...

2019/06/19 16:33
127
详解java动态代理机制以及使用场景(一)

说起java动态代理,在我刚开始学java时对这项技术也是十分困惑,明明可以直接调通的对象方法为什么还要使用动态代理?随着学习的不断深入和工作经验的积累,慢慢的体会并理解了java动态代理机...

2019/01/09 11:31
132
java常用的几种线程池实例讲解

下面给你介绍4种线程池: 1、newCachedThreadPool: 底层:返回ThreadPoolExecutor实例,corePoolSize为0;maximumPoolSize为Integer.MAX_VALUE;keepAliveTime为60L;unit为TimeUnit.SECOND...

2018/12/25 10:18
3.6K
深入浅出,Handler机制外科手术式的剖析(ThreadLocal,Looper,MessageQueen,Message)(上)

为什么会有handler机制? 在Android中,所有的UI控件都是运行在主线程中的, 如果我们从子线程访问UI,系统会报异常。为什么不允许子线程访问UI呢?因为Android的UI控件不是线程安全的,为了防...

2019/01/10 07:33
38

没有更多内容

加载失败,请刷新页面

返回顶部
顶部