自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 AbstractQueuedSynchronizer原理剖析

队列同步器AbstractQueuedSynchronizer(简称同步器),主要是用于构建锁或其他同步组件(例如Semaphore)的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作,成为实现大部分同步需求的基础。《Java并发编程的艺术》上一篇介绍ReentrantLock可重入锁时提到其底层实现为同步器,其内部定义一个静态内部类...

2018-05-29 11:26:25 418

原创 第一行java代码【java基础第二讲】

本文以第一个简单的java程序,进一步讲解面向对象编程的思想。带你走近java面向对象编程的篇章。

2022-11-14 20:26:20 625 1

原创 怎么理解面向对象编程【java基础第一讲】

用人类对自然世界的认识来理解面向对象编程

2022-11-14 05:03:48 381

原创 谈谈Java开发【java基础序言篇】

谈谈自己关于Java开发的一些理解,以及java开发工程师面临的一些问题。

2022-11-14 02:16:33 187

原创 管理者的无我精神

管理者要有无我精神,但恰恰相反,中国式的管理思想,让许多管理人员太过注重自我。管理者在组织、团队中的存在感太高,好似乎一个团队离开了领导好像就没法玩了。唯上思想很多人会认为,在一个团队当中领导是最重要的,这或许就是“唯上”思想诞生的根源。大家都觉得成为领导者,才能够凸显出自己的价值,因此人人都奔着领导的位子去工作。其实,这都源于现实工作中领导习惯性将自己摆放在至高点,所有重要的事情都必须是领导...

2019-04-01 06:04:07 761

原创 Android OpenGL初探

最近在做一些Android OpenGL相关的工作,作为一名初学者,第一次接触OpenGL难免有点畏惧心理,踩了很多坑。写这篇文章介绍关于OpenGL的一些基础知识,帮助大家能够快速理解。####OpenGL概念:OpenGL(open Graphics Library):开放图形库,主要用于2D、3D矢量图形的绘制。封装了一些列API用于图像绘制,OpenGL具有非常好的跨平台性,可在win...

2018-10-28 22:49:27 578

原创 Android USB OTG通信

