自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 synchronized和ReentrantLock实现消费者生产者问题

并发执行和并行执行的区别:并行执行是指两个或多个事件在同一时刻发生,而并发执行是指两个或多个事情在同一时间间隔内发生。并发执行在宏观层面上看,事情之间是同时发生的。比如说在2秒的时间内发生的两件事情,在历史的角度上可以看作是“同时发生”的。在Java中,多个线程对临界区资源操作时,需要保持程序的可再现性,或者说内存可见性。不管哪个线程操作了临界资源,操作的结果都应该对下一个操作该资源的线程可见

2016-04-13 22:05:04 740

原创 面试题之螺旋矩阵

给定一个m*n的矩阵,按照螺旋顺序返回所有元素。举例:   1    2    3             8    9    4             7    6    5返回的应该是1 2 3 4 5 6 7 8 9.从左边开始,当碰撞到右边的边界时,转向 (向下)。然后从右到左,碰撞到左边边界时,转向 (向上)。一直到最后一个元素。public static Ar

2016-04-10 01:06:23 576

原创 给定两个有序数组,找出合并之后的数组中位数

中位数定义:假如一个数组的长度Len为偶数,那么中位数为第 Len/2 个数;如果Len为奇数,那么中位数为第Len/2+1个数。比如 Arr[ 1, 2, 3, 4, 5]中位数为3;Arr[ 2, 3, 4, 5]中位数为3。给定两个递增排序数组,请设计一种高效算法求出两个数组的中位数。比如 A[ 1, 2, 3, 4, 5]        B[ 2, 3, 4, 5]那么

2016-04-09 03:01:47 6707 3

原创 给定一个数组,找出数组缺少的最小的正整数

题目使这样的:请设计一个高效算法,查找数组中未出现的最小正整数。给定一个整数数组A,请返回数组中未出现的最小正整数。测试样例:[-1,2,3,4]返回1一看到这个题目我想到的是用另外的一个数组B,长度为A的长度+1,来存储遍历数组A的数的值。 if(A[i] == i+1)  B[i+1] = A[i]。然后遍历数组B,出现空缺的地方即是最小未出现的正整数。但是假如要求

2016-04-07 17:56:46 3823 1

原创 Java实现大数相乘

两个很大的整数如何实现相乘呢?大数超出了基本类型的表示范围,所以不能用基本类型直接相乘。我们可以通过String来对它们,各位进行分解地相乘。先来看看如何实现,首先研究一下基本的乘法规则。个位只能由个位相乘产生,十位由十位乘以个位产生,百位由百位乘以个位产生。同时还会有进位。所以获取相乘的两个数的结果位result[i+j] 的值应等于A的第i位乘以B的第j位,加上A的第j位乘以B的第i位

2016-04-05 12:15:31 1129

原创 Java实现大整数相加

在不使用BigInteger这个类的情况下,如何自己去实现两个超级大的数相加呢?首先我们来看一下加法的原则: 1.同号相加,把两数相加,结果符号位取任意一个数的符号                                                         2.异号相加,取较大的数减去较小的数,结果符号位取较大的数的符号位由于是超级大数,我们使用String来存储。

2016-04-01 15:07:06 10925 1

原创 Java实现八大排序之一

1.选择排序先来说一下选择排序的基本思想:从数组的第一个数开始,将它与后面的每个数进行比较,如果比它小,就交换这两个数。这样一遍下来便可以找出最小的数了;接着从第二个数开始,重复第一个步骤。直到最后一个数,这样就完成了数组元素的排序。文字太抽象,上图吧。 /** * 选择排序 * @param arr * */ public void selectSor

2016-03-28 22:01:04 937

原创 自定义View的简单尝试——自定义日历视图

之前学过的东西隔了很长一段时间现在又忘了,原来已经不打算做码农了,但是好像没有什么选择了,先试试看自己合不合适做程序猿吧。今天来学一下,自定义View。我们看看今天要做的东西这是我在某个地方看到的一张图,不知道在哪个地方了。我们先来分析一下,如果画出类似于这种效果。首先确定当前月的第一天是星期几,以及当前月的天数。然后用一个循环来画每一个日期,当然这要计算每个日期所在的位置。宽度是平均

2016-03-22 23:27:48 691

转载 Android自定义View

Android 自定义View (一)鸿洋大神的文章,在此转载。出处:http://blog.csdn.net/lmj623565791/article/details/24252901很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章。先总结下自定义View

2016-03-22 00:33:49 342

原创 ListView中的Button或CheckBox点击处理

在ListView的使用过程中,我们经常会用到View的复用机制,来优化应用的性能。也就是说ListView的item的View存在着复用,刚开始Adapter会创造一个屏幕的item,以后的Item就会复用这最初的Item View,只不过把数据更换了而已。于是这样便会带来一个问题,加入Item上有一些局部事件,比如说ChexkBox,当我们点击的是第一项的时候,第一个Item的CheckBoX

2016-03-17 13:51:57 993

原创 Android中使用XmlPullParser操作简单的xml文件

在开发的过程中,如果需要保存少量数据,可以使用xml来保存,尽量不使用数据库。解析xml的方式有Dom,Sax,Dom4j等,今天要学的是XmlPullParser。我们先来看看要解析的文件格式是什么XmlPullParser是从上到下对xml文件进行解析的,跟我们写xml文件的顺序是一样的,顺序获取每个节点的值,一次解析。其实用法很简单,看代码的注释就应该知道怎么使用啦p

