自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (28)
  • 收藏
  • 关注

原创 Java多线程面试题

sychronied修饰普通方法和静态方法的区别?什么是可见性?对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态方法或者一个类的class对象上的。我们知道,类的对象实例可以有很多个,但是每个类只有一个class对象,所以不同对象实例的对象锁是互不干扰的,但是每个类只有一个类锁。但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存在的,类锁其实锁的是每个类的对应的class对象。类锁和对象锁之间也是互不干扰的。可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量

2020-06-25 11:24:26 168

原创 Java多线程JMM、volatile原理、synchronized原理

JMM基础-计算机原理Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。Java1.5版本对其进行了重构,现在的Java仍沿用了Java1.5的版本。Jmm遇到的问题与现代计算机中遇到的问题是差不多的。物理计算机中的并发问题,物理机遇到的并发问题与虚拟机中的情况有不少相似之处,物理机对并发的处理方案对于虚拟机的实现也有相当大的参考意义。根据《Jeff Dea

2020-06-25 11:18:07 166

原创 Java多线程AQS

AbstractQueuedSynchronizer学习AQS的必要性队列同步器AbstractQueuedSynchronizer(以下简称同步器或AQS),是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。并发包的大师(Doug Lea)期望它能够成为实现大部分同步需求的基础。AQS使用方式和其中的设计模式AQS的主要使用方式是继承,子类通过继承AQS并实现它的抽象方法来管理同步状态,在AQS里由一个int型的st

2020-06-25 11:06:49 273

原创 CopyOnWriteArrayList

讲完CopyOnWriteArrayList源码,面试官当场给我发了offer

2020-06-23 19:29:16 93

原创 Java多线程阻塞队列和线程池原理

阻塞队列队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。什么是阻塞队列1)支持阻塞的插入方法:意思

2020-06-22 16:11:52 348

原创 Java多线程CAS