USB相关概念:简单来说,USB 是一个用于数据交换的总线(Bus)。发启(initiate)数据交换的一方称为主机 (host),另一方称为外设(peripheral),两者通过总线实现通信,由主机负责供电。一个 USB 系 统里只有一个主机,但可以有多个外设,外设的主要信息记录在描述符(descriptor)里。一个 外设就是一个单独的物理实体,但它却可能有多个逻辑上的设备功能(devic...

2018-09-09 17:11:11 5842

原创 java内存模型浅析

前些日子写了一篇文章分析Java运行时内存区域,让我们对于Java内存有了基本的认识,很多人常常会把两者混淆。经过本篇文章的介绍,相信大家会更加熟悉和了解两者之间的区别。Java内存模型基础Java内存模型(JMM),从抽象的角度来看其定义了Java主内存与线程本地内存之间的抽象关系。在之前介绍多线程时有些过一篇关于volatile的文章,有提到主内存、线程本地内存,当时对于两者之间的...

2018-08-19 22:02:21 264

原创 谈谈程序员面试那些事

面试,几乎成为所有人都经历过的事,尤其是对于一些青年工作者,由于种种原因出现工作变迁,需要经历种种面试。作为一名程序员的我想谈谈自己关于面试的一些经历和思考。理解面试的本质许多人都会认为面试就是一场考试,只不过是面对面口头上的考试,对于大多数程序员来说,面试其实是相对有难度的。作为技术人员,多数人都是相对性格内敛,不善言辞。尤其是有些人对于考试是有一定的恐惧症,因此常常会在面试过程中出...

2018-08-12 23:30:33 717 1

原创 ListView 数据与UI更新机制之观察者模式

之前有一篇文章专门介绍观察者模式知识,当时通过EventBus来进行分析。近日在读《Android源码设计模式解析与实战》,看到书中介绍ListView中使用到观察者模式。为了加深对观察者模式的理解,以及掌握ListView的数据刷新机制,故分析其源码。ListView数据刷新简介:ListView使用中有一个非常重要的角色就是Adapter,其实这也是一个适配器模式的应用,外部需要增...

2018-07-13 11:39:51 219

原创 职责链模式之Android事件分发源码分析

1、职责链模式概述: 职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。《设计模式的艺术》使用场景:有企业OA系统开发经验的同学,会对职责链模式有比较深刻的理解。在多数OA系统中都有请...

2018-07-13 02:21:31 218

原创 java对象创建过程解析

概述:java作为一种高级语言,对开发者而言,创建一个对象是非常容易的,原因就是虚拟机底层做了很好的封装,调用者不需要关注太多细节。通过new关键字,就可以创建一个对象。了解对象的创建过程,内存布局对于性能上的一些优化,理解很多原理是很有帮助的。对象的创建:对象的创建包含3个步骤:为对象分配内存空间、初始化对象、将对象的内存地址赋给引用。分配内存空间创建对象的第一步就是...

2018-06-15 16:21:16 555

原创 java内存区域浅析

前段时间重新拿起《深入理解java虚拟机》这本书,以前每一次都是翻翻就过来,没有对内容进行总结和记录。一方面,为了强化自己对于知识的理解和记忆;另一方面,希望能通过自己的总结帮助那些想要了解这一方面知识的童鞋。本系列会分几个篇章进行介绍,由于本人技术水平有限,只是浅析,望能与大家一起成长。概述:大多数程序员常常会听到内存优化这个词,尤其是从事Android等移动平台开发的工作者,由于硬...

2018-06-15 00:22:28 253

原创 管理层or服务者-只缘身在此山中

管理工作其实是一个专业性工作而已,其工作本能是面向服务的。管理不意味着高人一等,不代表你可以享有特权。管理的最终目标是服务于他人,让他人工作更美好,令到团队健康发展。我们管理层最近常听到一句话,“我们管理层,……”。相信大家也对这句话很熟悉,这句话常被我们亲爱的领导们脱口而出呀。前些时候,我们一个同事当上了技术经理(实则组长)。换做以前的时候,还挺谦虚的,对待同事尚算友好。可就在前几天...

2018-06-12 12:35:33 467

原创 管理者如何对待员工反馈

相信在任何企业、团队中都一定会提倡员工反馈的行为,遇到问题及时向管理层反馈,不仅有利于问题的解决,更能够建立管理者与员工之间的有效沟通渠道。离职小故事近来在今日头条上经常有看到关于员工离职的文章,马云最有名的经典语录,员工为何要离职,一是钱给的不够,二是心里受委屈了。我们今天来谈一下小A的离职故事。小A是一个程序员,在公司干了一年多,入职以来一直是团队的核心开发人员,近日从公司离职,原...

2018-06-12 01:57:00 5998

原创 java线程池的那些事

多线程开发越来越常见,开发者常常使用多线程完成一些耗时操作,通过并发来提高系统的响应速度。尤其是在Android移动端开发,为了提升用户体验,常常将一些操作放在异步线程中完成。但是,如果一味滥用多线程,会造成系统资源浪费,而且常常会出现并发问题。因此线程的管理就是一个非常重要的事,线程池也就应运而生。线程池使用意义:1)降低系统资源的消耗,线程池中实现线程的复用技术减少无限量的线程创建...

2018-06-12 00:40:41 236

原创 java策略模式实例解析

java策略模式实例解析####1、策略模式概述: 策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式。策略模式是一种行为型模式《设计模式的艺术》使用场景:策略模式常用于解决某一个问题,或者是实现某个功能时会存在多种实现方法,因而将每个方法进行一定的封装,由使用者决定使...