2016-03-16 21:09:31 645

原创 最简单地实现标签页导航-----TabLayout+ViewPager

上次使用Fragment+ViewPager实现了标签页导航,虽说效果达到了,但是你们有没有觉得,要写好多代码,还有处理好多逻辑。假如每次都要这样写,这么多代码,太没意思啦。可能你会想,要不封装一下吧。可是要怎么封装呢?在你冥思苦想的时候,谷歌早已替你解决好了这个问题。谷歌在Material Design之后,添加了新的控件支持库。在android.support.design.widget这

2016-03-15 15:52:08 1375

原创 Fragment+ViewPager实习顶部导航栏效果

闲话不多说,先上效果图可以看到我们要实现的效果有两个,1.滑动ViewPager的时候,顶部的黄色横条跟着一起滑动。当滑动完毕的时候,ViewPager对应的标题的颜色发生改变。                                                                2.当点击一个标题的时候,ViewPager显示对应的Fragment,然后颜色也

2016-03-14 23:14:23 2378

转载 Java设计模式透析之 —— 适配器(Adapter)

本文为转载文章,作者是郭霖大牛,传送门------http://blog.csdn.net/guolin_blog/article/details/9400141今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务!最近ChinaJoy马上就要开始了,老板要求提供一种直观的方式,可以查看到我们新上线的游戏中每个服的在线人数。”你看了看日期,不是吧!

2016-03-12 17:47:20 427

转载 git上传本地项目到github

分类:说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午。终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:)  废话不多说,直接来,这次主要介绍的是windows下的安装和使用。  【第一步】建立先仓库  第一步的话看一般的提示就知道了,在github新

2016-03-09 12:30:32 469

原创 PSI and index do not match错误

在一次使用Android Studio的过程中莫名地出了这个错误,解决办法:

2016-03-08 18:54:54 21937 3

原创 Handler、Looper、MessageQueen、Message的关系及个人理解

很久之前就说过要写这篇博客的,但是由于学习上过于紧张,一直空写。人就是这样,总会被这样那样的事情左右着。希望以后能做到一周一到两篇关于所学知识的总结或理解吧。治愈懒癌症,做一个有计划有条理的人。在我看来Handler、Looper、MessageQueen、Message分别代表的是老板、秘书、日程表、每个日程。日程表(MessageQueen)负责存储将要执行的日程(Message),而秘书

2016-03-08 18:41:38 1875

原创 Android的错误

在这次的App开发过程中遇到了这个错误Unable to start activity ComponentInfo{com.sanisy.inbook/com.sanisy.inbook.MainActivity}: java.lang.RuntimeException: A TaskDescription's primary color should be opaque这个错误的原因是:

2016-03-06 17:52:27 430

原创 Activity的基础知识1

Activity的生命周期单个Activity的生命周期当点击返回键的时候,Activity退到后台。会执行onPause()和onStop()这两个方法。当再次进入该Activity时会执行onRestart()、onStart()和onResume()方法。两个Activity之间跳转的生命周期如果有A这个Activity跳转到B的Activity,那么A这个A

2016-03-06 00:57:37 495

原创 集合排序

在Java中对一个装着对象的集合进行排序有两种方法:         1. 对象实现Comparable接口         2. 使用Comparator接口我们定义一个Student对象,包含两个成员:名字name和学号number,实现Comparable接口public class Student implements Comparable{ private String

2016-01-28 19:13:02 492

原创 Java面向对象个人学习和理解

一切世界上存在的事物都可以看成是一个对象,面向对象的思想更符合我们人的思考方式.每个对象都有自己的属性和功能,这对应了类的成员变量和类中的方法。面向对象的知识有继承、多态、抽象类、接口,在学习的过程中,要了解一个类的初始化过程,以及变量在内存中的位置(在堆还是在栈里还是其它的)。Java中一个类的定义:public class Baidu{private final String COMPA

2016-01-28 14:20:36 656

原创 Handler的使用

Handler的使用  Handler主要用来更新界面,我们知道只有主线程才有权限去更新界面。耗时操作也不应该放在主线程,不然就会出现著名的ANR错误.还有网络请求也不能放在主线程执行。Handler有许多的方法:  - handlerMessage(Message msg):用于处理消息的方法  - hasMessage(int what):检查消息队列是否包含what属性为指定值的消息.

2015-08-01 23:13:36 482

原创 JSON的解析

Json是一种轻便的数据交换格式,客户端和服务器端用Json来交互数据,会比其他一些交换格式(比如说XML)更省流量.Json可以用来传递String,Number,Boolean,数组以及对象等格式的数据Json对象有两种表示方式,一种是JsonObject{"name":"小探寻","年龄":"21"}      另外一种是Json数组。[{"name":"小探寻","年龄

2015-08-01 17:32:01 564

原创 用Jsoup解析静态网页数据

在个人开发中,很多人都会遇到这样的问题:我有了一个好想法,但是却没有数据源,有时找到了数据,但是那是人家的数据,你没有接口.这时候你会不会像看着肉却不能吃的那种干着急呢.现在告诉你一个好工具Jsoup,它能够帮我们把人家的网页数据窃取出来,不过Jsoup有个缺陷,就是只能解析静态的网页数据,对于动态的数据,那是无能为力.还有窃取数据是有被告的风险的,所以呢,不要把人家未授权的数据用作商

2015-07-19 11:08:48 888

空空如也

空空如也

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

TA关注的人

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