自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nxiangbo的专栏

人就要咬得菜根,则百事可成

  • 博客(24)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java Collection Framework 之 LinkedList 源码解析

LinkedList源码解析LinkedList的本质是双链表。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable实现了List接口表明需要实现List中的set,get等方法;实现了Deq

2016-05-17 23:13:43 422

原创 Java Collection Framework 之 ArrayList 源码解析

ArrayList的本质是动态数组。既然是数组,肯定是可以随机访问的。ArrayList是非线程安全的,当多个线程并发访问同一个ArrayList时,会抛出ConcurrentModificationException,这就是fail-fast机制。public class ArrayList<E> extends AbstractList<E> implements List<E>

2016-05-17 23:06:33 450

原创 理解Java中的多态

多态是面向对象程序设计的三种基本特征之一。多态通过分离做什么和怎么做,将接口和实现分离开来。多态不仅能够改善代码的组织结构和可读性,而且还能创建可扩展的程序。 封装是通过合并特征和行为来创建新的数据类型,那么,多态的作用就是消除类型之间的耦合关系。向上转型对象既可以作为它自己本身的类型使用,也可以作为它的基类型使用。而这种把某个对象的引用视为对其基类型的引用的做法称作向上转型。 我们现在来看一个

2016-04-15 16:00:47 713

原创 Android:SpannableString使用详解

在Android开发过程中,我们有时会需要TextView 显示各种格式的文本,包括字体颜色,大小,下划线,表情符号等等。对于这种需求,我们应该如何实现呢?答案是:SpannableString。 我们可以通过SpannableString来实现各种格式的文本。它的使用非常简单,这里不多介绍了。直接看代码会更加的直观。效果我们先来看一下运行的效果。 代码如下activity_main.xml<R

2016-04-12 13:57:27 938

原创 Activity的四种启动模式解析

任务栈我们都知道,每启动一个Activity时,系统会将其压入到一个任务栈中,当我们使用back键时,被返回的Activity会从任务栈中弹出,直到栈空为止。当任务栈中没有Activity时,系统会回收掉这个任务栈。 然而什么是任务栈呢? 默认情况下,所有Activity所需的任务栈的名字为应用的包名。 参数:TaskAffinity(任务相关性) :标识了一个Activity所需要的任务栈的

2016-04-11 15:48:43 1471

原创 动态规划算法——钢条切割问题

动态规划是通过组合子问题的解来求解原问题。与分治方法不同的是,动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题。在这种情况下,分治策略会重复的计算那些公共子问题。而动态规划是对每个子子问题只求解一次,将其保存在一个表格中,从而避免重复计算这些问题。 动态规划通常用于求解最优化问题(optimization problem)。这类问题拥有多个解,我们希望从中计算出最优解。当然,有些问

2016-04-10 10:08:12 3628

原创 Java 位操作符使用---Single Number

上篇文章(Java位操作符使用总结)整理了Java位操作符的使用方法。这篇文章为大家展示一下,如何巧妙的利用位操作符的特性解决实际的问题。 让我们先看一个题目,Single Number,描述如下。 Given an array of integers, every element appears twice except for one. Find that single one.题目的主

2016-03-20 22:01:45 358

原创 Java位操作符使用总结

由于在平时写代码时,不经常使用位操作符,然而,在看jdk的源码中,经常会遇到位操作符。为了避免每次都要去网上或者书上查一下位操作符的用法,特此,写了这篇文章,用以备忘。 现在,言归正传。按位与操作符(&)如果两个输入位为1,则结果位也是1,否则,结果位为0。 int x = 12; int y = 13; int z1 = x&y; S

2016-03-20 21:23:53 430

原创 教你如何使用泛型(二)

