自定义博客皮肤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

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

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

原创 Android源码分析

Android 开源项目源码解析android-open-project-analysis这是一个协作项目,最终多数开源库原理解析会在这里分享出来Android源码设计模式分析项目android_design_patterns_analysis该项目通过分析Android系统中的设计模式来提升大家对设计模式的理解,从源码的角度来剖析既增加了对Android系统本身的了解,也从优秀的设计中领悟模式的实

2017-03-21 17:42:29 1330 1

原创 Java设计模式

Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式),为了方便大家学习,现将所有文章的进行了整理,方便大家下载阅读,希望能给各位带来帮助!

2017-03-21 17:34:08 1786 1

原创 Android的消息机制

1. ANR异常Application No Response:应用程序无响应。在主线程中,是不允许执行耗时的操作的,如果主线程阻塞的时间大于6秒,就很有可能出现anr异常。主线程,要完成界面的更新,事件的处理,窗体显示的回调,所以如果主线程阻塞时间较长,就不能很好的处理以上比较重要的事情,那么Android有一个机制,就是如果他发现消息队列中有很多消息,主线程没办法响应的话,他就会抛出anr异常。

2017-03-03 17:01:58 1310

原创 Android的事件分发

一、Touch事件和绘制事件的异同之处Touch事件和绘制事件很类似,都是由ViewRoot派发下来的,但是不同之处在绘制事件是由应用中的某个View发起请求,一层一层上传到ViewRoot,再有ViewRoot下发绘制,传递canvas给所有子View让其绘制自身,绘制好后,再通知WMS进行画到屏幕上。而Touch事件是由硬件捕获到触摸后由系统传递给应用的ViewRoot,再由ViewRoot往下

2017-03-02 17:18:53 2632 1

转载 Java并发编程-并发工具包java.util.concurrent使用指南

Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我将带你一一认识 java.util.concurrent 包里的这些类,然后你可以尝试着如何在项目中使用它们。本文中我将使用 Java 6 版本,我不确定这和 Java 5 版本里的是否有

2017-03-24 22:41:04 16157 2

原创 Smack类库最好的学习资料

即时通讯,xmpp,openfire,spark,smack

2017-03-16 19:31:16 2151 1

原创 即时通讯:XMPP项目实践-微聊

1. 项目简介做一个类似QQ 的通讯工具,要求有注册、登录、添加好友、添加分组、聊天、退出登录等功能。我用8 张运行效果图来展示我们将要实现的功能。 注意,服务器用的是Openfire,我们可以用Spark 作为另外一个客户端进行测试。 闪屏页进来以后是登录界面,要求记住上次登陆的账号和密码,在界面的右下角有新用户按钮,点击后进入注册界面。注册只需要输入账号和密码即可。账号不能和其他人重复,否则注

2017-03-16 16:53:48 3617 6

原创 即时通讯:XMPP基础

XMPP(Extensible Messaging and Presence Protocol)是一种基于标准通用标记语言的子集XML 的协议,它继承了在XML 环境中灵活的发展性。因此,基于XMPP 的应用具有超强的可扩展性。经过扩展以后的XMPP 可以通过发送扩展的信息来处理用户的需求,以及在XMPP 的顶端建立如内容发布系统和基于地址的服务等应用程序。

2017-03-16 16:51:37 5099

原创 即时通讯基础

即时通讯系列阅读即时通讯基础即时通讯:XMPP基础即时通讯:XMPP项目实践-微聊1. 即时通讯简介即时通讯(Instant Messaging)是目前Internet 上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。不容置疑,Internet 已经成为真正的信息高速公路。从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些

2017-03-16 16:49:36 3466

原创 揭秘Java网络爬虫程序原理

随着互联网+时代的来临,越来越多的互联网企业层出不穷,涉及游戏、视频、新闻、社交、电商、房产、旅游等众多行业。如今互联网成为大量信息的载体,如何有效地从中提取有价值的信息并利用这些信息成为一个巨大的挑战爬虫,一个可怕的怪物,从百度、Google等搜索引擎公司诞生开始便有了它的身影,如今移动互联网时代爬虫更是猖狂,每个网站似乎都被它光顾过,只是你看不到,不过你放心它不干坏事,你能在网上迅速搜索到你到的

2017-03-15 19:49:43 25698 4

转载 Retrofit2 完全解析 探索与okhttp之间的关系