线程的启动方式启动线程的方式只有两种:1、X extends Thread;,然后X.start()2、X implements Runnable;然后交给Thread运行第三种,实现一个Callable,然后交给一个FutureTask对象,再把这个FutureTask对象作为参数来启动Thread其实就是上面的第二种启动方式。线程的状态Java中线程的状态分为6种:初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(r

2020-06-22 09:57:56 336

原创 Java多线程ThreadLocal和ReentrantLock

线程间的共享和协作线程间的共享线程开始运行,拥有自己的栈空间,就如同一个脚本一样,按照既定的代码一步一步地执行,直到终止。但是,每个运行中的线程,如果仅仅是孤立地运行,那么没有一点儿价值,或者说价值很少,如果多个线程能够相互配合完成工作,包括数据之间的共享,协同处理事情。这将会带来巨大的价值。Java支持多个线程同时访问一个对象或者对象的成员变量,关键字synchronized可以修饰方法或者以同步块的形式来进行使用,它主要确保多个线程在同一个时刻,只能有一个线程处于方法或者同步块中,它保证了线程对变

2020-06-21 17:00:52 374

原创 Java多线程基础概念

CPU核心数和线程数的关系多核心:也指单芯片多处理器( Chip Multiprocessors,简称CMP),CMP是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理多线程: Simultaneous Multithreading.简称SMT.SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源可最大限度地实

2020-06-21 16:03:31 191

原创 Java动态代理与静态代理

参考:静态代理和动态代理的区别和联系java 代理 理解原理及实现Java 动态代理详解JAVA面试50讲之9:动态代理的原理是什么?

2020-06-19 17:27:07 234

原创 Java动态代理

静态代理代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。比如你按照小卡片上的电话打过去寻求服务,一般不是由本人,可能是一个成年雄性接听电话,然而真正做事情的可能是另一个小姐姐。目的:(1)通过引入代理对象的方式来间接访问目标对象,防止直接访问目标对象给系统带来的不必要复杂性;(2)通过代理对象对访问进行控制;通过代理对象对原有的业务增强;代理模式一般会有三个角色:抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口真

2020-06-19 17:18:26 156

原创 Java反射

Java反射

2020-06-19 16:43:10 228

原创 Java注解

https://docs.oracle.com/javase/tutorial/java/annotations/index.htmlhttps://pingfangx.github.io/java-tutorials/java/annotations/

2020-06-19 16:41:26 183

原创 Java泛型

https://docs.oracle.com/javase/tutorial/java/generics/index.htmlhttps://pingfangx.github.io/java-tutorials/java/generics/index.html

2020-06-19 16:39:08 235

原创 Java学习

https://pingfangx.github.io/java-tutorials/java/

2020-06-19 16:29:00 104

原创 JVM类加载器

jvm之java类加载机制和类加载器(ClassLoader)的详解虚拟机类加载机制深入理解java虚拟机(八)类加载过程详解深入理解Java类加载器(一):Java类加载原理解析

2020-06-17 19:41:13 109

原创 TraceView以图形的形式展示方法的执行时间、调用栈及调用次数

参考:就这一次看懂TraceViewTraceView 的正确打开方式https://github.com/zjw-swun/AppMethodOrder性能优化工具(三)-TraceView

2020-06-10 16:10:57 234

原创 Android性能优化之如何提高android代码的质量Lint

常见错误类型:一, Correctness:Messeges(1)字符串国际化不完全(2)国际化的字符串,在默认位置(default locale),没有定义二,Correctness(1)Xml中view的id重名(2)代码中使用的某些API高于Manifest中的Min SDK(3)字符串国际化中,同一名字的的String-Array对应的item值不相同 (4)Activity没有注册到Manifest(5)使用已经废弃的api(6)避免使用px,使用dp(7)添加不需要的权限三

2020-06-06 17:47:30 173

原创 Android性能优化之如何提高android代码的质量PMD

PMD 常见错误类型

2020-06-06 17:32:00 269

原创 Android性能优化之如何提高android代码的质量Findbugs

FindBugs 常见错误类型参考:FindBugs 常见错误类型整理FindBugs 常见错误类型整理

2020-06-06 17:30:09 171

原创 Android性能优化之如何提高android代码的质量Checkstyle

Checkstyle常见错误和警告提示Checkstyle常见错误和警告提示见下表所示:eclipse_checkstyle.xml文件内容Checkstyle配置文件eclipse_checkstyle如下所示:<?xml version="1.0"?><!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycra

2020-06-06 17:06:58 181

原创 Android性能优化专题

Android性能优化Android性能优化之内存优化

2020-06-06 16:47:18 163

原创 HTTP及HTTP缓存框架HttpResponseCache

请求报文格式1)请求行,第一行是请求行:请求方法 URL路径 HTTP版本号 , 如:GET http://news.baidu.com/ HTTP/1.12)请求头,如:Host: news.baidu.comConnection: keep-aliveAccept: text/htmlAccept-Encoding: gzip, deflate, sdchAccept-Language: zh-CN3)请求体,get方法不适用,post方法提交数据时,用于存放请求的参数响应报文

2020-06-06 16:05:30 572

原创 设计模式

设计模式是解决问题的思想,重要的是它背后的思想。写代码时不要刻意追求设计模式。什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现实中都有相应的原理来与之对应,每一个模式描述了一

2020-06-04 18:47:37 188

原创 Java集合之TreeSet

Java集合之TreeSet

2020-06-04 18:13:57 123

原创 Java集合之HashSet

Java集合之HashSet

2020-06-04 18:13:26 120

原创 Java集合之TreeMap

参考:Java集合之TreeMap源码分析

2020-06-04 18:11:34 115

原创 Java集合之ArrayList与LinkedList的区别

顺序表和链表的比较顺序表:物理上连续,逻辑上连续,查找和修改快,因为可以根据下标直接定位到元素(即支持随机访问);删除和新增数据慢,因为要大量移动数据。链表:物理上不连续,逻辑上连续,查找和修改慢,因为要轮询才能定位到元素;删除和新增数据快,因为直接操作next指针即可。...

2020-06-03 13:07:11 129

