自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JackChan

生活不止眼前的苟且,还有诗和远方!

  • 博客(56)
  • 资源 (57)
  • 收藏
  • 关注

原创 数据结构与算法

GitBook 在线阅读,PDF、Mobi、ePub下载https://www.gitbook.com/book/alleniverson/data-structure-and-algorithms/detailsGitHub托管https://github.com/JackChan1999/DataStructure数据结构与算法学习之路数据结构与算法系列编程之法:面试和算法心得计算机常用基础算法

2017-01-02 17:07:43 2331

原创 Git常用命令

设置用户名和邮箱git --globalgit init常见操作git statusgit tag# 推送git push origin master # 拉取git pull origin master# 抓取你还没有的数据git fetch <name>git add <filename>git commit -m '提交描述'git commit -a -m '提交描述'git r

2017-01-22 14:21:14 370

转载 CRLF和LF

目录什么是CRLF和LF为什么要探究CRLF和LF三种方式处理的不同更多参考文献1、什么是CRLF和LFCRLF 是carriagereturnline feed的缩写。中文意思是回车换行。 LF是line feed的缩写,中文意思是换行。2、为什么要探究CRLF和LF在学习Git软件,安装git到configuring the lien ending conversion时,有三个选

2017-01-22 10:46:37 1512

转载 Git常用命令和Git团队使用规范指南

前言在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品——Git。它的出现改变了软件开发流程,大大地提高了开发流畅度,直到现在仍十分流行,完全没有衰退的迹象。其实一般情况下,只需要掌握git的几个常用命令即可,但是在使用的过程中难免会遇到各种复杂的需求,这时候经常需要搜索,非常麻烦,故总结了一下自己平常会用到的git操作。本文根据团队实践记录Git入门指南和

2017-01-22 00:55:09 1351

转载 几款Git GUI客户端工具

工欲善其事,必先利其器。作为一名开发人员,你不可能不知道git,无论你是开发自己的开源项目还是和团队一起进行大规模产品的开发,git都已经是源代码管理工具的首选。当然,那些hardcore developer会说,command line才是最好的工具,但并不是所有的时候command line都是高效的(不服?在command line里面做个compare试试你就知道了)。小编日常用的最多的也是

2017-01-22 00:44:52 26922

转载 常用 Git 命令清单

我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库$ git init

2017-01-22 00:13:12 337

原创 Linux常用指令

1. 查看目录下有什么文件/目录 > ls //list列出目录的文件信息 > ls -l 或ll //list -list以“详细信息”查看目录文件 > ls -a //list -all查看目录“全部”(包括隐藏文件)文件 > ls -al //list -all list 查看目录“全部”(包括隐藏文

2017-01-20 17:08:09 540

转载 Android 测试教程

一、什么是单元测试?为了测试某个类中的某一个方法能否正常工作,而写的测试代码。单元的定义:代码中可度量的最小单元(函数/方法);是否正常工作:不同的输入对应的输出是否与预期一致。二、单元测试有必要吗?1、 对是否有必要写单元测试的疑惑没有价值:不做单元测试一样地开发,并没有什么问题(解释:);浪费时间:写单元测试需要大量的时间,还不如写具体的实现,具体的实现能看到明显的效果,但单元测试可能耽误正常的

2017-01-20 10:32:13 1972

转载 GitHub秘籍

GitHub秘籍 Git 和 Github 秘籍,灵感来自于 Zach Holman 在 2012 年 Aloha Ruby Conference 和 2013 年 WDCNZ 上所做的演讲:Git and GitHub Secrets(slides) 和 More Git and GitHub Secrets(slides)。其他语言版本: English, 한국어, 日本語, 简体中文, 正體中

2017-01-19 11:00:06 687

原创 Android学习视频

2016年学会Git玩转Github-video 2015-Linux视频教程-video

2017-01-18 15:27:48 858

原创 Android开发工具:Git,Github,GitBook

# 从0开始学习GitHub系列 原文链接:http://blog.csdn.net/column/details/13170.html,原创发布于微信公众号 AndroidDeveloper「googdev」从0开始学习 GitHub 系列之「01.初识 GitHub」从0开始学习 GitHub 系列之「02.加入 GitHub」从0开始学习 GitHub 系列之「03.Git 速成」

2017-01-17 15:57:41 1046

原创 自定义控件:流式布局

