自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入理解Android中的SharedPreferences

SharedPreferences作为Android中数据存储方式的一种,我们经常会用到,它适合用来保存那些少量的数据,特别是键值对数据,比如配置信息,登录信息等。不过要想做到正确使用SharedPreferences,就需要弄清楚下面几个问题: (1)每次调用getSharedPreferences时都会创建一个SharedPreferences对象吗?这个对象具体是哪个类对象? (2)在UI

2016-03-21 00:17:39 7403 6

原创 MySQL常用命令

1.查看所有用户select * from mysql.user;2.创建用户create user 'username'@'host' identified by 'password';其中username为用户名,host为可登录主机,本机可以用localhost,任一主机可以用%,password为密码。3.为指定用户授权grant [权限] on 数据库名.表名 to '用户名'@'主机名'

2016-11-10 22:08:29 295

原创 Android Studio 2中通过getDeclaredFields获取到$change成员问题

今天在使用Android Studio2.1时遇到一个问题,代码如下:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)

2016-11-10 14:35:47 1574

原创 数据结构-树相关算法

二叉树前序遍历非递归算法:void preOrder(TreeNode* root) { if(root == NULL) { return; } stack<TreeNode*> st; st.push(root); while(!st.empty()) { TreeNode* p = st.top(); st

2016-09-16 17:26:23 852

原创 操作系统-内存管理

程序的装入与链接物理地址:主存的绝对地址。逻辑地址:程序中总是从0开始的地址程序的装入               编译                                  链接源程序 ----------> 多个目标模块 ----------> 装入模块(可执行程序)1.绝对装入方式:程序中使用物理地址,只适用于单道程序环

2016-09-05 09:46:54 518

原创 APP创意IDEA记录

本文章记录本人平时想到的一下APP开发想法和创意,有好的创意或者修改欢迎评论。一、升级版聊天程序 我们平时大部分都是用QQ群和微信群进行讨论问题,但是有时我们问的问题可能会很快被刷掉,答案也会被刷掉,这样后面的人又重新问同样的问题,这导致了许多人都在问相同的问题,而且查看别人的回答也比较麻烦费时。 因此可以开发一个聊天程序,主体功能还是群聊没有变,但添加一个功能,就是群成员可以发布问题,其它群成

2016-04-27 18:50:53 2883 1

原创 Android开发踩过的坑(一)

1.permission与uses-permission区别 在做类似文件管理器的目录列表时,想要获取一个路径(目录路径)下的所有文件文件夹和文件的名字,显然可以使用File类的lists方法获取,然而它就是返回空,检查了一下路径没有问题,而且也判断了是一个目录,然后就去网上搜索,发现是读sd卡权限文件(然而刚才log并没有报permission denied异常。。。),那行,清单文件加上语句:

2016-04-25 20:48:48 452

原创 itoa、atoi、memcpy等函数实现

itoa函数:void itoa(int value, char* result, int base) { if(strlen(result) <= 0) { return; } if(base < 2 || base > 36) { *result = '\0'; return; } char table[]

2016-04-17 21:53:04 526

原创 两颗棋子找出100层大厦中棋子摔碎的临界层

题意大概是这样:有一座100层的大厦,还有两个完全相同的棋子,问怎样扔棋子能够使得最坏情况下扔的棋子次数尽量少。1.可以从第一层开始扔,直到第99层为止,那么最多扔棋子次数为99,显然不行,而且第二颗棋子没发挥其作用。2.不管怎样,我们都可以建立一个模型:第一颗棋子依次扔的楼层为X1,X2,X3,……,Xn,假如在Xi层摔碎,说明临界层大于X(i-1)小于等于Xi,这时用第二颗棋子从X(i-1)+1

2016-03-27 12:23:46 2049

原创 Fragment的生命周期

Fragment可以用来解决不同屏幕分辨率的适配问题,跟Activity一样,它有自己的生命周期,不过貌似比Activity复杂了点:使用Fragment有两种方法,可以在布局文件中直接使用fragment节点将一个Fragment加载到布局中,也可以使用FragmentManager动态管理布局上的Fragment,而动态管理Fragment,一般是这样子: FragmentMana

2016-03-18 17:01:15 539

原创 找出有环链表中环的入口节点

今天去面试碰到这个问题,因为之前见过思路大概知道,就是忘了怎么证明,然后就在那里想啊想啊,结果还是没想出来。然而一回宿舍马上又想出来了,哎,心里素质太差了。。。 求法:两个指针p和q,每次p走一步,q走两步,最后它们将在环上的某一个节点相遇,这时再弄一个指针r从链表表头开始,然后r走一步,p也走一步,那么最后当r==p的时候指向的节点就是环的入口节点。 证明: 假设p,q在S相遇,此时有:

2016-03-15 23:10:25 718

原创 Android横竖屏切换时Activity的生命周期问题

在清单文件的activity节点有一个属性configChanges,横竖屏切换时Activity的生命周期就跟它的值有关。Android中横竖屏切换默认是会重新创建一个Activity的,如果为了使横竖屏切换时不重新创建Activity,那么就需要把configChanges的值指定为“orientation|keyboardHidden”,不过这个有个前提,就是targetSdkVersion必

2016-03-08 14:08:23 372

原创 Android中的HandlerThread和IntentService

HandlerThread继承自Thread,内部实现逻辑很简单,就是开一个消息处理线程,其run方法: @Override public void run() { mTid = Process.myTid(); Looper.prepare(); synchronized (this) { mLooper = L

2016-03-05 13:48:14 584

原创 Java中的Timer源码分析及缺陷

使用Timer执行定时任务很简单,一般这样子写: Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { System.out.println("hel

2016-02-26 14:54:47 3737

原创 Android源码分析-深入理解setContentView方法

一般我们都是这样使用setContentView: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }但setCont

2016-02-23 13:19:03 1160 1

原创 把数组排成最小的数

题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:寻找给定数组的一种排序序列,使得所有数依次按照字符串的累加方式累加其它所组成的数最小。而得到这种序列的方法是:对于任意两个数a,b,如果ab

2016-02-23 11:14:10 388

原创 操作系统笔记-处理器管理

进程与线程相关概念 进程:系统中正在运行的一个应用程序。 线程:进程之内独立执行的一个单元。 操作系统的调度单元是线程。一个程序至少有一个进程,一个进程至少有一个线程。进程状态转换图 进程调度算法 1.先来先服务调度算法 2.优先数调度算法:对于优先数相同的采用先来先服务调度算法 3.时间片轮转调度算法:时间片长度=系统对响应时间的要求/就绪队列中允许的最大进程数 4.多级反馈队列调

2016-02-18 17:19:25 611

原创 几种排序算法总结

注:以下所有排序算法都是按照整数值从小到大排序。冒泡排序思想:对于一个序列,走一趟把最大数冒到最后面。 示例:对于序列4, 10, 1, 6, 2, 7, 3, 8如下图(红框表示下一趟需要处理的子序列) 即总共需要走n趟,当第i趟走完时倒数i个数是有序的。代码 for(i = 0; i < n; i++) {//需要走n趟 for(j = 0; j < n - i - 1; j

2016-02-10 18:21:59 641

原创 Java中的wait(),notify(),join()等方法

Java中有几个方法经常看到,但大部分情况都比较少用到,这些方法包括Object类的wait(),notify(),Thread类的yield(),join(),还有sleep()。 wait方法 表示让出锁并等待,直到其它线程notify且竞争到锁为止,注意wait建议放在循环中而不是if语句中。final Object obj = new Object();Thread t = new

2016-02-08 17:42:34 590

原创 LeetCode Problem:String to Integer (atoi)

AC代码class Solution {public: int myAtoi(string str) { str = trim(str); // int n = str.size(); if(n <= 0) { return 0; } long long result =

2016-02-04 20:14:47 364

原创 C++判断一个数是否为整数

运行下面的代码#include <iostream>#include <cmath>using namespace std;int main(){ int n; while(cin>>n) { double result = log(n)/log(3); cout<<result<<endl; cout<<(int)result<

2016-02-04 18:20:06 36534

原创 Java类加载器

Java中由类字节码流转化为JVM运行时类数据必须使用类加载器进行加载,Java中提供了三个类加载器:根类加载器,扩展类加载器,应用程序类加载器,使用的机制可以概括为“全盘负责双亲委托”机制。注意图中的关系是委派关系,不是继承关系!源码中使用组合实现,即ClassLoader类的parent成员变量,而最上面的那个类加载器(根类加载器)的parent为null。 双亲委托机制在代码中具体体现在C

2016-02-04 17:12:08 247

原创 LeetCode Problem:Odd Even Linked List

题目: Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes. You should tr

2016-02-03 19:10:50 280

原创 计算机网络-UDP协议

UDP协议特点无连接不可靠面向数据报协议格式源端口与目的端口:可与TCP端口重复。 UDP长度:包括首部长度和数据长度,单位为字节,注意数据长度可以为0。 UDP检验和:校验的是UDP首部部分和数据部分,该校验和是可选的,如果全部填0则表示发送端没有计算校验和。UDP数据报有12个字节的伪首部(源IP,目的IP,8bit 0,8位协议,UDP长度),目的是为了计算校验和。UDP数据包最大

2016-01-30 21:29:13 714

原创 开源框架KImageLoader开发及原理剖析(二)

开源框架KImageLoader的实现原理与大部分的图片加载器一样,内部采用线程池+二级缓存架构,并且尽量做到可配置,可替换。 KImageLoader整体架构图 KImageLoader类图KImageLoader关键类ImageLoader: ImageLoader采用了单例模式,也就是应用中有且仅有一个实例。为了使程序结构更加清晰和提高可扩展性,ImageLoader只是起到转发的作用,

2016-01-21 14:22:59 1983 2

原创 开源框架KImageLoader开发及原理剖析(一)

Android中有不少关于图片加载的开源框架,比如著名的Android-Universal-Image-Loader,最近在项目中也需要加载图片,然后就去用了UIL,结果发现有许多功能UIL并没有提供,虽然可以通过某些方法勉强满足需求,但是到后面就会发现,项目越来越难维护和扩展了,因此自己就写了一个图片加载的框架KImageLoader。KImageLoader开源框架Github地址:ht

2016-01-17 17:53:37 1393

原创 Java基础问题(二)

一、下面这段代码会输出什么?从字节码层次上解释结果。public class Main { public static void main(String[] args) { float f1 = Float.NaN; Float f2 = Float.NaN; System.out.println(f1 != f1); System

2016-01-10 11:22:20 348

原创 Java基础问题(一)

一、public class Main { private static class Dog { private Dog(String name) { this.name = name; } private String name; } public static void main(String[] args)

2016-01-03 22:09:49 487

原创 Java集合框架

Java开发中经常使用到的类:可以看出,Java的集合框架包含三大部分:List、Set和Map,其中List和Set在类继承和接口实现上有交集,而Map则是孤立的。List一、ArrayList最常用到的集合类,内部使用数组实现,因此它具有O(1)时间复杂度按位置查找元素的优点,不过插入和删除元素需要O(n)。主要特点:1.允许null(这是必然的,因为数组元素本来就

2015-12-30 23:32:06 384

原创 Android开发-Activity(二)

IntentAndroid中组件间都是通过Intent进行交流的,这也使得组件间的耦合度大大减低。Intent分为两种:显式Intent和隐式Intent,Intent类定义了八个重要的成员变量:private String mAction;private Uri mData;private String mType;private String mPackage;private Compo

2015-09-14 23:06:01 406

原创 LeetCode Problem:Reverse Integer

Problem 7:Reverse IntegerReverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 补充C++中int类型变量的表示范围为:-2147483648~2147483647。为什么是这个范围呢?我们知道int有32位,最高那位是符号位。注意下面说的都是

2015-09-13 22:48:27 345

原创 Android开发-Activity(一)

Android中有Activity、Service、BroadcastReceiver和ContentProvider四大组件,Activity是用得最多的且最重要的。Activity有四种启动模式Standard模式:标准模式,也就是默认模式,每次start一个Activity都会创建一个新的Activity对象。SingleTop模式:每次start一个Activity时,

2015-09-12 20:42:38 364

原创 Android开发-进程

不管什么操作系统,都有进程这一概念。在Android系统中,也有进程这东西,而且还把分成五类:1.前台进程2.可见进程3.服务进程4.后台进程5.空进程那么是按照什么标准分类的呢?或者说我怎么确定我自己写的应用是属于哪类进程呢?1.如果某一个应用进程符合下面任意一个条件,那么这个应用进程就属于前台进程(1) 拥有一个正在与用户交互的Activity。

2015-09-12 19:07:46 419

原创 LeetCode Problem:Add Two Numbers

Problem 2:Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers

2015-09-03 20:37:17 381

原创 LeetCode Problem:Two Sum

Problem 1:Two SumGiven an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up t

2015-09-03 19:30:30 378

原创 基于并发包同步机制实现生产者-消费者模式

上一篇我们使用jdk原始的同步机制实现了生产者-消费者模式,这次我们改用jdk1.5中提供的相关并发类实现生产者-消费者模式。先说明两个类(接口)ReentrantLock类 作用跟synchronized代码块差不多,都是用于实现互斥,当然两者是有区别的。Condition接口 它提供了await()、signal()、signalAll()等方法,作用于Object类的wait()、si

2015-08-29 20:24:40 565

原创 基于Java自带同步机制实现生产者-消费者模式

我们在编写程序时,总会看到每个对象都有几个相同的方法,比如说wait()、notify()等,其实它们都是从Object类继承下来的,用于实现线程同步用的,当然这是jdk1.5之前的方法,jdk1.5之后提供了并发包一系列类用于支持多线程互斥与同步问题。几个方法的说明:wait() 主动让出锁获得的锁,一直阻塞直到被唤醒为止(注意被唤醒的方法有多种),该方法有几个重载版本,可以指定超时时间。n

2015-08-29 19:15:59 548

代码量统计工具

可用于统计指定目录下的所有源文件代码行数

2016-01-07

空空如也

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

TA关注的人

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