泛型的基本使用可以参考我的这篇文章(教你如何使用泛型),然而,当你真正使用泛型时,还需特别小心一些陷阱。本篇文章主要为你介绍Java的泛型的类型檫除,以及类型檫除会带来哪些问题,如何正确的处理这些问题。 首先,我们先看一个例子。 public static void main(String[] args) { ArrayList<String> strList = new A

2016-03-20 15:24:28 656

原创 教你如何使用Java泛型

泛型( Generic)实现了参数化类型的概念,使得代码可以应用于多种类型。我们常用的ArrayList<T>,HashMap<K,V>等都是使用了泛型。泛型的意思就是可以适用于许多种的类型。 Java的核心概念就是:告诉编译器想使用什么类型,然后编译器帮你处理一切细节。泛型类我们最常见的就是泛型类了,比如我们上面提到的ArrayList<T>,HashMap<K,V>等等。下面我们以一个具体的例

2016-03-19 21:50:15 1297

原创 最大流问题及Ford-Fulkerson方法

流网络流网络是一个有向图,G=(V,E)G=(V,E),图中的每条边有一个非负的容量值c(u,v)≥0c(u,v)\geq 0.如果(u,v)∉E(u,v) \notin E,则定义c(u,v)=0c(u,v)=0。且在流网络中含有两个特殊的点:源节点 ss和汇结点 tt。 流网络的形式化定义如下: 设G=(V,E)G=(V,E)为一个流网络,其容量函数为 cc。GG中的流是一个实值函数f:V×

2016-03-18 22:55:37 668

原创 Java 注解原理以及实例

注解(也被称为元数据),为我么在代码中添加信息提供了一种形式化的方法,使得我们可以在稍后某个时刻可以非常方便的使用这些数据。为什么要使用注解 ??通过使用注解,我们可以将元数据保存在Java源代码中,并利用annotation API为自己的注解构造处理工具,,同时,注解还有使得代码更加干净易读,以及编译器类型检查等优点。Java中有哪些内置的注解??Java中内置了三种标准注解,以及四种元注解。

2016-03-18 22:35:16 380

原创 代数数和超越数

代数数代数数是代数与数论中的重要概念,指任何整系数多项式的复根。这即是说若x,是一个代数数,那么必然存在整数an,an−1,…,a0(n≥1,an≠0)a_n, a_{n-1}, \ldots, a_0 (n\geq 1,a_n\neq 0),使得xx,是以下方程的根: anxn+an−1xn−1+…+a2x2+a1x+a0=0a_n x^n + a_{n-1} x^{n-1} + \ldots

2016-03-17 14:52:27 2311

原创 Android 回调机制

Android 回调机制在android开发中经常遇到各种各样的回调方法,然而,到底什么是回调呢? 现在,以android中View的onClick()回调方法为例,讲解一下。OnClickListener 接口,当view被点击后回调该接口 /** * Interface definition for a callback to be invoked when a view is cl

2016-03-08 16:32:00 387

原创 Android 实现一个计时器

最近,在做一个Android项目,需要用到一个计时器。特此,拿来和大家分享一下。 首先,看一下实现效果图。 实现思路主要利用Handler中的postDelayed (Runnable r, long delayMillis) 函数每隔1秒钟更新一次UI。具体实现如下。布局文件activity_main.xml<RelativeLayout xmlns:android="http://schem

2016-01-14 14:16:39 10841 2

原创 解决Android:Installation error: INSTALL_FAILED_MEDIA_UNAVAILABLE问题

问题描述在运行Android 程序时,会报如下错误:Installation error: INSTALL_FAILED_MEDIA_UNAVAILABLEPlease check logcat output for more details.Launch canceled!解决方法输入命令adb shell设置由系统决定安装在哪个位置pm set-install-location 0

2016-01-14 11:30:23 701

原创 解决当使用hide()和show()在多个Fragment 切换时,出现的重叠问题

解决当使用hide()和show()在多个Fragment 切换时,出现的重叠问题最近在做一个android 项目,需要实现在同一个Activity之间切换的功能(类似于微信)。然而,在实现后,发现会出现Fragment重叠的问题。参考网上的解决方法,解决了此问题,分享给大家。当该Activity由于长时间占用内存或者由于内存不足时,而被系统收回内存,就容易出现Fragment重叠的问题。解决方法出

2016-01-02 23:25:18 6730

原创 函数调用过程

函数调用过程 一个过程(Procedures)调用包括将数据(以过程参数和返回值的形式)和控制从代码的一部分传递到另一部分。栈帧结构(Stack Frame Structure)机器用栈来传递过程参数、存储返回值信息、保存寄存器用于以后恢复,以及本地存储。而为单个过程分配的那部分栈成为栈帧(stack frame)。如下图。假设过程P(调用者)调用过程Q(被调用者),则Q的参数放在P的栈帧中。

2015-12-31 12:41:16 535

原创 单源最短路径问题之Dijkstra算法详解

单源最短路径问题之Dijkstra算法详解单源最短路径:给定一个图G=(V,E)G=(V,E),找到从给定源结点s∈Vs \in V到每个结点v∈Vv \in V的最短路径。Dijkstra算法目标:是解决带权重的有向图的单源最短路径问题。 前提:假设对于所有的边(u,v)∈E(u,v) \in E,都有w(u,v)≥0w(u,v) \geq 0。 该算法会在运行过程中维护一个结点集合SS。符号

2015-12-30 22:05:40 2473

原创 拟阵理论简述

拟阵 拟阵( matroid )是一个数学结构,是对(线性)独立的概括与归纳。常用于排列组合和图论等方面。 – 维基百科拟阵就是满足如下条件的序偶M=(S,I)M=(S,I): 1. SS是一个有限集合; 2. II是SS的子集的非空族,这些子集称为独立子集,使得ifif B∈IB\in I且A⊆BA\subseteq B,则A∈IA \in I。注意,∅∈I\emptyset \in I

2015-12-29 20:02:25 1419

原创 android failed to start daemon 问题

android failed to start daemon 问题标签(空格分隔): android adb启动造成adb.exe无法启动的原因一般是5037的端口被其他进程占用。解决方法 打开命令行界面, 执行命令,netstat -aon | findstr "5037";查看进程号,并用tskill命令杀掉这个进程。即可。然后,启动adb.exe

2015-12-28 20:26:13 447

原创 求解最大子数组问题的三种方法

求解最大子数组问题的三种方法标签(空格分隔): 算法 分治 最大子数组算法导论中有这样一个例子来引出最大子数组问题: 在股市中,人们为了获取更大利益,希望“低价买进,高价卖出”,从而获得最大收益。然而,简单的以最低价格买入,最高价格卖出并不能获得最大收益。我们可以不直接观察每日股票的价格,而是考虑每日股票的价格变化值。第ii天的价格变化值定义为第ii天的价格减去第i−1i-1天的价格。如果将这些值

2015-10-31 21:55:07 805

原创 真机环境下,使用sqlite3出现“cannot locate symbol "sqlite3_enable_load_extension"referenced by sqlite3”错误

解决方法 从虚拟机中pull一份sqlite3. adb pull /system/bin/sqlite3 f:\ - 关闭模拟器,连接真机,将f:\下的sqlite3 push 到真机中. adb push f:\sqlite3 /sdcard/sqlite3 - 打开adb shell,输入如下命令行. adb shell

2015-10-23 17:09:24 1602

原创 tomcat配置过程中出现JRE_HOME environment variable is not defined correctly的错误

解决方法 修改setclasspath.bat文件,在其头部加上如下代码: set JAVA_HOME=D:\program file\Java\jdk1.7.0_67 set JRE_HOME=D:\program file\Java\jre7

2015-04-20 15:39:29 683

spannableString使用

使用Spannable设置TextView的字体的各种样式。详情请看http://blog.csdn.net/nxiangbo/article/details/51132737

2016-04-12

launchmodedemo

Activity的四种启动模式解析,具体请看http://blog.csdn.net/nxiangbo/article/details/51121334

2016-04-11

annotationdemo

帮助理解Java注解的一个小例子。

2016-03-18

Android 实现一个计时器

Android实现一个计时器。功能:计时,可以暂停计时。主要利用handler的postdelay()函数。

2016-01-14

空空如也

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

TA关注的人

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