- 博客(229)
- 资源 (24)
- 收藏
- 关注
原创 设计模式概述
一. 首先来概括一下面向对象设计的七大原则1. 单一职责原则(Single Responsibility Principle, SRP):类的职责要单一,不能将太多的职责放在一个类中。2. 开闭原则(Open-Closed Principle, OCP):软件实例对扩展是开放的,但是对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能。3. 里氏代
2014-11-12 00:58:18 737
原创 Android Messenger 进程间通信
一. 基本实现 Messenger Class Overview Reference to a Handler, which others can use to send messages to it. This allows for the implementation of message-based communication across processes, by
2014-11-10 00:09:21 1212
翻译 Android Interface Definition Language (AIDL)
一. 本章主要讨论以下问题 1. 定义 ALDL 接口 1.1 创建 .aidl 文件 1.2 实现接口 1.3 把接口暴露给 clients 2. 通过 IPC 传递 Objects 3. 调用 IPC 方法 ALDL 即接口定义语言,也许和你所用的别的 IDLs 是类似的 。其提出是为了让你能
2014-11-09 20:16:16 971
翻译 Android Guts: Intro to Loopers and Handlers
本章的主题是 Android 的 Looper 和 Handler 的用法,正如我们所知道的一样,Looper 和 Handler 是 Android 中非常有用的两个类 。通过它们的帮助,我们可以做很多很 cool 的事情 (假设你已经理解了 Looper 和 Handler 的作用和基本用法,否则对你来说这篇文章可能有点难)。 那么我们可以用 Looper 和 Handler 来做什
2014-10-30 21:15:50 1016
翻译 Fragments for background processing
1. 概述 本文主要讨论如何利用 Fragment 来处理 configuration 的改变的问题,即在 configuration 发生改变的时候,我们怎样保持 objects (如正在运行的线程、Sockets 及 AsyncTasks),以便能够再次恢复它们的状态。 为了回答这个问题,我们会先谈谈开发者面临的一个难题 :在 Activity 的生命周期变迁期间,如何处理需
2014-10-29 23:14:47 918
翻译 Android Processes and Threads
Processes and Threads 概述 在默认情况下,每个 app 都运行在自己的 process 中,而且同一 app 中的所有 components 也运行在这个 process 中 。 activity 中的任何慢速、阻塞的操作都应该在一个新的线程中进行,以免使 UI 线程响应速度变慢(甚至出现 ANR) 。一. 本章主要讨论以下内容 Pr
2014-10-28 00:33:48 667
翻译 Android Tasks and Back Stack
Tasks and Back Stack 概述 所有的 activities 都属于特定的 task; 一个 task 中包含一系列的 activities ,用户可以与之交互; Tasks 可以被移到后台,并保存它所包含的 activity 的状态信息,这样用户在执行其它操作时,之前的操作状
2014-10-11 22:11:44 1253
翻译 Android Fragments
Android Fragments 概述 Fragments 把 app 的功能和 UI 分解成可复用的模块 把多个 fragments 添加到一个屏幕以,避免切换 activities Fragments 有自己的生命周期、状态和回退栈 Fragments 要求 API 11及以上的版本一. 本章主要讨论以下内容 设计哲学
2014-10-04 02:01:46 883
翻译 Android Activities
一. Activities 概述 一个 Activities 代表一个与用户交互的屏幕界面,而且 Activities 可以退至后台,当它恢复运行可以恢复到退至后台前的状态。 本章主要讨论以下内容 创建一个 Activities 实现一个用户界面 在 manifest 中声明一个Activities 启动一个 Activi
2014-10-02 14:07:00 814
翻译 Android Services
Android Services 一个 Service 是一个可以在后台执行耗时操作的应用组件,它在执行过程中并不提供用户界面。其它的应用组件可以启动一个 Service ,当 Service 被启动后,它就会在后台持续执行,即使用户切换到别的应用组件。此外,一个应用组件可以与一个 Service 绑定,从而可以和所绑定的 Service 进行交互,甚至进行进程通信(IPC)。如一个
2014-09-29 20:21:56 870
翻译 Android Application Fundamentals
应用程序基础一. 概述 一个应用程序由一个或多个应用组件组成,这些基本组件包括 activities, services, content provides 和 broadcast receivers 。每个组件在整个应用程序中都扮演不同的角色,而且每种组件都可以单独地运行,甚至可以通过别的应用来启动它们。必须要在 manifest 文件中声明应用中的所有组件,同时还要声明应
2014-09-27 17:07:15 1062
原创 JNI概述
第一章 JNI概述一、Java 代码访问本地代码 Java 是跨平台的语言,但是有时候需要调用本地代码(如由 C/C++ 编写的本地代码),为了满足这种需要,Sun公司提供了 JNI 技术, JNI 是 Java 平台的一个功能强大的接口,这个 JNI 接口提供了 Java 与操作系统本地代码互相调用的功能。但是如果一个应用程序使用了 JNI ,那么它就失去了 Java 应
2014-06-12 01:28:49 711
原创 Makefile的基础知识
一、 三个基本概念(注:本文所有的测试都是在 Linux 环境下进行的) 在Makefile中,最重要的三个概念是:目标(target)、依赖关系(dependency)和命令(command)。目标是指要干什么,即运行make后生成什么;依赖是指明目标所依赖的其他目标;命令则告诉make如何生成目标,这三个概念是通过Makefile中的规则(rule)关联在一起的。
2014-06-02 16:41:06 2081
原创 Linux网络编程基础
一、字节序与大小端问题 网络使得数据可以从一个主机传递到另一个主机,不同的处理器在管理内存单元的数据时,对需要存放在多个内存单元的某一个数据的处理方式也不尽相同。所以这类数据的解释结果也不同,CPU 数据处理类型有大端和小端两种模式。小端模式(Little-endian):操作数存放方式为高地址存放高字节;大端模式(Big-endian):操作数的存放方式为高地址放低字节。X86平台
2014-06-02 16:31:30 749
转载 Eclipse配置C/C++开发环境
开发环境:Eclipse3.2、CDT3.1、MinGW5.1原文链接:http://blog.csdn.net/hujingn/article/details/58495161、Eclipse及CDT的安装到Eclipse的官方网站http://www.eclipse.org上下载Eclipse。安装CDT。CDT的全称是C/C++ DevelopmentTools,是使
2014-03-29 18:23:56 910
原创 贪心算法分析
动态规划是对分治算法的一种改善,当它发现分解出来的子问题有重叠时,保用自底向上的策略来避免重复计算,从而提高了算法的效率。其特点是在每次做出选择前,将所有选择的效果都进行计算,在此计算的基础上选出最优的选项,所以动态规划的每次选择都是最优的。但是,当可选项的数目巨大时,算法将不堪重负,所以在这种条件下,有必要采用新的算法。 贪心算法的基本策略:一步一步地构建问题的最优解,其中每一步均只考虑眼
2013-12-15 21:18:38 2107
原创 动态规划算法例题及解析
在此再次简要描述一下动态规划算法的基本要素:(1) 最优子结构性质:这是可用动态规划算法求解的前提条件(2) 重叠子问题:子问题是否具有重叠性会影响到动态规划算法的效率 1.字符串转换设A和AB是两个字符串,要用最少的字符操作,将字符串A转换为字符串B,这里的操作限定为:(1)删除一个字符;(2)插入一个字符;(3)将一个字符变成另一
2013-12-15 21:05:46 6455
原创 如何利用内部类的类型封装功能实现线程安全的类以提高程序的性能
一、内部类的用途首先让先让我们来看一下内部类的用途:封装类型、直接访问外部类的成员、回调外部类的方法。这里仅重点介绍对本节来说至关重要的封装类型功能。 封装是面向对象的核心思想之一:把所有不希望对外公开的实现细节封装起来。顶层类只能处于public和默认访问级别,而成员内部类则可处于public、protected、private和默认4种访问级别。此外,如果一个内部类仅仅为特定的方法提
2013-12-15 20:41:17 1407
原创 Java数组和各种List的性能比较
Java数组和各种List的性能比较 以下程序分别对Java数组、ArrayList、LinkedList和Vector进行随机访问和迭代等操作,并比较这种集合的性能。package cn.lion.test; public class PerformanceTest { privatestatic final int SIZE =100000;
2013-11-03 13:39:48 8787
原创 拓扑排序
拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若∈E(G),则u在线性序列中出现在v之前。(理论书上和网上都有,我就不献丑那么多了,直接来看个实例…) 函数int Toplogical(LinkedWDigraphG)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长
2013-10-16 22:55:49 1033
原创 众数问题
众数问题 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。 多重集S的众数是2,其重数为3。 对于给定的由n个自然数组成的多重集S,编程计算S的众数及其重数。方法一:采用分治算法的思想– 先由找一个基准元素X,把整数数组基于X进行划分– 统计X出现的次数T– 如
2013-10-03 21:50:55 1502
原创 分治与递归分析
递归与分治分析适合用递归算法来解决的常见问题有:(1)二分搜索技术; (2)大整数乘法;(3)Strassen矩阵乘法;(4)棋盘覆盖;(5)合并排序和快速排序;(6)线性时间选择;(7)最接近点对问题;(8)循环赛日程表。 算法总体思想 对这k个子问题分别求解。如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,
2013-10-01 12:56:30 2631 1
转载 05_ 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历
今天忽然看到一大神写的建立二叉树的程序,感觉他的编程技巧很高超,代码简洁干练,忍不住转一把。(我也要努力,争取早日达到这种水平)原文链接:http://blog.csdn.net/hackbuteer1/article/details/72753961. 题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入: 输入第一行包括一个整数n(1
2013-09-26 17:10:16 5450
原创 04_N阶楼梯上楼问题、输入一个ip地址串,判断是否合法、输入一个四行五列的矩阵,找出每列最大的两个数
1. 题目描述:N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)输入:输入包括一个整数N,(1输出:可能有多组测试数据,对于每组数据,输出当楼梯阶数是N时的上楼方式个数。样例输入:4样例输出:5 分析:假设 f(n) 为上 n 阶楼梯的方法数量。则如果只有 1 阶楼梯,显然只有一种方法走完;如果有 2 阶楼梯,显然
2013-09-26 16:45:40 2664
原创 03_统计单词个数、求阶乘、输出最短和最长的字符串
1. 题目描述:编一个程序,读入用户输入的,以“.”结尾的一行文字,统计一共有多少个单词,并分别输出每个单词含有多少个字符。(凡是以一个或多个空格隔开的部分就为一个单词)输入:输入包括1行字符串,以“.”结束,字符串中包含多个单词,单词之间以一个或多个空格隔开。输出:可能有多组测试数据,对于每组数据,输出字符串中每个单词包含的字母的个数。样例输入:hello h
2013-09-24 21:33:17 1919
原创 02_对N个长度最长可达到1000的数进行排序、对给定的一个字符串,找出有重复的字符,并给出其位置、输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序
1.题目描述:对N个长度最长可达到1000的数进行排序。输入:输入第一行为一个整数N,(1接下来的N行每行有一个数,数的长度范围为1每个数都是一个正数,并且保证不包含前缀零。输出:可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。样例输入:3111111111111111111111111111112222
2013-09-24 11:43:30 4123
原创 01_进制转换、结构体排序、字符奇校验、字符串连接、实现一个加法器,使其能够输出a+b的值
1. 题目描述:输入一个整数,将其转换成八进制数输出。输入:输入包括一个整数N(0输出:可能有多组测试数据,对于每组数据,输出N的八进制表示数。样例输入:789样例输出:71011参考答案#includeint convert(int arr[], int t){ int k = 0, p = t; if(
2013-09-21 11:55:59 1499
原创 采用递归法生成M叉树
设 M 叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树的根结点的值后跟用“()”括起来的各子树的列表(若有子树的话),各子树的列表用“,”分隔。如下图的三叉树的列表表示为a(b,c(f,g),e)编程根据输入的列表生成一棵 M 叉树,并再由生成的 M 输出相应的列表。 分析:在生成 M 叉树时,在列表中遇到左括号“(”后,表示是子树的开始,即可以递归调用生成过程;
2013-09-19 19:12:19 1290
原创 算法之大整数乘法
大数的表示方法有很多种,最易懂的而且最跟手工计算方式最接近的方式是通过字符数组来保存大数,数组的每个元素保存大数的一个十进制数字,这种方式操作比较简单,但是这种方式需要较多的额外运算,所以效率低下。另一种方式是采用链表作为存储结构,这种方式可以适应不同长度的大数,但是这种方式的存储效率很低,对本身就需要不少内存空间的大数运算来说负担很重,而且频繁的堆操作和解引用操作会大量增加开销,此外链表存储的不
2013-09-04 12:56:34 2160
原创 求阶乘与多整数连乘问题
1. 求阶乘问题对给定的 n(n 分析:因为要求的整数可能大大超出一般的整数的位数,所以应使用一维数组存储长整数,数组中的每个元素只存储长整数的一位数字。如有 m 位长整数 num,则用数组 arr[]存储如下:num = arr[m]*10^(m-1) + arr[m-1]*10^(m-2) + ... + arr[2]*10^1 + arr[1]*10^0并用arr[0]存
2013-09-01 21:20:43 3006
转载 Eclipse中10个最有用的快捷键组合
1. ctrl+shift+r:打开资源这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2. ctrl+o:快速outline如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想
2013-08-29 22:58:04 895
原创 算法复习之动态规划_03
动态规划(dynamic programming) 动态规划是求解决策过程(decision process)最优化的一种数学方法。动态规划主要用于求解以时间划分阶段的动态过程的优化问题,一些与时间无关的静态规划,只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。基本模型 多阶段决策过程的最优化问题: 在现实生活中,有一类活动的过程,可将过程
2013-08-29 17:01:19 1542
原创 算法复习之递归算法_02
递归算法 一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称为递归函数。递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。(说明:递归算法往往效率低下,所以能不使用时就尽量不要用,以下所以递归程序只是为了说明问题,以便于理解递归的原理。对于这些问题,其实可以使用更高效的方法来解决的)递归算法的特点(1) 递归就是在过程或函数里调
2013-08-29 00:17:51 1261
原创 算法复习之分治算法_01
算法分析之分治算法一、基本概念及策略 分治法即分而治之,就是把一个复杂的问题分成两个或更多的相似的子问题,再把子问题分成更小的问题...直到最后子问题可以直接求解,原问题的解即子问题的解的合并。排序算法(快速排序、归并排序)等都含有分治的思想。 如果原问题可分割成k个子问题,1二、分治法适用的情况分治法所能解决的问题一般具有以下几个特征:1、该问题的规模缩小
2013-08-26 22:21:38 1729
转载 Linux编辑器vi使用方法详细介绍
Linux编辑器vi使用方法详细介绍vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里
2013-08-24 09:16:49 1173
原创 Linux 目录结构和最常用的命令
Linux实战1. 为什么要学Linux:是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都有使用Linux。2. 如何学习Linux:(1)Linux平台上的开发,包括vi、gcc、gdb、make、jdk、tomcat、mysql…和Linux基本操作。(2)加强C或java语言。(3)学习unix环境高级编程
2013-08-23 00:29:28 973
原创 字符串的完美度
题目详情我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。现在给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。函数头部Cint perfect(
2013-07-30 17:51:07 1176
转载 Java中abstract和interface的区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意。其实,两者之间
2013-07-25 22:34:38 710
转载 Hibernate中的Configuration类
Configuration类用来管理我们的配置文件的信息的,通过它,我们可以通过创建一个configuration实例来管理相应的配置文档,但是通常我们只创建一个configuration实例。下面是一个通用的创建实例的代码 Java代码try{ sessionFactory = new Configuration().configure().buildSessionFac
2013-07-02 07:36:23 1364
Android非凡行车记录仪源码
2021-06-02
基于java的学生信息管理系统
2013-05-08
模仿QQ的程序的完整源代码
2013-04-24
用JDBC操作mysql数据库的实例的源代码
2013-04-14
这里面有用JDBC技术与mysql数据交互的很多实例的源代码
2013-04-13
这是我用struts开发的一个简易的学生信息管理系统,能与mysql数据库交互
2013-04-13
这个压缩包里有JSTL自定义标签开发实例的源码及相关文件
2013-04-13
这是一个用struts做的简易的学生信息系统,能连接到mysql数据库
2013-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人