2018-06-10 01:05:41 1554

原创 观察者模式之EventBus源码解析

1、观察者模式概述: 观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并自动更新。观察者模式的别名包括发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式。观察者模式是一种对象行为型模式《设计模式的艺术》使用场景:观察者模式是使用频率最高的设计模式...

2018-06-10 00:27:03 505

原创 java装饰模式实例解析

1、装饰模式概述: 装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类更为灵活。《设计模式的艺术》使用场景:现实生活中大家都会遇到的一种场景,当买了房子之后,可能都需要对房子进行装修,或是根据自己的一些喜好对房间进行二次的装饰来满足自己的需求。软件系统开发也如此,一个系统设计好之后,常常需要对系统进行扩展...

2018-06-06 01:49:07 5301

原创 java代理模式解析

1、代理模式概述: 代理模式(Proxy Pattern):给某一个对象提供一个代理,并且由代理对象控制对原对象的引用。《设计模式的艺术》使用场景:客户端在使用一个功能时,不希望直接使用其接口,而是希望通过一个代理去完成其功能。类似于现实生活中,人们买、租房时常常会通过中介代理,由中介帮客户相关事项,而且代理常常可以为用户完成一些相关性工作,例如办理手续等。2、代理模...

2018-06-05 02:06:41 925

原创 java桥接模式实例解析

上篇文章讲解了适配器模式相关知识与使用实例,本篇文章介绍桥接模式,这两种模式都属于结构型设计模式,经常在软件架构设计时联合使用。因此紧接着上篇适配器模式来介绍桥接模式,展示两个设计模式联合使用的妙处。1、适配器模式概述: 桥接模式(Bridge Pattern):将抽象部分与其实现部分分离,使它们可以独立地变化。它是一种对象结构型设计模式,又称为柄体(Handle and Body...

2018-06-03 23:29:25 1553

原创 基层管理之正负向激励

在管理工作中,激励是非常核心的一门学问,也是一种艺术。善用激励能够提升管理者威望,增强团队战斗力;反之,滥用或不用激励手段,则失人心也,宛若散沙。激励的意义激励是一门艺术,是管理学非常核心的环节。道理大家都知道,能否真正在实际工作中理解,并实践者,然则是不多的。我们通过一个实例对比来看,激励到底有什么意义。 1、小A当技术经理2年,其团队每天的工作就是混吃等死。一方面,一两年里面小A...

2018-06-03 16:02:27 4174

原创 java适配器模式实例解析

适配器模式作为一种结构型设计模式,在软件系统设计开发中使用到的频率非常之高,深受开发人员的青睐。本文会讲解适配器模式的知识要点,以及在实际项目中所使用的真实案例。1、适配器模式概述: 适配器模式(Adapter Pattern):将一个接口转换成客户所希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对...

2018-06-02 11:43:15 7025

原创 java状态模式实例解析

状态模式是一种常用的设计模式,常用于软件系统中解决多种状态下行为互异的情况。例如在音视频播放器中多种状态各自对应着不相同的处理,使用状态机可以完美实现解耦。最近在做一个项目的重构,有使用到状态模式,因此写这篇文章分享一下。1、状态模式概述: 状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Object...

2018-05-31 16:00:48 3136

原创 java单例模式与线程安全

设计模式在软件架构设计中被经常使用,掌握常用的设计模式对于设计软件系统非常重要。单例模式作为设计模式中最简单和常用的一种模式,java中单例模式具有多种实现方式,以下会对各种实现进行解析。1、单例模式概念:顾名思义,单例模式指的是在软件系统运行过程中,某个类只存在一个实例。因此一个类实现单例模式时需要具备以下3个条件: 1)类的内部定义一个该类的静态私有成员变量; 2)构造方法为私...

2018-05-30 01:58:53 8147

原创 基层管理之心行合一

