自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BridgeGeorge

专注于Android开发,架构和性能优化

  • 博客(20)
  • 资源 (3)
  • 收藏
  • 关注

原创 Java并发编程深入学习—— synchronized

synchronized介绍synchronized是Java中的关键字,是一种同步锁。 它修饰的对象有以下几种: 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是

2017-09-27 19:46:49 401

原创 Java并发编程深入学习——Lock锁

Lock锁介绍在Java 5.0之前,在协调对共享对象的访问时可以使用的机制只有synchronized和volatile。Java 5.0 增加了一种新的机制:ReentrantLock.它并不是一种替代内置加锁的方法,而是当内置加锁机制不适用时,作为一种可选择的高级功能。Lock接口Lock接口位于java.util.concurrent.locks包中,它定义了一组抽象的加锁操作。public

2017-09-27 19:34:19 477

原创 Java虚拟机(九)——多态性理解

介绍  对于面向对象的三大特征,很多人可以毫不犹豫地讲出来,封装,继承,多态。封装,和继承自不必说,而对于多态的理解,可能对于不少人来说,总好像理解了,但是好像又有点迷惑,这篇文章着重介绍这个特性。  多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。这种技术称为动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类

2017-09-27 17:45:45 478

原创 Java集合框架源码分析(四)——LinkedHashMap

LinkedHashMap简介LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,可以使节点的输出顺序与输入顺序相同。LinkedHashMap可以用来实现LRU算法(这会在下面的源码中进行分析)。LinkedHashMap同样是非线

2017-09-22 17:59:12 663

原创 Java 集合框架源码分析(三)——HashMap

HashMap简介HashMap是基于哈希表实现的,每一个元素都是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阈值)时,同样会自动增长。HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能

2017-09-22 17:19:34 607

原创 Java 集合框架源码分析(二)——LinkedList

LinkedList简介LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当作链表来操作外,它还可以当作栈,队列和双端队列来使用。LinkedList同样是非线程安全的,只在单线程下适合使用。LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。LinkedList源码剖析源码如下(加入了比

2017-09-22 17:03:57 691 1

原创 Android View滑动的方法总结

layout()如果你将滑动后的目标位置的坐标传递给layout(),这样子就会把view的位置给重新布置了一下,在视觉上就是view的一个滑动的效果。public class DragView extends View{ private int lastX; private int lastY; public DragView(Context context, AttributeSet

2017-09-21 16:13:10 482

原创 Android FragmentPagerAdapter与FragmentStatePagerAdapter

FragmentPagerAdapter是Android-support-v4支持包里面出现的一个新的适配器,继承自PagerAdapter,是专门用来给支持包中出现的ViewPager进行数据适配的。PagerAdapter在之前的文章中进行过简单的介绍,不记得怎么使用的可以先去看一下。FragmentPagerAdapter,见名知意,这个适配器就是用来实现Fragment在ViewP

2017-09-11 18:53:04 590

原创 Android性能优化——优化viewPager

当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即Fragment需要加载UI内容,而又频繁地切换Fragment,就容易产生卡顿现象(类似在ListView快速滑动的同时加载图片容易卡顿)。1.Fragment轻量化如果ViewPager加载的Fragment都比较轻量,适当精简Fragment的布局,

2017-09-11 18:27:44 1578

原创 Android ImageView&ImageButton 显示图片的一些总结

首先设置布局中的imageView如下ImageView android:id="@+id/imge2" android:layout_width="match_parent" android:layout_height="wrap_content" android:contentDescription="测试2" />

2017-09-11 18:19:21 5328

原创 算法系列——数值的整数次方(剑指offer)

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路看到了很多人会这样写:public static double powerWithExponent(double base,int exponent){ double result = 1.0; for(int i = 1; i <= expo

2017-09-05 12:24:31 420

原创 算法系列——逆置一个栈

题目描述一个栈一次压入了1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1.将这个栈转置后,从栈顶到栈底为1、2、3、4、5,解题思路空间复杂度为O(n)生成一个辅助栈,依次从原来栈中弹出压入辅助栈中,返回最后结果。递归方法不利用辅助栈,递归调用取得栈底元素的子函数然后将其压入原有栈中。空间复杂度为O(1),时间复杂度为O(n)程序实现public class Solution {

2017-09-05 11:53:06 1145

原创 算法系列——滑动窗口最大值(剑指offer)

题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,

2017-09-04 15:05:15 1412

原创 算法系列——机器人的运动范围(剑指offer)

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解题思路这个方格也可以看出一个 m*n 的矩阵。同

2017-09-04 10:17:51 1775

原创 算法系列——扑克牌的顺子

##题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张

2017-09-04 09:49:26 1662

原创 算法系列——n个骰子的点数(剑指offer)

题目描述把 n 个骰子扔在地上,所有骰子朝上一面的点数之和为 s。输入 n,打印出 s 的所有可能的值出现的概率。解题思路此题目解法很多,其中使用动态规划法最好理解,代码也比较简洁1.现在变量有:骰子个数,点数和。当有c个骰子,点数和为k时,出现次数记为dp(c,k)。那与c-1个骰子阶段之间的关系是怎样的? 2.当我有c-1个骰子时,再增加一个骰子,这个骰子的点数只可能为1、2、3、4、5或6。

2017-09-01 17:50:07 4131 2

原创 算法系列——最长公共子串

给出两个字符串,找到最长公共子串,并返回其长度。注意事项子串的字符应该连续的出现在原字符串中,这与子序列有所不同。样例给出A=“ABCD”,B=“CBCE”,返回 2

2017-09-01 16:42:29 790

原创 算法系列——和为S的连续正数序列

题目描述题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S

2017-09-01 15:38:16 538

原创 算法系列——和为S的两个数

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。解题思路指针对撞法,采用双指针法,i,j从数组两端开始往中间靠拢,如果 array[i]+array[j]程序实现public class Solution { public ArrayList<Integer> FindNumbersWithSum(int

2017-09-01 15:19:07 665

原创 算法系列——在O(1)时间内删除链表结点(剑指offer)

题目描述给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间内删除该结点。解题思路程序实现

2017-09-01 14:39:15 764

IpcBigBitmapDemo.zip

原文连接https://blog.csdn.net/ylyg050518/article/details/97671874

2019-07-29

SonarLint 代码检查工具

SonarLint 代码检查工具,IDEA 插件。

2016-11-04

空空如也

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

TA关注的人

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