实现代码public class FlowLayout extends ViewGroup { private List<Line> mLines = new ArrayList<Line>(); // 用来记录描述有多少行View private Line mCurrrenLine; // 用来记录当前已经添加到了哪一行 priva

2017-01-17 14:16:33 512

原创 自定义控件:水波纹

效果图

2017-01-17 13:55:04 615

原创 自定义控件:旋转菜单

效果图项目概述首先,我们学习如何自定义一个组合控件,其中,优酷菜单是一个典型的自定义组合控件,它的效果图如图1-1 所示:图中由中间往外,分别是一级菜单、二级菜单、三级菜单。其基本用法是:点击一级菜单后加载二级菜单,再点击二级菜单加载三级菜单,如图1-2(c)—(d)—(e)—(f),再点击一级菜单分别隐藏三级、二级菜单 1-2(a)—(b)。并且点击手机菜单键,让菜单根据状态来显示和隐藏,演示效

2017-01-17 13:32:18 1550

原创 Java高并发编程:使用JDK5中同步技术的3个面试题

第一题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。public class Test { public static void main(String[] args){ System.out.prin

2017-01-17 09:48:31 1618

原创 图片加载小框架

效果图 public class ImageLoader { private Handler mUIHandler; private Handler mPollThreadHandler; private Semaphore mSemaphoreThreadPool; private Semaphore mSemaphorePollThreadHandler = ne

2017-01-16 13:16:23 510

转载 我为什么离开锤子科技?

我在2015年3月入职锤子科技,最近几天离职,现在特别想把这不到两年的时间里的经历和我对这家公司的想法写下来。最近一段时间公司发生了大面积的裁员,但是我并不属于这一次陆陆续续的裁员的范围,而是自己提出离职的,最后发生了一些不愉快的事情,后面也会提到。我2012年本科毕业的时候对自己要去什么样的公司完全没有概念,我的专业是软件工程,但是当时不想去任何一家IT 公司,于是我选择了出国留学。锤子科技是20

2017-01-16 12:36:22 1514 1

原创 Java数据结构和算法:234树和外部存储

234树有一个数据项的节点总是有两个子节点有两个数据项的节点总是有三个子节点有三个数据项的节点总是有四个子节点多叉树,四叉树外部存储主存RAM,随机访问存储器,断电后数据会丢失磁盘文件存储器,访问速度慢一次访问一个数据块在磁盘上的数据按块存储,根据不同的系统成为块、页、分配单元、或其他的名字。这里称它们为块B-树索引

2017-01-13 18:30:50 1017

原创 Java数据结构和算法:哈希表

哈希表是一种数据结构,它可以提供快速的插入操作和查找操作。哈希表的缺点:基于数组,数组创建后难于扩展。不能有序遍历哈希化把关键字转换成数组下标(哈希函数)冲突(碰撞)开放地址法线性探测// hash.java// demonstrates hash table with linear probing// to run this program: C:>java HashTableAppimpo

2017-01-13 17:14:02 773

原创 Java数据结构和算法:二叉树

二叉树的实现数组查询快,增删慢;链表增删快,查询慢;二叉树查询和增删都有很好的性能package com.itheiam62;/** * @描述 中序遍历是有序的二叉树(不重复) * */public class MyTree{ private Node root; // 根节点 private class Node { Node pa

2017-01-10 23:08:57 577

转载 LinkedList源码剖析

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

2017-01-08 00:11:35 399

转载 HashMap源码剖析

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

2017-01-07 22:29:32 444

转载 LinkedHashMap源码剖析

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

2017-01-07 22:25:40 426

转载 Java数据结构和算法:HashMap,哈希表,哈希函数

1. HashMap概述HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。四个关注点在HashMap上的答案 关注点 结论 HashMap是否允许空 Key和Va

2017-01-07 19:34:16 7126

转载 Android 开发工程师面试指南

第一部分Android(安卓)Android基础知识Android内存泄漏总结Handler内存泄漏分析及解决Handler、Looper、Message、MessageQueue基础流程分析Android性能优化ListView详解RecyclerView和ListView的异同AsyncTask源码分析插件化技术自定义控件事件分发机制ANR问题Art和Dalvik的区别

2017-01-07 17:59:32 1210

转载 十大编程算法助程序员走上大神路

概述:编程算法,是完成程序逻辑的主要途径。本文推荐十大编程算法,有利于程序员的编程逻辑。算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被

2017-01-05 14:25:45 479

转载 15道使用频率极高的基础算法题

1、合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素; 2、合并两个已经排序的单链表; 3、倒序打印一个单链表; 4、给定一个单链表的头指针和一个指定节点的指针,在O(1)时间删除该节点; 5、找到链表倒数第K个节点; 6、反转单链表; 7、通过两个栈实现一个队列; 8、二分查找; 9、快速排序; 10、获得一个int型的数中二进制中的个数;

2017-01-05 14:19:58 448

转载 数据结构和算法:全面的算法代码库

原文链接:https://github.com/Dev-XYS/AlgorithmsAlgorithms本次README修订为算法仓库Algorithms的第100次commit,首先我们庆祝自2016年8月4日本仓库建立以来Dev-XYS在算法学习方面取得的显著进步!这里有各种算法的C++代码,任何人可以在自己的任何程序中使用,欢迎大家指出代码中的错误以及有待改进的地方。本仓库内所有代码的授权方式

2017-01-05 14:15:48 2639

转载 Android面试

原文链接:https://www.nowcoder.com/discuss/3244和大多数的面经不同,我不是大牛,手头也没有3,4个 sp 的 offer 求比较,我只是一个非211,985的本科应届毕业生,想分享一下自己坎坷的求职历程,来给更多求职路上迷茫的应届生一些鼓励,特别是本科应届生。另外还要特别感谢北邮信安研二的赵翔,研三信安的吴博还有清华的金辉,虽然只是做了短短一两个月的同事,但是在之

2017-01-05 10:59:12 3123

转载 Android面试:Java相关

Android面试常见Java相关问题。 原文链接:http://www.nowcoder.com/discuss/3244 Switch能否用string做参数? 在 Java 7 之前, switch 只能支持byte,short,char,int 或者其对应的封装类以及 Enum 类型。在JAVA 7中,String 支持被加上了。 equals与==的区别: ==是判断两个变量或实

2017-01-05 10:41:06 404

转载 java集合类框架

原文出处:于卫国,http://yuweiguocn.github.io/java-collection/Java集合类框架概览及各集合之间的区别。 集合中存放的是对象的引用。 Collections:集合的搜索、排序、线程安全化等Collection接口boolean add(Object o)boolean addAll(Collection c)boolean remove(Obje

2017-01-05 10:13:17 804

转载 Android客户端和服务端如何使用Token和Session

对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。一、我们先解释一下他的含义:1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。2、Token的

2017-01-05 09:44:29 1517

转载 Android面试题集合

http://yuweiguocn.github.io/android-interview-list/Java基础简述题(一)&和&&的区别。Get和Post的区别http response codeudp连接和TCP的不同之处java中的soft reference是个什么东西抽象类和接口的区别谈一下对java中的abstract的理解Overload和Override的区别St

2017-01-05 09:28:07 1914

转载 Java数据结构和算法:HashMap的实现原理

HashMap源码理解Java集合之HashMapHashMap原理及实现学习总结 HashMap源码分析HashMap原理及实现学习总结HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在java编程语言中,最基本的结构就是两种,

2017-01-05 08:31:57 3103

转载 国内一线互联网公司内部面试题库

原文链接:https://github.com/JackyAndroid/AndroidInterview-Q-A/blob/master/README-CN.md欢迎在GitHub或者掘金上关注我GitHub: https://github.com/JackyAndroid掘金: https://gold.xitu.io/user/562dc7cc60b20fc9817962a2国内一线互联网公司

2017-01-04 21:33:09 1782

原创 Android源码分析

ButterKnife源码分析

2017-01-04 21:20:59 416

原创 数据结构与算法:查找

所谓查找(Search)又称检索,就是在一个数据元素集合中寻找满足某种条件的数据元素。查找在计算机数据处理中是经常使用的操作。查找算法的效率高低直接关系到应用系统的性能。查找的方法很多,本章将介绍一些常用的查找算法,主要有:线性表的查找、树表的查找和散列表的查找,并对有关的算法进行性能分析和对比基本概念1.数据表就是指数据元素的有限集合。例如,为统计职工工作业绩,建立一个包括:职工编号、职工姓名、业

2017-01-04 20:45:04 5781

原创 数据结构和算法:图

图(Graph)是一种较树更为复杂的非线性数据结构。在树形结构中,数据元素之间的关系是层次型的,树中除叶子以外的每一个数据元素可以和它下一层的多个数据元素存在关系;但除根元素以外的每一个数据元素只能且必须和它上一层中的一个数据元素存在关系。而在图形结构中,数据元素之间的关系是任意的,图中每一个数据元素可以和任何其它数据元素相关联。图的基本概念图的术语1.完全图(complete graph):在有n

2017-01-04 18:38:45 3359

原创 Java数据结构与算法:堆

堆的定义设有n个数据元素的关键字为(k0、k1、…、kn-1),如果它们满足以下的关系:ki<= k2i+1且ki<= k2i+2(或ki>= k2i+1且ki>= k2i+2)(i=0、1、…、(n-2)/2)则称之为堆(Heap)。如果将此数据元素序列用一维数组存储,并将此数组对应一棵完全二叉树,则堆的含义可以理解为:在完全二叉树中任何非终端结点的关键字均不大于(或不小于)其左、右孩子结点的

2017-01-04 18:15:39 2603

原创 Java数据结构和算法:字符串、数组和广义表

数组和广义表是与前述的线性表有所区别的数据结构。它们可以看成是线性表在下述含义上的扩展:线性表中的元素本身也是一个数据结构字符串字符串的定义、存储结构字符串(string)是由n (n≥0) 个字符组成的有限序列。字符串简称为串,一般记为: s = “a0 a1 … an-1” 其中s是串名;用双引号括起来的字符序列是串值;ai (0≤i<<n)可以是ASCII码字符中的可打印字符,通常是字

2017-01-04 17:48:36 920

数据结构各种算法实现(C++模板)

数据结构各种算法实现(C++模板)

2017-08-02

C语言程序设计教程

全书共分11章和5个附录,第1章介绍程序设计语言的基本概念、算法描述和C程序的框架以及上机基本方法;第2章讨论了C语言的数据;第3-6章讨论了C语言的结构化程序设计方法(包括顺序、分支、循环和函数);第7和8章讨论了数据的构造类型(包括数组、字符串、结构体、共用体等);第9章介绍了文件概念和各种操作;第10章讨论用C语言进行音乐和图形设计的基本方法;第11章详细介绍了TC2.0的上机环境,包括实践指导、实验、课程设计等内容。在附录中全面地介绍了C库函数。, 本书将C语言的精华和难点——“指针”分解到各个章节进行讨论,使读者能循序渐进,逐步了解、掌握“指针”的概念和各种应用方法,以达到熟练掌握的目的。, 本教材适用于本科、专科和各级职业技术学校的教学,可作为计算机等级考试教材、计算机爱好者自学用书或软件开发的参考资料。

2017-07-29

Android项目宝典

Android项目宝典

2017-06-16

Android面试宝典5.0

Android面试宝典,包括Java基础和高级面试,Android基础和高级面试,面试技巧,面试分享等内容

2017-06-16

Android面试宝典4.0

Android面试宝典,包括Java基础和高级面试,Android基础和高级面试,面试技巧,面试分享等内容

2017-06-05

Android面试宝典3.0 pfd 下载

Android面试宝典3.0,内容:JavaSE 基础,JavaSE 高级,Android 基础,Android 高级,Android 项目,项目面试常见问题,面试实战记录,BAT 面试题,Android 最新技术

2017-05-15

JavaWeb基础入门

JavaWeb开发入门,目录:JavaScript,XML解析器,JavaWeb开发入门,Http协议,Servlet技术,请求和响应,Cookie和Session,MySQL数据库,用JDBC操作数据库,JDBC之数据库连接池,JDBC之事务,上传下载文件,酷炫的文件上传技术,JavaMail邮件

2017-04-05

JavaWeb开发入门

JavaWeb开发入门,目录:JavaScript,XML解析器,JavaWeb开发入门,Http协议,Servlet技术,请求和响应,Cookie和Session,MySQL数据库,用JDBC操作数据库,JDBC之数据库连接池,JDBC之事务,上传下载文件,酷炫的文件上传技术,JavaMail邮件开发,过滤器Filter,AJAX,JSP入门,JSTL标签库,MVC设计模式,在线支付,Jquery

2017-04-05

Java基础入门 版本5

java基础入门,GitBook本地命令行生成,等线字体版目录:java开发入门,java编程基础,面向对象,常见对象,多线程,集合框架,网络编程,IO流,反射机制,动态代理,注解,java新特性

2017-04-05

Java基础入门 版本4

java基础入门,目录:java开发入门,java编程基础,面向对象,常见对象,多线程,集合框架,网络编程,IO流,反射机制,动态代理,注解,java新特性

2017-04-05

Java基础入门 版本2

java基础入门,目录:java开发入门,java编程基础,面向对象,常见对象,多线程,集合框架,网络编程,IO流,反射机制,动态代理,注解,java新特性

2017-04-04

Android Studio 使用指南

Android Studio 使用指南,Android Studio 提供用于为各类 Android 设备构建应用的最快速的工具。利用世界一流的代码编辑、调试、性能工具、一套灵活的构建系统以及一套即时构建/部署系统,您可以专注于构建独特的高品质应用。

2017-04-03

零基础学Python(第一版)

零基础学Python(第一版) Email:815712739@qq.com GitHub:https://github.com/JackChen1999 GitBook:https://www.gitbook.com/@alleniverson 博客:http://blog.csdn.net/axi295309066 微博:AndroidDeveloper

2017-03-30

Android源码解析

Android源码解析

2017-03-21

Java基础入门 2017-03-21

Java基础入门开发笔记

2017-03-21

JavaWeb开发笔记

JavaWeb开发笔记

2017-03-21

Java和Android源码设计模式 2017-03-21

Java和Android源码设计模式 2017-03-21

2017-03-21

Git和GitHub教程 2017-03-21

Git和GitHub教程 2017-03-21版

2017-03-21

Android-Studio使用教程 2017-03-21

Android-Studio使用教程

2017-03-21

Java设计模式2

Java设计模式,GitBook本地生成版

2017-03-21

Android面试宝典6.0

Android面试宝典,包括Java基础和高级面试,Android基础和高级面试,面试技巧,面试分享,BAT大咖助力,全面升级Android面试,Android高级面试,10大开源框架源码解析...等内容

2018-08-06

IT视频教程

IT视频教程,包括前端开发、后端开发、Android开发、数据结构与算法、数据库、人工智能、C++

2017-11-14

Kotlin 基础教程

内容摘要:Kotlin视频教程、第1章 Kotlin简介、第2章 快速开始:HelloWorld、第3章 Kotlin语言基础、第4章 基本数据类型与类型系统、第5章 集合类、第6章 泛型、第7章 面向对象编程、第8章 函数式编程、第9章 轻量级线程:协程、第10章 Kotlin与Java互操作、第11章 使用Kotlin集成SpringBoot开发Web服务端、第12章 使用Kotlin集成Gradle开发、第13章 使用 Kotlin 和 Anko 的Android 开发、第14章 使用 Kotlin DSL、第15章 Kotlin 文件IO操作与多线程、第16章 使用 Kotlin Native

2017-10-03

Kotlin 极简教程

内容摘要:Kotlin视频教程、第1章 Kotlin简介、第2章 快速开始:HelloWorld、第3章 Kotlin语言基础、第4章 基本数据类型与类型系统、第5章 集合类、第6章 泛型、第7章 面向对象编程、第8章 函数式编程、第9章 轻量级线程:协程、第10章 Kotlin与Java互操作、第11章 使用Kotlin集成SpringBoot开发Web服务端、第12章 使用Kotlin集成Gradle开发、第13章 使用 Kotlin 和 Anko 的Android 开发、第14章 使用 Kotlin DSL、第15章 Kotlin 文件IO操作与多线程、第16章 使用 Kotlin Native

2017-10-03

RxJava入门教程

上个月RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过RxJava的朋友可能就不知道怎么办了,不知道该看RxJava1还是直接跳到RxJava2。所以写下这个教程, 帮助那些没有用过RxJava的朋友入门。

2017-09-30

RxJava基础入门教程

上个月RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过RxJava的朋友可能就不知道怎么办了,不知道该看RxJava1还是直接跳到RxJava2。所以写下这个教程, 帮助那些没有用过RxJava的朋友入门。

2017-09-29

RxJava教程

上个月RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过RxJava的朋友可能就不知道怎么办了,不知道该看RxJava1还是直接跳到RxJava2。所以写下这个教程, 帮助那些没有用过RxJava的朋友入门。

2017-09-29

Python 基础入门教程

Python 基础入门教程,这是小白的Python新手教程。不要再犹豫了,这个教程就是为你准备的!

2017-09-28

零基础学Python

Python是目前最流行的动态脚本语言之一。本书由浅入深,全面、系统地介绍了使用Python进行开发的各种知识和技巧。 本书内容包括Python环境的安装和配置、Python的基本语法、模块和函数、内置数据结构、字符串和文件的处理、正则表达式的使用、异常的捕获和处理、面向对象的语言特性和设计、Python的数据库编程、Tkinter GUI库的使用、HTML应用、XML应用、Django网页开发框架的使用、测试驱动开发模式应用、Python中的进程和线程、Python系统管理、网络编程、Python图像处理、Python语言的扩展和嵌入以及Windows下Python开发等。为了便于读者学习,本书每个章节中都提供了详尽的例子,结合实例讲解各个知识点。 本书适合Python爱好者、大中专院校的学生、社会培训班学生,以及系统管理员、界面开发人员、Web开发人员、网络编程人员等有关人员学习、使用。

2017-09-28

Git和GitHub使用教程

Git和GitHub使用教程:Git简介,安装Git,创建版本库,时光机穿梭,远程仓库,分支管理,标签管理,使用GitHub,自定义Git,从0开始学习GitHub

2017-09-27

Java基础入门教程

java基础入门,GitBook本地命令行生成,等线字体版目录:java开发入门,java编程基础,面向对象,常见对象,多线程,集合框架,网络编程,IO流,反射机制,动态代理,注解,java新特性,内存管理。

2017-09-26

给 Android 开发者的 RxJava 详解

Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,现在已经支持几乎全部的流行编程语言了

2017-09-26

ReactiveX/RxJava文档中文版

Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,现在已经支持几乎全部的流行编程语言了

2017-09-25

Glide v4 中文版

Glide v4 文档 中文版,Glide是Android平台上的一个快速高效的图像加载库,专注于平滑滚动。Glide提供了一个简单易用的API,一个性能可扩展的资源解码管道流和自动资源池。

2017-09-25

kotlin-for-android-developers

在这本书中,我会使用Kotlin作为主要的语言来开发一个android应用。方式是通过开发一个应用来学习这门语言,而不是根据传统的结构来学习。我会在感兴趣的点停下来通过与Java1.7对比的方式讲讲Kotlin的一些概念和特性。用这种方法你就能知道它们的不同之处,并且知道哪部分语言特性可以让你提高你的工作效率。

2017-09-24

Kotlin极简教程

本书从Kotlin的HelloWorld开始,生动讲解Kotlin的基础知识和实战案例,分为两大部分:“基础知识”部分包括语言基础、基本数据类型与类型变量、集合类、泛型、面向对象编程、函数式编程、协程等;“实战”部分包括Kotlin与Java互操作、使用Kotlin集成Spring Boot开发WEB服务端、使用Kotlin集成Gradle开发、使用Kotlin和Anko的Android开发、使用Kotlin DSL、Kotlin文件IO操作与多线程、使用Kotlin Native。本书包含了大量精选示例代码和应用案例,为初学者提供了实用指南,也帮助熟练的Java开发者快速切换到Kotlin, Kotlin是JetBrains团队开发的一门现代的、注重工程实用性的静态类型编程语言,JetBrains团队以开发了世界上最好用的IDE而著称。Kotlin于2010年推出,并在2011年开源。Kotlin充分借鉴并汲取了Java、Scala、Groovy、C#、Gosu、JavaScript、Swift等多门杰出语言的优秀特性,语法简单优雅、表现力丰富、抽象扩展方便、代码可重用性好,同时也支持面向对象和函数式编程的多范式编程。Kotlin可以编译成Java字节码运行在JVM平台和Android平台,也可以编译成JavaScript运行在浏览器环境,而且还可以直接编译成机器码的系统级程序,直接运行在嵌入式、iOS、MacOS/Linux/Windows等没有JVM环境的平台。Kotlin源自产业界,它解决了工程实践中程序设计所面临的真实痛点,例如,类型系统可以避免空指针异常的问题。, 我最早是被Kotlin的下面这段代码所吸引:, package com.easy.kotlin, fun compose(f: (B) -> C, g: (A) -> B): (A) -> C {, return { x -> f(g(x)) }, }, fun isOdd(x: Int) = x % 2 != 0, fun length(s: String) = s.length, fun main(args: Array) {, val oddLength = compose(::isOdd, ::length), val strings = listOf('a', 'ab', 'abc'), println(strings.f?ilter(oddLength)), }, 13行。, 这大约是在三年前,当时我在学习Java 8中的函数式编程以及Lambda表达式等新特性。那时,我也对Scala、Groovy、Clojure、Haskell等技术很感兴趣,在伴随着兴趣的学习过程中,我无意中看到了上面那段Kotlin代码,第一眼看到这么优雅的函数式编程风格,尤其是compose函数的定义实现,深深地吸引了我。, Swift使用func关键字声明函数多个c,怪怪的;Groovy、Scala等语言使用def关键字,与函数本义联想不直接;JavaScript使用function关键字又显得死板了些。而Kotlin中的fun则简单优雅地恰到好处,关键还让人自然联想到“乐趣、开心、愉快”这样的意思,使用Kotlin每写一个函数都是充满乐趣的。, 我们不妨来看看同样的逻辑实现,如果使用Java 8来写会如何:, package com.easy.kotlin;, import java.util.ArrayList;, import java.util.List;, interface G {, B apply(A a);, }, interface F {, C apply(B b);, }, interface FG {, C apply(A a);, }, public class ComposeFunInJava {, public static void main(String[] args) {, G g = (s) -> s.length();, F f = (x) -> x % 2 != 0;, FG fg = (x) -> f.apply(g.apply(x));, List strings = new ArrayList();, strings.add('a');, strings.add('ab');, strings.add('abc');, List result = new ArrayList();, for (String s : strings) {, if (fg.apply(s)) {, result.add(s);, }, }, System.out.println(result);, }, }, 36行,差不多是Kotlin的3倍。, 我们知道,Java是一门非常优秀的面向对象语言。但是在函数式编程方面,与其他函数语言相比,还是显得有些笨重与生涩,并且其内在体现出来的思想,依旧是面向对象的思想。, 功能强大的Scala语言,复杂性相对较高,学习成本也高,而且Scala与Java的互操作性没有Kotlin好。所以,如果既想方便、流畅地使用Java强大与完善的生态库,又想使用更加先进的编程语言特性,无疑Kotlin是个非常不错的选择。, 因此,我立马进入了Kotlin的世界!, Kotlin之前一直是默默无闻的,直到今年(2017年)Google IO大会上,Google宣布正式支持Kotlin为Android的官方开发语言,而且从Android Studio 3.0开始,将直接内置集成Kotlin而无需安装任何的插件。另外,在Spring 5.0 M4中也引入了对Kotlin专门的支持。, 在学习和使用Kotlin的过程中,我发现我越来越喜欢Kotlin,它是一门非常优秀、优雅、有趣、流畅实用的语言,绝对值得一试。感谢Kotlin团队!, 本书可以说是我对Kotlin的使用和思考过程的粗浅总结。通过本书的写作,我加深了对Kotlin语言及其编程的理解,深刻体会到了学无止境的含义。写书的过程也是我系统学习与思考Kotlin的过程,如果本书能够对你有所帮助,将不胜欣慰。, 如何阅读本书, 受到Kotlin极简特性的感召,我希望也通过极简的表述,全面介绍Kotlin语言特性以及如何使用Kotlin进行实际项目开发。全书共16章,分为三大部分:第一部分“Kotlin语言基础”包括第1~4章,介绍如何快速开始使用Kotlin,以及Kotlin语法、基本数据类型和类型系统;第二部分“编程进阶”包括第5~10章,介绍Kotlin标准库中的集合类、泛型、面向对象编程特性、函数式编程、协程、与Java的互操作;第三部分“综合实战”包括第11~16章,介绍如何使用Kotlin集成Spring Boot、Spring MVC等框架来开发Web服务端应用,如何使用Kotlin开发Android应用,如何使用Kotlin的DSL代码风格,如何操纵文件IO、正则表达式以及多线程,如何定义Kotlin Native与C语言互操作。, 建议初学者最好按照顺序来阅读本书,Java程序员可以从第5章开始阅读,直接研究Kotlin的特殊点,C语言程序员可以先读第16章再考虑补充前面的基础知识。, 本书章节内容如下。, 第一部分 “Kotlin语言基础”, 第1章是Kotlin语言的简介,带领读者快速学习Kotlin的环境搭建以及常用工具的使用。该章最后还给出一个编程语言学习的小结。通过该章的学习,能够快速进入Kotlin的世界。, 第2章是快速开始Hello World,分别给出了使用命令行REPL、可执行应用程序、Web RESTful、Android、JavaScript等平台环境上的HelloWorld示例。, 第3章介绍Kotlin语言的基础知识,包括Kotlin语言的关键字与标识符等、表达式与流程控制、运算操作符、函数及其扩展等基本内容。, 第4章介绍Kotlin语言的基本类型和类型系统。包括Kotlin的内置基本类型:数字、字符串、布尔、数组等,以及Kotlin中引入的特殊的可空类型。, 第二部分 “编程进阶”, 第5章介绍Kotlin标准库中的集合类:List、Set、Map。通过该章的学习,我们将了解到Kotlin是如何扩展Java集合库的,这使得写代码更加简单容易。, 第6章介绍Kotlin泛型的基本概念、型变以及类型边界等内容。, 第7章介绍Kotlin面向对象编程的特性:类与构造函数、抽象类与接口、继承以及多重继承等基础知识,同时介绍了Kotlin中的注解类、枚举类、数据类、密封类、嵌套类、内部类、匿名内部类等。, 第8章介绍Kotlin函数式编程的相关内容,其中重点介绍了Kotlin中的高阶函数、Lambda表达式、闭包等核心语法,并给出相应的实例说明。还探讨了关于Lambda演算、Y组合子与递归等函数式编程思想的内容。, 第9章介绍Kotlin中的协程,包括协程的创建、执行、取消等操作。在该章的后半部分,主要探讨挂起函数的组合执行、协程上下文与调度器、通道与管道等相关内容。最后,对协程与线程进行了简单比较,简要介绍了Kotlin的协程API库。, 第10章介绍Kotlin与Java的互操作。, 第三部分 “综合实战”, 第11章介绍如何使用Kotlin集成Spring Boot、SpringMVC等框架来开发Web服务端应用,给出了一个完整的开发实例。最后,简单介绍了Spring 5.0中对Kotlin的支持特性。, 第12章介绍使用Kotlin集成Gradle开发的相关内容。, 第13章介绍如何使用Kotlin开发Android应用的具体方法,其中用到了Anko、ButterKnife、Realm等相关框架。, 第14章介绍Kotlin中DSL的相关内容。我们将会看到Kotlin的扩展函数和高阶函数(Lambda表达式)特性,为定义Kotlin DSL提供了极大的支持。使用DSL的代码风格,可以让程序更加直观易懂、简洁优雅。, 第15章介绍Kotlin文件IO操作、正则表达式以及多线程相关的内容。, 第16章简单介绍了Kotlin Native,并给出了Kotlin与C语言互操作的完整实例。, 谁适合阅读本书, 本书适合于所有程序员,不管你是前端开发者、Android/iOS开发者,还是Java开发者、C语言开发者,学习Kotlin都会非常容易,本书将帮助读者快速进入Kotlin世界。, 如果你目前还不是程序员,但想进入编程世界,那么可以尝试从Kotlin开始学习。虽然本书中的部分内容需要一定的Java编程基础,但是Kotlin本身的极简特性能激发你对编程的兴趣。, 代码下载, 几乎在每章末尾处,我都附上了该章示例工程源代码地址。这些源码都在https://github.com/EasyKotlin。读者可以根据需要,自由下载学习。, 致谢, 在本书的写作出版过程中,得到了很多人的帮助和陪伴。, 首先要感谢的是我的妻子和两个可爱的孩子。正是有了你们的陪伴,我的生活才更加有意义。我要感谢我的父母,虽然他们可能不知道我写的东西是什么,但是我在写书过程中,脑海里会经常浮现出他们的笑脸,正是由于他们的辛勤养育,我才能长成今天的我。, 我要衷心地感谢本书的策划编辑吴怡女士。在本书的写作修改过程中,她耐心细致地对稿件进行了详尽审阅和批注,还提出了很多宝贵的修改建议,并不断给予我鼓励,才使我快速完成了这本书。还感谢审稿编辑陈佳媛、曲熠对本书提出的宝贵意见,同时感谢本书出版过程中所有付出辛劳的华章公司工作人员。, 在此,我还要特别感谢我们公司的技术大牛雷卷(陈立兵),非常感谢他能够抽出宝贵时间审阅本书,并给出了内容的勘误,极大地提升了本书的质量,最后,还为本书写了序。真的非常感谢!, 我还要感谢在我的工作学习中认识的所有朋友和同事们,能够认识你们并跟你们一起学习、共事,是我的荣幸!, 请联系我, 虽然在本书写作与修改的过程中,我竭尽全力追求简单正确、清晰流畅地表达内容,但是限于自身水平和有限的时间,仍会有错误与疏漏之处,还望各位读者不吝指正。, 对本书的任何问题、意见或者建议,欢迎通过邮件universsky@163.com与我交流。, 快乐生活,快乐学习,快乐分享,快乐实践出真知。祝大家阅读愉快!, 陈光剑, 2017年8月于杭州, 本书是不可多得的优秀图书,内容翔实,描述简洁,作者对编程语言有深刻的理解,融入了自己多年的开发经验……Kotlin非常新,而且发展也非常快,是一门非常有前景的开发语言,我希望Android和Java程序员都能停下来阅读这本Kotlin的图书,以系统地了解这项技术。, 雷卷 阿里巴巴70后Java程序员, 这是一本精彩有趣的好书。阅读本书,你会再次感受到编程的乐趣。我读过许多编程的书籍,但是这本书对程序设计的深刻见解依然深深触动了我。, 雷影 阿里巴巴技术专家, 光剑的这本书是非常不错的Kotlin教程。书中有大量有趣而实用的代码实例,理论与实践相结合,强烈推荐大家阅读。, 木羽 阿里巴巴高级技术专家, 身处互联网大潮汹涌席卷的时代里,对新知识的无限渴望和孜孜不倦的探求,是一名技术人员对自己的基本要求。陈光剑的这本书是Kotlin语言领域中非常值得借鉴的学习资料,无论是刚入门的技术小白,还是需要进阶的技术痴汉,都可在这本书中找到另一番天地。, 郁磊 有赞测试专家, Kotlin具备简洁的语言、与Java的无缝互译、很棒的IDE支持,且不断进化,如果你刚刚从事或者一直从事Android开发,Kotlin都将成为你很好的起点或新的助手。本书作为对Kotlin语言编程上手和基本使用都是不错的参考资料,必定对大家有所帮助。, 石舟 阿里巴巴测试专家, 在快速发展与创新的今天,不断孕育出各种新语言。Kotlin非常具有代表性,具有简明性和独特的表达能力,同时易于“并发编程”。这本书丰富而全面地介绍了这门优秀的语言。任何对编程语言感兴趣的程序员都不妨阅读一下,相信你定会有收获。, 林文国 二维火资深架构师, 作为JetBrains IDE的忠实用户,也一样喜欢上了它的Kotlin,而这本书绝对是Kotlin难得的教程,内容全面,理论和实战兼得。对我来说,读这本书的收获比自己想象的更多。, 刘鼎亮 挖财资深工程师, 我清楚地记得当初从Eclipse切换到JetBrains的Intelij时带来的效率提升和极致的用户体验,其中细节只有真正用过才能体会到。可以想见,JetBrains出品的Kotlin必然也会带来各种令人惊喜的提升。光剑在许多人还没注意到Kotlin的时候就已经开始动手实践了,并带来了一本语言精练、内容全面、示例丰富的教程,他亲自使用并检验过Kotlin的很多特性,有许多心得和深刻理解,这是一本不可多得的带领程序员领略Kotlin的便捷和高效的指南。, 有山 阿里巴巴技术专家, 这是一本Kotlin入门的好书,内容翔实全面,并且由浅入深,通过大量的案例,引导读者一步步了解Kotlin的方方面面,于开卷者大有裨益。, 张立柱 策道科技CTO

2017-09-20

C/C++设计模式-2

C语言面向对象编程,C语言设计模式,C++设计模式

2017-08-01

C/C++设计模式

C语言面向对象编程,C语言设计模式,C++设计模式

2017-07-31

泡妞与设计模式

泡妞与设计模式

2017-07-28

C语言面向对象编程与设计模式

C语言面向对象编程与设计模式

2017-07-28

空空如也

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

TA关注的人

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