咋一看标题,大家或许会觉得有一丝不解。何谓心行合一,心则精神凝聚力,行则规则行动也。心在前,行在后。滥用规则的拙劣之伤 上面图片表现的是父母与小孩之间关系,在父母的常识认知中天气变冷你就得传秋裤了,而小孩心里却不一定是这么想,也许她真的不冷。这张图片是为了引出一个管理上的小故事。在一家It公司里面,有一个技术团队近来管理上比较乱,项目上经常出现延期,作为leader的小J同学...

2018-05-28 17:05:57 1078

原创 java线程同步之ReentrantLock

ReentrantLock初识:ReentrantLock与synchronized关键字一样都是用于实现线程之间的同步操作,两者效果基本一直。JDK1.5引入ReentrantLock,因为它相比于synchronized来说显得更加灵活,扩张功能更加强大,例如嗅探锁定,多路分支通知等功能。public class MyService { private Reentrant...

2018-05-28 11:31:48 243

原创 基层管理之团队成长

常常听到管理层谈团队建设与团队成长的话题,一个团队要永葆生机,保持强大战斗力,就必须不断成长。不进则退,这已是亘古不变的道理,不仅仅适用于个人,对于团队来说也是如此。我们来谈谈互联网行业,技术团队成长的一些话题。需求的苦海,身心俱疲大多数创业型、中小型公司的技术团队都可能正处于这么一个处境,随着业务的发展,大波需求如海浪般一波未平一波又起。这本也正常,市场瞬息万变,前端运营姐姐们每...

2018-05-24 17:47:03 2168

原创 java线程同步之volatile

volatile的概念:volatile与synchronized关键字是多线程并发编程中非常重要的知识点,通常被用于修饰变量。相比于synchroinized来说,volatile要轻量很多,执行的成本会更低。原因是volatile不会引起线程上下文的切换和调度,但是它与synchronized的意义其实是有区别的。synchronized关键字主要体现的是互斥性,而volatile体现的便...

2018-05-24 11:23:52 1343

原创 java线程同步之synchronized

线程同步的基础概念: 同步 指的是调用一个方法时,在没有得到结果之前,这个调用就不返回。线程同步的意思与之类似,但线程同步并不是说让一个线程执行完了再执行其它线程,一般是指让线程中的某一些操作进行同步就可以。 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。&n...

2018-05-24 01:22:58 206

原创 基层管理者项目管理二三事

上一篇基层管理开篇中,阐述了关于基层管理的一些理解,包括重要性,方法论等。纯理论的文字不免会让读者感到一丝丝苦涩,因而在这篇文章中我会结合一些实际案例来讲解,基层技术管理者如何做好团队和项目的管理。项目delay的撕逼小Q是A组开发人员,小J是B组技术经理。周一AB两组联合开发会议,周五需要完成所有开发工作,下周一送测。当时情形还是历历在目,小J拍拍胸脯地说,周五必须没问题的,大家愉快...

2018-05-23 17:02:22 528

原创 java多线程开发基础

对于一个java程序猿来说,多线程开发技术无疑是需要掌握的。近期,小生在阅读高洪岩先生编写的《java多线程变成核心技术》一书。由于自己对于多线程开发了解的不多,而且在开发中使用的不多,希望通过阅读此书,并提炼出书中重点知识以及总结自己的一些感悟来提升自己多于多线程技术的理解。还望各位大神多多指教哈!

2016-11-29 02:08:27 363

原创 Activity生命周期的分析

本篇文章只是简单分析一下Activity生命周期的历程,介绍几个关键的方法,对于Activity的生命周期,网上已经有很多大神都详细介绍了,我就不再展开讨论。主要也是为了自己理解这两种情况,特与大家分享。1、Activity正常状态下的生命周期分析: onCreate—>onStar–>onResume—>onPause—>onStop—>onDestroyonCreate/onDes

2016-03-21 09:12:13 332

空空如也

空空如也

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

TA关注的人

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