原创 Java集合之LinkedList

参考:【源码解析】面试必问的LinkedList,看这篇文章就够了面试必备:LinkedList源码解析(JDK8)面试官系统精讲Java源码及大厂真题 - 06 LinkedList 源码解析一篇文章搞定ArrayList和LinkedList所有面试问题...

2020-06-02 18:35:43 242

原创 Java集合之ArrayList

参考:阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时掌握这些,ArrayList就不用担心了!

2020-06-02 18:34:42 154

WindowManagerService相关类图.eddx

Activity,Window,DecorView,ViewRootImpl,WindowManager,WindowManagerImpl,WindowManagerGlobal,WindowManagerService相关类图

2020-03-20

WindowManagerService相关类图.eddx

Activity,Window,DecorView,ViewRootImpl,WindowManager,WindowManagerImpl,WindowManagerGlobal,WindowManagerService相关类图

2020-03-20

WindowManagerService相关类图.eddx

Activity,Window,DecorView,ViewRootImpl,WindowManager,WindowManagerImpl,WindowManagerGlobal,WindowManagerService相关类图

2020-03-19

Binder.rar

Binder实例,client进程调用server进程的a+b函数,用server进程返回结果给client进程。 Binder跨进程通信相关的client进程,Proxy,BinderProxy,Binder驱动,Binder,Stub,server进程的时序图

2020-03-19

Android系统启动流程.xmind

Android系统启动流程的思维导图,包含了Android系统的关键进程以及关键服务。。

2020-03-19

OnTouchEvent.rar

Android事件分发机制的工程Demo,包含有Android事件分发机制的流程图,方便理解Android事件分发机制。

2020-02-28

区块链与资产证券化(ABS)

介绍资产证券化abs的整体原理,以及基于区块链技术的资产证券化管理平台的优势。

2019-03-25

Ethereum代码整体框架(根据源码分析)

Ethereum代码整体框架(根据源码分析),在看以太坊源码时做的整体框架的思维导图。

2019-01-15

A Kafka-based Ordering Service for Fabric

A Kafka-based Ordering Service for Fabric,讲解fabric的基于Kafka的排序服务。

2019-01-11

区块链技术及其应用

介绍区块链技术的背景,整体技术原理,以及相关应用。

2018-11-30

白硕《企业区块链》

上海交易所前总工程师白硕 做的演讲《企业区块链》。。

2018-11-27

雷凯-北京大学深圳 -块游记-CCF+CBC2018+PPT(杭州)-20181125

2018中国区块链技术大会上,北京大学深圳研究生院副教授雷凯做的演讲

2018-11-27

区块链—形式化表示与体系结构演进--斯雪明

2018中国区块链技术大会上,斯雪明做的演讲,区块链—形式化表示与体系结构演进

2018-11-27

银行支付系统的SWIFT架构

银行支付系统的SWIFT架构,SWIFT作为银行间标准化的载体。

2018-07-23

区块链技术在跨境支付领域的应用研究

区块链技术在跨境支付领域的应用研究, 可供参考学习。

2018-07-23

CustomHttpURLConnectionImpl

实现HttpURLConnection,创建自己想要的HttpURLConnection连接

2016-04-08

SqlCommand_Parameters

SqlCommand_Parameters属性用法例子,亲自运行过,没有问题初学者参考

2014-03-24

SqlCommand_ExecuteScalar方法

SqlCommand_ExecuteScalar方法,亲自运行过,没有问题初学者参考

2014-03-24

SqlCommand_ExecuteNonQuery方法

SqlCommand_ExecuteNonQuery方法,亲自运行过,没有问题初学者参考

2014-03-24

SqlDataReader

介绍 SqlDataReader对象例子,亲自运行过,没有问题初学者参考

2014-03-24

DataSet对象

介绍 DataSet对象例子,亲自运行过,没有问题初学者参考

2014-03-24

最小生成树算法详解

详细的最小生成树全解,讲述金典的最小生成树算法,全面掌握最小生成树算法

2013-05-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除