1. 概述之前写了个okhttputils的工具类,然后有很多同学询问这个工具类和retrofit什么区别,于是上了下官网,发现其底层对网络的访问默认也是基于okhttp,不过retrofit非常适合于restful url格式的请求,更多使用注解的方式提供功能。既然这样,我们本篇博文首先研究其所提供的常用的用法:一般的get、post请求动态url,动态参数设置,各种注解的使用上传文件(单文

2017-03-15 02:07:14 957

转载 Android 一个改善的okHttp封装库

1. 概述之前写了篇Android OkHttp完全解析 是时候来了解OkHttp了,其实主要是作为okhttp的普及文章,当然里面也简单封装了工具类,没想到关注和使用的人还挺多的,由于这股热情,该工具类中的方法也是剧增,各种重载方法,以致于使用起来极不方便,实在惭愧。于是,在这个周末,抽点时间对该工具类,进行了重新的拆解与编写,顺便完善下功能,尽可能的提升其使用起来的方便性和易扩展性。标题的改善,

2017-03-15 02:05:29 589

转载 Android Https相关完全解析 当OkHttp遇到Https

1. 概述其实这篇文章理论上不限于okhttp去访问自签名的网站,不过接上篇博文了,就叫这个了。首先要了解的事,okhttp默认情况下是支持https协议的网站的,比如https://www.baidu.com,https://github.com/hongyangAndroid/okhttp-utils等,你可以直接通过okhttp请求试试。不过要注意的是,支持的https的网站基本都是CA机构颁

2017-03-15 02:04:12 648

转载 Android OkHttp完全解析

1. 概述最近在群里听到各种讨论okhttp的话题,可见okhttp的口碑相当好了。再加上Google貌似在6.0版本里面删除了HttpClient相关API,对于这个行为不做评价。为了更好的在应对网络访问,学习下okhttp还是蛮必要的,本篇博客首先介绍okhttp的简单使用,主要包含:一般的get请求一般的post请求基于Http的文件上传文件下载加载图片支持请求回调,直接返回对象、

2017-03-15 02:03:02 776

转载 Android Volley完全解析4:带你从源码的角度理解Volley

经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这也是Volley系列的最后一篇文章了。其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示。多数朋友突然看到一张这样的图,应该会和我一样,感觉一头雾水吧?

2017-03-15 02:01:12 441

转载 Android Volley完全解析3:定制自己的Request

经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片。

2017-03-15 01:59:57 465

转载 Android Volley完全解析2:使用Volley加载网络图片

在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法。本篇文章中我们即将学习关于Volley更加高级的用法,如何你还没有看过我的上一篇文章的话,建议先去阅读Android Volley完全解析(一),初识Volley的基本用法。在上篇文章中有提到过,Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成于一身的一个框架。我们都知道,Uni

2017-03-15 01:58:39 432

转载 Android Volley完全解析1:初识Volley的基本用法

我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。

2017-03-15 01:56:35 472

转载 Http协议详解

当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。

2017-03-15 01:39:57 409

转载 抓包工具Wireshark基本介绍和学习TCP三次握手

之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS。 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包。记得大学的时候就学习过TCP的三次握手协议,那时候只是知道,虽然在书上看过很多TCP和UDP的资料,但是从来没有真正见过这些数据包, 老是感觉在云上飘一样,学得不踏实。有了wireshark就能截获这些网络数据包,

2017-03-15 01:30:00 4929

原创 TypeError: Path must be a string. Received undefined

TypeError: Path must be a string. Received undefined

2017-03-13 17:36:16 13936

原创 Java语法基础-2

流程控制语句在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。流程控制语句分类:顺序结构、选择结构、循环结构

2017-03-12 17:33:56 1223

原创 Java语法基础-1

关键字,标识符,注释,进制,常量,变量,运算符,数据类型

2017-03-12 16:27:15 781

转载 NIO和AIO

摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 什么是NIO Buffer Channel 网络编程 AIOIO感觉上和多线程并没有多大关系,但是NIO改变了线程在应用层面使用的方式,也解决了一些实际的困难。而AIO是异步IO和前面的系列也有点关系。在此,为了学习和记录,也写一篇文章来介绍NIO和AIO。1. 什么是NIONIO是New I/O的简称,与

2017-03-12 15:00:42 528

转载 JDK7 AIO介绍

JDK7已经release一段时间了,有个重要的新特性是AIO。今天趁闲暇,简单体验了下,Io的两个重要步骤:发起IO请求,和实际的IO操作。在unix网络编程的定义里异步和非异步概念的区别就是实际的IO操作是否阻塞。如果不是就是异步,如果是就是同步。

2017-03-12 14:57:55 1101

转载 Java NIO 系列教程

Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。

2017-03-12 13:35:56 448

原创 fatal: unable to access : The requested URL returned error: 403

C:\Users\AllenIverson\Desktop\gitbook-test>git push -u gitbook masterremote: Forbiddenfatal: unable to access 'https://git.gitbook.com/alleniverson/mybook.git/': The requested URL returned error: 403

2017-03-11 21:36:17 21331 9

原创 GitBook使用教程

各大站长平时除了写博客外,可以使用 gitbook 将一系列的博客专栏整理成电子书出版。这样既方便各大网友阅读,还可以带来新的离线阅读功能。在以前我们只能靠出版社,或者编写 word 文档,来实现。然而有了 gitbook 之后,一切都变得那么简单了。今天就为大家分享一下,如果在 Windows 系统上安装 gitbook,进行电子书的编写和发布。

2017-03-11 16:48:33 93223 12

转载 苹果核 - 页面动态化的基础 —— Tangram

12月10日在SFDC(SegmentFault Developer Conference)大会上初次介绍了手机天猫的Tangram方案,现场时间有限,讲得匆忙,特此整理记录。这篇内容是Tangram的整体介绍与相关业务开发实践的介绍,后续逐步会将更详细的方案整理成文分享出来。1. 什么是Tangram顾名思义,Tangram中文名是七巧板的意思,我们希望这个框架提供一系列基本单元,就像积木块一样

2017-03-10 21:39:14 1477

转载 苹果核 - Tangram 的基础 —— vlayout(Android)

1. 前言天猫沉淀了3年的一套界面解决方案已经开始陆续进入开源流程:首先开源的是Android基础组件VLayout vlayout 是手机天猫 Android 版内广泛使用的一个基础 UI 框架项目 提供了一个用于RecyclerView的自定义的LayoutManger,可以实现不同布局格式的混排,目标是支撑客户端native页面的快速开发。它也是 Tangram 框架的基础模块,现已开源,欢迎

2017-03-10 21:30:49 957

转载 非常全面的Android Bitmap知识点梳理

在日常开发中,可以说和Bitmap低头不见抬头见,基本上每个应用都会直接或间接的用到,而这里面又涉及到大量的相关知识。所以这里把Bitmap的常用知识做个梳理,限于经验和能力,不做太深入的分析。1. 区别decodeResource()和decodeFile()这里的区别不是指方法名和参数的区别,而是对于解码后图片尺寸在处理上的区别:decodeFile()用于读取SD卡上的图,得到的是图片的原始尺

2017-03-10 21:08:44 848

原创 Google VR全景图片与视频功能开发详解

1. VR开发概述时下关于“谷歌、Android与VR”的各种言论纷飞。VR群里有人在争论Android VR是不是一体机,是不是类似Android Wear、为VR打造的全新平台,是不是改良后的Android N。随着vr设备的流行开来,各大招聘平台上也发布了不少关于andorid vr开发相关的Android工程师岗位,从这点来说掌握vr在项目中的实际应用要点,有助于大家为自己的开发经验上增加前

2017-03-10 00:14:18 10557 1

原创 C/C++在Android开发中的应用

Android是基于Linux内核的一个手机操作系统,谷歌提供了开发包(Android SDK),程序员可以通过开发包开发Android App(应用程序)。Android SDK提供Java语言接口,因此Android应用是使用Java开发的。

2017-03-09 09:45:07 55977 11

原创 Android应用开发:网络编程-2

网络编程Java基础:网络编程Uri、URL、UriMatcher、ContentUris详解Android应用开发:网络编程1Android应用开发:网络编程21. 使用HttpClient发送get请求HttpClient是Apache开发的第三方框架,Google把它封装到了Android API中,用于发送HTTP请求。在Android.jar包中,可以看到有很多java的API,

2017-03-08 18:57:27 1907

原创 Android应用开发:网络编程-1

Android网络编程

2017-03-08 18:18:49 1755

原创 Android应用开发-快速入门

1G就是大哥大,手机类似于简单的无线电双工电台,通话是锁定在一定频率,所以使用可调频电台就可以窃听通话第二代GSM、CDMA等数字手机(2G):手机使用PHS,GSM或者CDMA这些十分成熟的标准,具有稳定的通话质量和合适的待机时间,支持彩信业务的GPRS和上网业务的WAP服务,以及各式各样的Java程序等

2017-03-08 17:51:00 2873

原创 Android应用开发:数据存储和界面展现-2

Android应用开发:数据存储和界面展现

2017-03-08 16:43:21 1305

原创 Android应用开发:数据存储和界面展现-1

1. 相对布局RelativeLayout特点:相对布局所有组件可以叠加在一起;各个组件的布局是独立的,互不影响;所有组件的默认位置都是在左上角(顶部、左部对齐) 属性 功能描述 android:layout_toRightOf 在指定控件的右边 android:layout_toLeftOf 在指定控件的左边 android:layout_above 在指定控件的上边

2017-03-08 15:46:03 4095

原创 JNI与底层调用-2

在日常生活中,当手机丢失后,我们可以启动一系列的措施来获取丢失手机的位置信息,或者清楚丢失手机的数据来防止隐私数据泄露,本章就针对这些防盗保护措施进行讲解

2017-03-07 20:00:28 2749

原创 Android反编译

1. 安卓逆向助手有一款叫安卓逆向助手软件反编译apk 十分方便。这里给大家介绍的反编译方法就是基于这款软件的。安卓逆向助手下载地址Android逆向助手是一功能强大的逆向辅助软件。该软件可以帮助用户来进行apk反编译打包签名;dex/jar互转替换提取修复;so反编译;xml、txt加密;字符串编码等等,操作简单,只需要直接将文件拖放到源和目标文件。将下载好的rar 包解压缩以后目录结构如下(内置

2017-03-07 19:11:25 866

数据结构各种算法实现(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

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

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

2017-07-28

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

Java设计模式 版本2

Java设计模式,目录:前言,UML建模技术,深入浅出UML类图,从招式与内功谈起——设计模式概述,面向对象设计原则,工厂三兄弟之简单工厂模式,工厂三兄弟之工厂方法模式,工厂三兄弟之抽象工厂模式,确保对象的唯一性——单例模式,对象的克隆——原型模式,复杂对象的组装与创建——建造者模式,不兼容结构的协调——适配器模式,处理多维度变化——桥接模式,树形结构的处理——组合模式,扩展系统功能——装饰模式,深入浅出外观模式,实现对象的复用——享元模式,设计模式之代理模式,请求的链式处理——职责链模式,请求发送者与接收者解耦——命令模式,自定义语言的实现——解释器模式,遍历聚合对象中的元素——迭代器模式,协调多个对象之间的交互——中介者模式,撤销功能的实现——备忘录模式,对象间的联动——观察者模式,处理对象的多种状态及其相互转换——状态模式,算法的封装与切换——策略模式,模板方法模式深度解析,操作复杂对象结构——访问者模式,设计模式与足球,多人联机射击游戏中的设计模式应用,设计模式综合实例分析之数据库同步系统

2017-04-07

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:[email protected] 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面试宝典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

RxJava Essentials 中文翻译版

本书是对Ivan.Morgillo所写一书的中文翻译版本,仅供交流学习使用,严禁商业用途。另外推荐一本姊妹篇《Learning Reactive Programming》。 如果你是一名有经验的Java开发者,reactive编程将会在后端系统中给你一种新的学习扩展和并发的 方式,而这不需要更换开发语言。这本书将帮助你学习RxJava的核心方面,也能帮助你克服Android平台局限性从而创建一个基于事件驱动的,响应式的,流畅体验的Android应用。

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。读者可以根据需要,自由下载学习。, 致谢, 在本书的写作出版过程中,得到了很多人的帮助和陪伴。, 首先要感谢的是我的妻子和两个可爱的孩子。正是有了你们的陪伴,我的生活才更加有意义。我要感谢我的父母,虽然他们可能不知道我写的东西是什么,但是我在写书过程中,脑海里会经常浮现出他们的笑脸,正是由于他们的辛勤养育,我才能长成今天的我。, 我要衷心地感谢本书的策划编辑吴怡女士。在本书的写作修改过程中,她耐心细致地对稿件进行了详尽审阅和批注,还提出了很多宝贵的修改建议,并不断给予我鼓励,才使我快速完成了这本书。还感谢审稿编辑陈佳媛、曲熠对本书提出的宝贵意见,同时感谢本书出版过程中所有付出辛劳的华章公司工作人员。, 在此,我还要特别感谢我们公司的技术大牛雷卷(陈立兵),非常感谢他能够抽出宝贵时间审阅本书,并给出了内容的勘误,极大地提升了本书的质量,最后,还为本书写了序。真的非常感谢!, 我还要感谢在我的工作学习中认识的所有朋友和同事们,能够认识你们并跟你们一起学习、共事,是我的荣幸!, 请联系我, 虽然在本书写作与修改的过程中,我竭尽全力追求简单正确、清晰流畅地表达内容,但是限于自身水平和有限的时间,仍会有错误与疏漏之处,还望各位读者不吝指正。, 对本书的任何问题、意见或者建议,欢迎通过邮件[email protected]与我交流。, 快乐生活,快乐学习,快乐分享,快乐实践出真知。祝大家阅读愉快!, 陈光剑, 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

空空如也

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

TA关注的人

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