自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

字节卷动

You will never know how excellent you are unless you impel yourself once.

  • 博客(1173)
  • 资源 (58)
  • 问答 (1)
  • 收藏
  • 关注

原创 【Android面试八股文】说一说ListView卡顿的原因以及相对应的优化策略

数据绑定逻辑过多的话,首先是区分出与界面有关的逻辑计算和与界面无关的逻辑计算,与界面有关的逻辑计算只能通过优化算法逻辑、数据结构处理,与界面无关的逻辑计算不影响界面的显示可以开线程用于计算。简单的设置以及一些简单的计算是不会消耗很多的时间的,如果是包含大量的控件属性设置、数据遍历、转化的话时间就会成倍的增长,最终可能就会导致ListView的卡顿。必须以极短的时间完成数据绑定和图片加载刷新,但图片的加载是需要耗费较大的性能和时间的,频繁的图片加载会延缓Item的数据绑定过程,容易造成卡顿。

2024-06-25 23:19:40 602

原创 【Android面试八股文】ViewHolder为什么要被声明成静态内部类?

将ViewHolder声明为静态内部类可以有效避免内存泄漏,提高性能,并且使代码结构更加清晰。因此,这是一个良好的编程实践,特别是在 Android 开发中。

2024-06-25 22:43:38 317

原创 【Android面试八股文】你能说一说RecycleView与ListView的对比吗?着重说一下缓存策略,优缺点。

一、考察的知识点二、RecycleView与ListView的对比2.1 布局效果2.2 Item点击事件2.3 空数据处理2.4 头尾布局2.5 局部刷新2.6 动画效果2.7 缓存机制2.7.1 层级不同2.7.2 缓存内容不同2.7.3 缓存机制2.7.4 ListView与RecyclerView缓存级别的对比2.7.4.1 ListView(两级缓存)mActiveViews和mScrapViewsList获取缓存的流程:2.7.4.2 RecyclerView(四

2024-06-25 22:28:58 296

原创 【Android面试八股文】如何实现Activity窗口快速变暗

在Android中实现Activity窗口快速变暗有几种方法,其中一种简单且常用的方法是使用WindowManager.LayoutParams来动态调整窗口的亮度。通过改变窗口的透明度,你可以实现活动窗口快速变暗的效果。

2024-06-25 18:52:27 225

原创 【Android面试八股文】WebView与 JS 交互方式有哪几种?

Android去调用JS的代码JS去调用Android的代码二者沟通的桥梁是WebView本文主要对Android通过WebView与JS的交互方式进行了全面介绍。

2024-06-25 18:29:43 195

原创 【Android面试八股文】WebView如何做资源缓存的?

H5页面加载速度慢的原因:渲染速度慢 & 页面资源加载缓慢 导致。综上所述,产生性能问题主要原因是:上述问题导致了的H5页面体验 与 原生Native存在较大差距。缓存,即离线存储这意味着H5网页 加载后会存储在缓存区域,在无网络连接时也可访问WebView的本质 = 在Android中嵌入H5页面,所以,自带的缓存机制其实就是H5页面的缓存机制除了新的缓存机制还不支持,其他都支持。

2024-06-25 02:46:58 534

原创 【Android面试八股文】你知道动画插值器(Interpolator)吗?

是用于控制动画变化速率的一个接口或类。插值器通过使用不同类型的插值器,我们可以实现各种各样的动画效果,比如线性运动、加速运动、减速运动等。在Android中,插值器被用来定义动画在其持续时间内的变化速率,即给定动画当前所处的时间点,计算出动画的进度百分比。

2024-06-25 01:17:54 229

原创 【Android面试八股文】你说说属性动画的原理是怎么样的?

属性动画的原理很简单,可以用一句话描述:最开始先设定好动画的基本属性信息,然后属性的数值按照设定逻辑变化并刷新视图(变化的属性会带来视图效果的变化),接着会判断动画是否达到结束条件,如果没有达到则重复数值的变化和视图刷新直到结束。具体的细节我们可以看后面的分析。

2024-06-25 00:51:45 165

原创 【Android面试八股文】你能说一说Android动画的分类和区别吗?

视图动画(View Animation):简单易用,但只能做视觉效果的变化,不改变实际属性,适用于简单动画。属性动画(Property Animation):功能强大,能改变对象的实际属性,适用于复杂动画和交互。帧动画(Drawable Animation):通过显示图片序列实现动画,适用于需要逐帧动画效果的场景。根据具体需求选择合适的动画类型,可以更好地实现所需的动画效果。

2024-06-24 23:43:51 358

原创 【Android面试八股文】你能说一说为什么inflater创建view的效率比new View的效率要慢?

创建 View 的过程涉及到 XML 解析、属性设置、递归创建子视图以及资源加载等多个步骤,这些操作都增加了时间开销。而直接使用new View创建 View 对象则要简单得多,只需要实例化对象并设置基本属性。因此,在性能要求较高的场景中,如在循环中频繁创建 View 对象,可以考虑使用new View或者复用已有的 View 对象以提高性能。

2024-06-24 23:32:09 79

原创 【Android面试八股文】你来讲一讲 View.inflate() 和异步 inflater 的区别是什么?

使用的是来实现此模型,所以如果连续大量的调用创建布局,可能会造成缓冲区阻塞。enqueue函数:只是插入元素到mQueue队列中,若是元素过多那么是有排队机制的;runInner函数:运行于循环中,从mQueue队列取出元素,调用 inflate 方法返回主线程;就是用于异步加载layout的,可以用于懒加载中,或者是在用户想提升onCreate函数的执行效率的时候。但是,它有几个缺陷异步转换出来的View并没有被加到中,是调用了,因此如果需要加到中,就需要我们自己手动添加;不支持加载包含。

2024-06-24 23:11:15 442

原创 【Android面试八股文】ScrollView下嵌套一个RecycleView通常会出现什么问题?

中通常会遇到一些问题,主要是由于两者的滚动机制不同所导致的冲突。如果数据量较大,可以考虑使用分页加载或者虚拟化技术(如。的一个扩展,专门用于支持嵌套滚动,可以更好地处理。复用机制),以减少一次性加载大量数据对性能的影响。的外部,或者使用其他布局方式来展示数据。但仍需注意性能问题。的嵌套关系是确保应用流畅运行的关键。如果可能,重新设计布局结构,避免。在 Android 开发中,将。的内容不会超出屏幕,可以禁用。的滚动功能,这样它将不会与。通常情况下,应尽量避免将。

2024-06-23 23:55:51 195

原创 【Android面试八股文】你能说一说事件分发机制中的责任链模式吗?

责任链模式(Chain of Responsibility)是一种行为设计模式,它允许多个对象依次处理请求,直到其中一个对象处理该请求为止。每个对象都包含对下一个对象的引用,这样请求可以沿着链传递,直到有对象处理它或到达链的末端。这个模式主要目的是避免请求的发送者与接收者耦合在一起,使多个对象都有机会处理该请求,从而灵活应对各种处理需求。

2024-06-23 23:31:05 112

原创 【Android面试八股文】如果 onTouchEvent()方法返回false,onClick()方法还会执行么?

在 Android 中,拦截事件通常指阻止事件继续传递或者消费事件,以防止它继续触发其他后续事件(比如onClick()在方法中,如果返回false,表示当前 View 没有处理该事件,Android 系统会继续将事件传递给后续的 View 或者执行点击事件的回调。

2024-06-23 23:07:30 448

原创 【Android面试八股文】你能说一说View中onTouch、onTouchEvent和onClick的执行顺序吗?

是事件分发的入口,会首先尝试调用的onTouch()方法。onTouch():如果被设置并且其onTouch()方法返回true,则事件被消费,后续流程中止。:如果onTouch()返回false或者没有设置,事件传递到。onClick():在中,如果识别到有效的点击事件,会调用,进而触发onClick()方法。通过理解和分析方法的工作原理,可以更好地掌握 Android 触摸事件处理机制及各种回调方法的执行顺序。

2024-06-23 22:56:33 331

原创 【Android面试八股文】在 Android 的 View 分发机制中有哪些反向制约的方法?

方法:子 View 可以调用此方法通知父 View 不要拦截触摸事件,这是实现反向制约的主要机制。事件回调方法中干预父 View 的行为:子 View 可以在等方法中通过消费事件来阻止父 View 处理这些事件。通过这些机制,Android 提供了一种灵活的方式,让子 View 能够控制父 View 的事件处理逻辑,从而实现复杂的交互效果。

2024-06-23 22:45:08 201

原创 【Android面试八股文】你能说一说在平常开发过程中你是如何解决事件冲突问题的吗?

在 Android 中,每个视图都有一个ViewParent接口的实例mParent,代表其父视图。当子视图调用子视图的方法被调用,传入参数true。在ViewGroup中的方法中,它会先检查传入的参数是否与当前状态相同,如果不同则更新标志位。然后,它会检查是否存在父视图 (mParent!= null),如果存在,则递归调用父视图的方法,并传入相同的参数true。父视图的方法会进行类似的处理:更新标志位,并继续向上递归调用父视图的方法。

2024-06-23 22:37:27 300

原创 【Android面试八股文】你来讲一讲View滑动操作可以通过哪些方式来实现?

以上是Android中实现视图滑动的几种常见方式。选择哪种方式取决于具体需求,例如简单的滑动可以使用scrollTo()和scrollBy(),而更复杂的滑动效果可能需要借助Scroller或手势检测器。此外,ViewPager和也是常用的滑动组件,适用于多页面和列表滑动场景。

2024-06-23 16:49:35 181

原创 【Android面试八股文】你来说一说你来说一说requestlayout(), onLayout(),onDraw(), drawchild()区别与联系

通过以上步骤,我们从调用开始,一步一步地跟踪到onLayout()和onDraw()方法的调用过程。触发了一系列的测量、布局和绘制操作,确保视图树的正确更新和显示。:通知系统视图的布局需要更新,会触发measure()和layout()。onLayout():在布局阶段被调用,用于放置视图和子视图的位置和大小。onDraw():在绘制阶段被调用,用于实际的绘制操作。:用于在自定义 ViewGroup 中绘制子视图,提供了对子视图绘制的精细控制。

2024-06-23 15:43:54 283

原创 【Android面试八股文】你来讲一讲invalidate() 和 postInvalicate() 的区别

当涉及到 Android 中的 View 刷新时,和都是常用的方法。

2024-06-23 15:25:57 235

原创 【Android面试八股文】自定义View执行invalidate()方法为什么有时候不会回调onDraw()?

首先我们分析一下的执行流程,源码是如何从invalidate调用到onDraw()的。由于这部分代码相对较为复杂,那么请大家参考下面的时序图。

2024-06-23 00:21:17 663

原创 【Android面试八股文】来说一说DecorView, ViewRootImpl,View之间的关系吧

在 Android 系统中,DecorView和ViewDecorView定义DecorView是每个 Activity 窗口的顶层视图,是整个窗口的根布局。作用它包含了整个窗口的界面,包括状态栏、标题栏(如果存在)和应用程序内容区域。DecorView是一个特殊的,可以容纳其他视图或布局。位置当一个 Activity 创建时,系统会为其创建一个DecorView并将其设置为窗口内容。DecorView是显示在屏幕上的整个视图层次的根节点。定义是连接DecorView。

2024-06-22 23:44:36 414

原创 【Android面试八股文】在onResume中是否可以测量宽高?

总的来说,这些方法之所以能够保证正确测量,是因为它们都是在视图树完成测量和布局之后才被调用的。在 Android 的消息处理机制中,这些方法能够确保在合适的时机获取到已经准确测量和布局完成的视图尺寸。在onResume方法中直接测量视图的宽高可能是不准确的,因为此时视图的布局过程可能尚未完成。为了确保获得准确的宽高,应当使用方法、或等机制来在视图布局完成后再进行测量。这样可以确保视图已完成布局,并且可以获得准确的宽高值。

2024-06-22 23:04:42 645

原创 【Android面试八股文】来说一说Activity,Window,View三者的联系和区别吧

通过上述整理,我们可以清晰地看到Activity、Window和View在AndroidActivity: 管理顶级界面和用户交互。Window: 作为View的管理容器,负责具体的View显示和交互管理。View: 具体的UI组件,由Window进行承载和管理。这种设计符合面向对象编程的单一职责原则,使得代码结构清晰、职责明确。

2024-06-22 22:36:44 493

原创 【Android面试八股文】你能说说View的绘制流程是从Activity的哪个生命周期方法开始执行的?

在onResume()生命周期方法结束后,开始执行View的绘制流程。onResume()方法的执行是绘制流程的起点,因为在onResume()方法执行之后,系统会调用去添加视图,并在进入消息循环后通过触发视图的绘制流程。

2024-06-22 18:36:52 318

原创 【Android面试八股文】你能说一说自定义View与ViewGroup的区别

在 Android 开发中,自定义View和ViewGroup。

2024-06-21 22:37:24 290

原创 【Android面试八股文】你能说一说View绘制流程与自定义View注意点吗?

在Android中,自定义View通常需要提供多个构造函数,以适应不同的使用场景。这是最简单的构造函数,直接在代码中创建View实例时使用。context:上下文对象,一般是Activity或Application的实例。在XML布局文件中使用该View时会调用此构造函数。context:上下文对象。attrs:从XML中获取的属性集合。用于指定默认样式属性,对应当前主题中的默认样式。context:上下文对象。attrs:从XML中获取的属性集合。:应用的默认样式属性。

2024-06-21 21:21:58 255

原创 【Android面试八股文】你来说一说View的绘制原理吧!

对于Android开发,在面试的时候,经常会被问到,说一说View的绘制流程?我也经常问面试者,View的绘制流程.对于3年以上的开发人员来说,就知道基本,知道他们是干些什么的,这样就够了吗?如果你来我们公司,我是你的面试官,可能我会考察你这三年都干了什么,对于View你都知道些什么,会问一些更细节的问题,比如的过程?他们都是什么时候被发起的,执行顺序是什么?如果以上问题你都知道,可能你进来我们公司就差不多了,可能我会考察你draw的canvas是哪里来的,他是怎么被创建显示到屏幕上呢?

2024-06-21 17:10:39 288

原创 【Android面试八股文】你们app开发的时候有日志加解密吗?是怎么实现日志加解密的?

Mars 是微信官方的跨平台跨业务的终端基础组件。comm:可以独立使用的公共库,包括 socket、线程、消息队列、协程等;xlog:高可靠性高性能的运行期日志组件;SDT: 网络诊断组件;STN: 信令分发网络模块,也是 Mars 最主要的部分。腾讯的Mars库中的Xlog模块是一款高效的跨平台日志组件,广泛用于移动应用和后台服务的日志记录。Xlog不仅具备高性能的日志写入能力,还支持日志的加密和压缩,保证日志数据的安全性和存储效率。以下是Xlog的详细介绍,包括其用于日志加解密的功能。

2024-06-20 23:58:46 297

原创 【Android面试八股文】你刚刚提到了V2签名使用美团的Walle实现多渠道打包,那么你能讲一讲Android 签名的 v1、v2、v3、v4版本的区别吗?

在我的博客【Android面试八股文】你在多渠道打包方面提到了使用美团的Walle框架,那你能说一说Walle的原理吗?中,有提到美团Android自动化之旅—生成渠道包美团Android新一代渠道包生成工具现在就要来讲一讲Android 签名的 v1、v2、v3、v4版本的区别了!应用签署基于 JAR 签名。APK 签名方案 v2(在 Android 7.0 中引入)APK 签名方案 v3(在 Android 9 中引入)APK 签名方案 v4(在 Android 11 中引入)

2024-06-20 22:13:55 769

原创 【Android面试八股文】你能讲一讲Kotlin语言泛型的形变是什么?

协变(covariance)允许将子类型作为泛型类型参数传递,例如将赋值给。这种特性使得代码更灵活,但同时也引入了潜在的类型安全性问题。在 Kotlin 中,逆变通过in关键字实现,它的核心概念与 Java 中的相似,但语法和用法有所不同。逆变允许我们安全地处理泛型类型的子类型,从而增强了代码的可重用性和安全性。协变 (out:当泛型类型作为生产者(即只返回类型T)时,可以使用协变。逆变 (in:当泛型类型作为消费者(即只接受类型T)时,可以使用逆变。不变。

2024-06-19 21:30:42 301

原创 【Android面试八股文】你能对比一下apply、also、run、with、let这几个作用域函数吗?

这些 Kotlin 的作用域函数各有其特点和用途,选择使用哪一个取决于你的需求和代码的上下文。它们可以显著提高代码的可读性和简洁性,特别是在处理对象操作和执行非空检查时。以下是扩展后的 Markdown 表格,包括了定义inline 的结构作用函数名函数块内使用对象返回值是否扩展函数适用场景定义inline 的结构作用applythis接收者对象本身是对象初始化或配置,设置属性等操作对象初始化和属性设置,返回对象本身alsoit接收者对象本身是。

2024-06-19 16:25:23 174

原创 【Android面试八股文】Kotlin内置标准函数with的原理是什么?

使用with函数的主要优势在于它可以减少重复的对象名字引用,提高代码的可读性和清晰度。通过将对象作为block函数的接收者,在block内部可以直接访问对象的成员,从而简化了对同一个对象的多次操作。相比之下,不使用with可能导致代码重复引用对象名字,使得代码显得更加冗长和分散。

2024-06-19 15:23:00 1154

原创 【Android面试八股文】Kotlin内置标准函数also的原理是什么?

also是 Kotlin 标准库中的一个内置函数,其原理和应用场景可以通过源码和示例来解释。

2024-06-19 14:56:30 288

原创 【Android面试八股文】Kotlin内置标准函数apply的原理是什么?

apply是 Kotlin 标准库中的一个高阶函数,它的作用是在对象上执行一个代码块,并返回这个对象本身。其原理涉及到函数类型和接收者对象的结合使用。

2024-06-19 14:40:01 415

原创 【Android面试八股文】Kotlin内置标准函数run的原理是什么?

这些示例展示了run函数在不同场景下的应用,包括对象属性配置、数据初始化与转换、作用域内的扩展函数调用以及安全调用链的使用。通过run函数,可以简化代码结构,提高代码的可读性和表达能力,特别是在需要在对象上执行一系列操作并返回结果时非常实用。

2024-06-19 14:12:24 329

原创 【Android面试八股文】Kotlin内置标准函数let的原理是什么?

函数是 Kotlin 标准库中的扩展函数,它接收一个 lambda 表达式作为参数,并在 lambda 表达式中对调用者对象进行操作。函数在 Kotlin 中被广泛使用,特别是在处理可空类型或者需要在对象上执行一系列操作后返回结果的场景中非常有用。函数时,通常是为了简化代码、提高可读性,并且在处理对象时更加安全和优雅。函数能够帮助我们编写更加安全、简洁和可读的 Kotlin 代码。是 lambda 表达式的返回类型。是一个函数参数,它接收一个类型为。的参数,并返回一个类型为。是调用者对象的类型,

2024-06-19 01:04:01 613

原创 【Android面试八股文】如何保证下载文件的完整性

通过在服务端响应中包含文件校验码,并在客户端进行校验,可以有效保证下载文件的完整性。在现代软件开发中,用户的安全和数据完整性是首要考虑的因素之一,实施正确的文件校验机制是保障用户体验和应用安全的重要步骤。在现代移动应用程序的更新和升级过程中,确保下载文件的完整性至关重要。本文将探讨如何通过文件校验码来有效保证下载文件的完整性,特别是以Android应用程序为例。为了确保下载文件的完整性,服务端在响应中提供了文件校验码,常用的包括。为例,它是一种广泛使用的哈希算法,可以生成文件内容的唯一标识。

2024-06-19 00:26:26 316

原创 【Android面试八股文】你来说一说HTTP断点续传原理

允许客户端在下载文件时从上次中断的地方继续下载,而不是重新开始整个文件的下载。这种机制对于大文件的下载尤为重要,因为可以节省带宽和时间。

2024-06-19 00:16:28 197

原创 【Android面试八股文】你说一说,输入一串URL到浏览器都经历过什么?

DNS解析一般指域名解析。互联网中的地址是数字的IP地址,域名的作用主要就是为了便于记忆。域名解析就是域名到IP地址的转换过程,让人们通过注册的域名可以方便地访问到网站的一种服务。你说得对,我应该更清晰地区分HTTP和HTTPS请求过程中的不同步骤。假设输入的URL域名,那肯定会涉及到DNS解析;而如果URL本身就是IP,那就不需要进行DNS解析。HTTPS请求过程相比HTTP请求,主要区别在于建立安全连接的。不加密的HTTP请求。

2024-06-18 23:57:56 109

Android基于HTTP协议的多线程断点下载器的实现源码

我的Android进阶之旅------>Android基于HTTP协议的多线程断点下载器的实现的源代码,原文地址:http://blog.csdn.net/ouyang_peng/article/details/10125409

2013-08-20

Android基于HTTP协议的多线程断点下载器的实现源码_优化之后

我的Android进阶之旅------>Android基于HTTP协议的多线程断点下载器的实现的源代码,原文地址:http://blog.csdn.net/ouyang_peng/article/details/10125409 这个进行了优化

2013-08-23

Android之AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字)

可以参考下面博客:我的Android进阶之旅------>Android之AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字) (博客地址:http://blog.csdn.net/ouyang_peng/article/details/8826806)

2013-10-28

Android基于HTTP协议的多线程断点下载器的实现源码_第二次优化之后

我的Android进阶之旅------>Android基于HTTP协议的多线程断点下载器的实现的源代码,原文地址:http://blog.csdn.net/ouyang_peng/article/details/10125409 这个进行了第二次优化

2013-10-13

Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器

具体说明可以参考博客:我的Android进阶之旅------>Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器 博客地址:http://blog.csdn.net/ouyang_peng/article/details/8831434

2013-10-28

我的Android进阶之旅------>Android疯狂连连看游戏的实现

我的Android进阶之旅------>Android疯狂连连看游戏的实现 可以参考博客:http://blog.csdn.net/ouyang_peng/article/details/14115627

2013-11-04

我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计

我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计 地址:http://blog.csdn.net/ouyang_peng/article/details/48790289

2015-09-29

Android实现用Android手机控制PC端的关机和重启的功能

我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(一)PC服务器端 (地址:http://blog.csdn.net/ouyang_peng/article/details/47004617) 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(二)Android客户端功能展示 (地址:http://blog.csdn.net/ouyang_peng/article/details/47005739) 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(三)Android客户端功能实现 (地址:http://blog.csdn.net/ouyang_peng/article/details/47007509)

2015-07-22

百度定位功能的开发包和实例以及API文档

百度定位功能 百度开发包 百度定位实例 百度API文档 教你如何使用百度定位SDK来进行定位功能的实现

2015-09-23

Android动画电子温度计.zip

Android 动画电子温度计 温度传感器 动态得展示了从手机温度传感器得到的温度值,具体效果可以查看博客:http://blog.csdn.net/ouyang_peng/article/details/48790289

2015-09-28

GitCam一款Gif动画制作软件

GifCam是一款小巧、免费的录制电脑屏幕并制作成GIF动画的软件,具有精确录制、可剪辑等特色,用来录制GIF动画教程是很不错的

2013-09-30

Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能

具体参考博客: 我的Android进阶之旅------>Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能 http://blog.csdn.net/ouyang_peng/article/details/50813419 1、实现歌词同步滚动的功能,即歌曲播放到哪句歌词,就高亮地显示出正在播放的这个歌词; 2、实现上下拖动歌词时候,可以拖动播放器的进度。即可以不停地上下拖动歌词,当手指离开屏幕时候 即从当前拖动到的歌词位置播放。 3、实现歌词的字体大小可以进行缩放的功能。即双指在屏幕进行缩放操作时,歌词的字体大小也进行相应的缩放操作。

2016-03-06

免费下载:TCP-IP协议族(第4版) .(Behrouz A.Forouzan )

TCP-IP 协议族 第4版 pdf TCP-IP协议族(第4版) .(Behrouz A.Forouzan ) 免费下载

2016-03-01

图解HTTP[日 上野 宣 著].rar

图解HTTP前半部分由HTTP的成长发展史娓娓道来,基于HTTP 1.1 标准讲解通信过程,包括HTTP方法、协议格式、报文结构、首部字段、状态码等的具体含义,还分别讲解HTTP通信过程中代理、网关、隧道等的作用。接着介绍SPDY、WebSocket、WebDAV等HTTP的扩展功能。作者还从细节方面举例,让读者更好地理解何为无状态(stateless)、301和302重定向的区别在哪、缓存机制,等等。本书后半部分的重心放在Web安全上,涵盖HTTPS、SSL、证书认证、加密机制、Web攻击手段等内容。 图解HTTP 目录: 第1章 了解Web及网络基础 001 1.1 使用HTTP协议访问Web 002 1.2 HTTP的诞生 003 1.2.1 为知识共享而规划Web 003 1.2.2 Web成长时代 004 1.2.3 驻足不前的HTTP 005 1.3 网络基础TCP/IP 006 1.3.1 TCP/IP协议族 006 1.3.2 TCP/IP的分层管理 007 1.3.3 TCP/IP通信传输流 009 1.4 与HTTP关系密切的协议:IP、TCP和DNS 010 1.4.1 负责传输的IP协议 011 1.4.2 确保可靠性的TCP协议 012 1.5 负责域名解析的DNS服务 013 1.6 各种协议与HTTP协议的关系 014 1.7 URI和URL 016 1.7.1 统一资源标识符 016 1.7.2 URI格式 017 第2章 简单的HTTP协议 021 2.1 HTTP协议用于客户端和服务器端之间的通信 022 2.2 通过请求和响应的交换达成通信 022 2.3 HTTP是不保存状态的协议 025 2.4 请求URI定位资源 026 2.5 告知服务器意图的HTTP方法 027 2.6 使用方法下达命令 033 2.7 持久连接节省通信量 034 2.7.1 持久连接 036 2.7.2 管线化 037 2.8 使用Cookie的状态管理 037 第3章 HTTP报文内的HTTP信息 041 3.1 HTTP报文 042 3.2 请求报文及响应报文的结构 042 3.3 编码提升传输速率 044 3.3.1 报文主体和实体主体的差异 044 3.3.2 压缩传输的内容编码 044 3.3.3 分割发送的分块传输编码 045 3.4 发送多种数据的多部分对象集合 046 3.5 获取部分内容的范围请求 048 3.6 内容协商返回最合适的内容 050 第4章 返回结果的HTTP状态码 053 4.1 状态码告知从服务器端返回的请求结果 054 4.2 2XX成功 055 4.2.1 200OK 055 4.2.2 204NoContent 056 4.2.3 206PartialContent 056 4.3 3XX重定向 056 4.3.1 301MovedPermanently 057 4.3.2 302Found 057 4.3.3 303SeeOther 058 4.3.4 304NotModified 059 4.3.5 307TemporaryRedirect 059 4.4 4XX客户端错误 060 4.4.1 400BadRequest 060 4.4.2 401Unauthorized 060 4.4.3 403Forbidden 061 4.4.4 404NotFound 061 4.5 5XX服务器错误 062 4.5.1 500InternalServerError 062 4.5.2 503ServiceUnavailable 062 第5章 与HTTP协作的Web服务器 065 5.1 用单台虚拟主机实现多个域名 066 5.2 通信数据转发程序:代理、网关、隧道 067 5.2.1 代理 068 5.2.2 网关 070 5.2.3 隧道 070 5.3 保存资源的缓存 071 5.3.1 缓存的有效期限 072 5.3.2 客户端的缓存 072 第6章 HTTP首部 075 6.1 HTTP报文首部 076 6.2 HTTP首部字段 078 6.2.1 HTTP首部字段传递重要信息 078 6.2.2 HTTP首部字段结构 078 6.2.3 4种HTTP首部字段类型 079 6.2.4 HTTP/1.1首部字段一览 080 6.2.5 非HTTP/1.1首部字段 082 6.2.6 End—to—end首部和Hop—by—hop首部 083 6.3 HTTP/1.1通用首部字段 083 6.3.1 Cache—Control 084 6.3.2 Connection 091 6.3.3 Date 093 6.3.4 Pragma 094 6.3.5 Trailer 095 6.3.6 Transfer—Encoding 096 6.3.7 Upgrade 097 6.3.8 Via 098 6.3.9 Warning 099 6.4 请求首部字段 100 6.4.1 Accept 101 6.4.2 Accept—Charset 102 6.4.3 Accept—Encoding 103 6.4.4 Accept—Language 104 6.4.5 Authorization 105 6.4.6 Expect 106 6.4.7 From 107 6.4.8 Host 107 6.4.9 If—Match 108 6.4.10 If—Modified—Since 110 6.4.11 If—None—Match 111 6.4.12 If—Range 112 6.4.13 If—Unmodified—Since 113 6.4.14 Max—Forwards 114 6.4.15 Proxy—Authorization 115 6.4.16 Range 116 6.4.17 Referer 116 6.4.18 TE 117 6.4.19 User—Agent 118 6.5 响应首部字段119 6.5.1 Accept—Ranges 119 6.5.2 Age 120 6.5.3 ETag 120 6.5.4 Location 122 6.5.5 Proxy—Authenticate 123 6.5.6 Retry—After 123 6.5.7 Server 124 6.5.8 Vary 125 6.5.9 WWW—Authenticate 125 6.6 实体首部字段126 6.6.1 Allow 126 6.6.2 Content—Encoding 127 6.6.3 Content—Language 128 6.6.4 Content—Length 128 6.6.5 Content—Location 129 6.6.6 Content—MD5 129 6.6.7 Content—Range 130 6.6.8 Content—Type 131 6.6.9 Expires 131 6.6.10 Last—Modified 132 6.7 为Cookie服务的首部字段 132 6.7.1 Set—Cookie 134 6.7.2 Cookie 136 6.8 其他首部字段137 6.8.1 X—Frame—Options 137 6.8.2 X—XSS—Protection 138 6.8.3 DNT 138 6.8.4 P3P 139 第7章 确保Web安全的HTTPS 141 7.1 HTTP的缺点 142 7.1.1 通信使用明文可能会被窃听 142 7.1.2 不验证通信方的身份就可能遭遇伪装 146 7.1.3 无法证明报文完整性,可能已遭篡改 148 7.2 HTTP+加密+认证+完整性保护=HTTPS 150 7.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS 150 7.2.2 HTTPS是身披SSL外壳的HTTP 151 7.2.3 相互交换密钥的公开密钥加密技术 152 7.2.4 证明公开密钥正确性的证书 155 7.2.5 HTTPS的安全通信机制 161 第8章 确认访问用户身份的认证 167 8.1 何为认证 168 8.2 BASIC认证 169 8.3 DIGEST认证171 8.4 SSL客户端认证173 8.4.1 SSL客户端认证的认证步骤 174 8.4.2 SSL客户端认证采用双因素认证 175 8.4.3 SSL客户端认证必要的费用 175 8.5 基于表单认证 175 8.5.1 认证多半为基于表单认证 176 8.5.2 Session管理及Cookie应用 177 第9章 基于HTTP的功能追加协议 179 9.1 基于HTTP的协议180 9.2 消除HTTP瓶颈的SPDY 180 9.2.1 HTTP的瓶颈 180 9.2.2 SPDY的设计与功能 184 9.2.3 SPDY消除Web瓶颈了吗 185 9.3 使用浏览器进行全双工通信的WebSocket 186 9.3.1 WebSocket的设计与功能 186 9.3.2 WebSocket协议 186 9.4 期盼已久的HTTP/2.0 189 9.5 Web服务器管理文件的WebDAV 190 9.5.1 扩展HTTP/1.1的WebDAV 191 9.5.2 WebDAV内新增的方法及状态码 192 第10章 构建Web内容的技术 195 10.1 HTML 196 10.1.1 Web页面几乎全由HTML构建 196 10.1.2 HTML的版本 197 10.1.3 设计应用CSS 198 10.2 动态HTML 198 10.2.1 让Web页面动起来的动态HTML 198 10.2.2 更易控制HTML的DOM 198 10.3 Web应用 200 10.3.1 通过Web提供功能的Web应用 200 10.3.2 与Web服务器及程序协作的CGI 200 10.3.3 因Java而普及的Servlet 201 10.4 数据发布的格式及语言 203 10.4.1 可扩展标记语言 203 10.4.2 发布更新信息的RSS/Atom 204 10.4.3 JavaScript衍生的轻量级易用JSON 206 第11章 Web的攻击技术 207 11.1 针对Web的攻击技术 208 11.1.1 HTTP不具备必要的安全功能 208 11.1.2 在客户端即可篡改请求 209 11.1.3 针对Web应用的攻击模式 210 11.2 因输出值转义不完全引发的安全漏洞 212 11.2.1 跨站脚本攻击 213 11.2.2 SQL注入攻击 218 11.2.3 OS命令注入攻击 223 11.2.4 HTTP首部注入攻击 225 11.2.5 邮件首部注入攻击 228 11.2.6 目录遍历攻击 229 11.2.7 远程文件包含漏洞 230 11.3 因设置或设计上的缺陷引发的安全漏洞 232 11.3.1 强制浏览 232 11.3.2 不正确的错误消息处理 234 11.3.3 开放重定向 237 11.4 因会话管理疏忽引发的安全漏洞 237 11.4.1 会话劫持 238 11.4.2 会话固定攻击 239 11.4.3 跨站点请求伪造 241 11.5 其他安全漏洞 242 11.5.1 密码破解 242 11.5.2 点击劫持 247 11.5.3 DoS攻击 249 11.5.4 后门程序 250

2015-08-15

Ftp服务器程序.rar

配合《Java语言实现简单FTP软件源代码》所写的FTP客户端的FTP服务器程序,博客地址 :http://blog.csdn.net/ouyang_peng/article/details/9971169

2016-01-03

图解HTTP[日 上野 宣 著] PDF.rar

《图灵程序设计丛书:图解HTTP》对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。《图解HTTP》的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过《图灵程序设计丛书:图解HTTP》快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。   《图灵程序设计丛书:图解HTTP》适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。 上野·宣 ,OWASP 日本分会会长,TRICORDER株式会社董事长。   主要从事安全咨询、风险评估、信息安全教育等工作。著有《今晚我们一起学习邮件协议》(今夜わかるメールプロトコル)、《今晚我们一起学习TCP/IP》(今夜わかるTCP/IP)、《今晚我们一起学习HTTP》(今夜わかるHTTP)。担任The Tangled Web:A Guide to Securing Modern Web Application日文版的审校工作。      于均良(译者),上海交通大学硕士,高级软件工程师,马拉松跑者,四点网创始人。 第1章 了解Web及网络基础 1.1 使用HTTP协议访问Web 1.2 HTTP的诞生 1.2.1 为知识共享而规划Web 1.2.2 Web成长时代 1.2.3 驻足不前的HTTP 1.3 网络基础TCP/IP 1.3.1 TCP/IP协议族 1.3.2 TCP/IP的分层管理 1.3.3 TCP/IP通信传输流 1.4 与HTTP关系密切的协议:IP、TCP和DNS 1.4.1 负责传输的IP协议 1.4.2 确保可靠性的TCP协议 1.5 负责域名解析的DNS服务 1.6 各种协议与HTTP协议的关系 1.7 URI和URL 1.7.1 统一资源标识符 1.7.2 URI格式 第2章 简单的HTTP协议 2.1 HTTP协议用于客户端和服务器端之间的通信 2.2 通过请求和响应的交换达成通信 2.3 HTTP是不保存状态的协议 2.4 请求URI定位资源 2.5 告知服务器意图的HTTP方法 2.6 使用方法下达命令 2.7 持久连接节省通信量 2.7.1 持久连接 2.7.2 管线化 2.8 使用Cookie的状态管理 第3章 HTTP报文内的HTTP信息 3.1 HTTP报文 3.2 请求报文及响应报文的结构 3.3 编码提升传输速率 3.3.1 报文主体和实体主体的差异 3.3.2 压缩传输的内容编码 3.3.3 分割发送的分块传输编码 3.4 发送多种数据的多部分对象集合 3.5 获取部分内容的范围请求 3.6 内容协商返回最合适的内容 第4章 返回结果的HTTP状态码 4.1 状态码告知从服务器端返回的请求结果 4.2 2XX成功 4.2.1 200 OK 4.2.2 204 No Content 4.2.3 206 Partial Content 4.3 3XX重定向 4.3.1 301 Moved Permanently 4.3.2 302 Found 4.3.3 303 See Other 4.3.4 304 Not Modified 4.3.5 307 Temporary Redirect 4.4 4XX客户端错误 4.4.1 400 Bad Request 4.4.2 401 Unauthorized 4.4.3 403 Forbidden 4.4.4 404 Not Found 4.5 5XX服务器错误 4.5.1 500 Internal Server Error 4.5.2 503 Service Unavailable 第5章 与HTTP协作的Web服务器 5.1 用单台虚拟主机实现多个域名 5.2 通信数据转发程序:代理、网关、隧道 5.2.1 代理 5.2.2 网关 5.2.3 隧道 5.3 保存资源的缓存 5.3.1 缓存的有效期限 5.3.2 客户端的缓存 第6章 HTTP首部 6.1 HTTP报文首部 6.2 HTTP首部字段 6.2.1 HTTP首部字段传递重要信息 6.2.2 HTTP首部字段结构 6.2.3 4种HTTP首部字段类型 6.2.4 HTTP/1.1首部字段一览 6.2.5 非HTTP/1.1首部字段 6.2.6 End-to-end首部和Hop-by-hop首部 6.3 HTTP/1.1通用首部字段 6.3.1 Cache-Control 6.3.2 Connection 6.3.3 Date 6.3.4 Pragma 6.3.5 Trailer 6.3.6 Transfer-Encoding 6.3.7 Upgrade 6.3.8 Via 6.3.9 Warning 6.4 请求首部字段 6.4.1 Accept 6.4.2 Accept-Charset 6.4.3 Accept-Encoding 6.4.4 Accept-Language 6.4.5 Authorization 6.4.6 Expect 6.4.7 From 6.4.8 Host 6.4.9 If-Match 6.4.10 If-Modified-Since 6.4.11 If-None-Match 6.4.12 If-Range 6.4.13 If-Unmodified-Since 6.4.14 Max-Forwards 6.4.15 Proxy-Authorization 6.4.16 Range 6.4.17 Referer 6.4.18 TE 6.4.19 User-Agent 6.5 响应首部字段 6.5.1 Accept-Ranges 6.5.2 Age 6.5.3 ETag 6.5.4 Location 6.5.5 Proxy-Authenticate 6.5.6 Retry-After 6.5.7 Server 6.5.8 Vary 6.5.9 WWW-Authenticate 6.6 实体首部字段 6.6.1 Allow 6.6.2 Content-Encoding 6.6.3 Content-Language 6.6.4 Content-Length 6.6.5 Content-Location 6.6.6 Content-MD 6.6.7 Content-Range 6.6.8 Content-Type 6.6.9 Expires 6.6.10 Last-Modified 6.7 为Cookie服务的首部字段 6.7.1 Set-Cookie 6.7.2 Cookie 6.8 其他首部字段 6.8.1 X-Frame-Options 6.8.2 X-XSS-Protection 6.8.3 DNT 6.8.4 P3P 第7章 确保Web安全的HTTPS 7.1 HTTP的缺点 7.1.1 通信使用明文可能会被窃听 7.1.2 不验证通信方的身份就可能遭遇伪装 7.1.3 无法证明报文完整性,可能已遭篡改 7.2 HTTP+加密+认证+完整性保护=HTTPS 7.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS 7.2.2 HTTPS是身披SSL外壳的HTTP 7.2.3 相互交换密钥的公开密钥加密技术 7.2.4 证明公开密钥正确性的证书 7.2.5 HTTPS的安全通信机制 第8章 确认访问用户身份的认证 8.1 何为认证 8.2 BASIC认证 8.3 DIGEST认证 8.4 SSL客户端认证 8.4.1 SSL客户端认证的认证步骤 8.4.2 SSL客户端认证采用双因素认证 8.4.3 SSL客户端认证必要的费用 8.5 基于表单认证 8.5.1 认证多半为基于表单认证 8.5.2 Session管理及Cookie应用 第9章 基于HTTP的功能追加协议 9.1 基于HTTP的协议 9.2 消除HTTP瓶颈的SPDY 9.2.1 HTTP的瓶颈 9.2.2 SPDY的设计与功能 9.2.3 SPDY消除Web瓶颈了吗 9.3 使用浏览器进行全双工通信的WebSocket 9.3.1 WebSocket的设计与功能 9.3.2 WebSocket协议 9.4 期盼已久的HTTP/2. 9.5 Web服务器管理文件的WebDAV 9.5.1 扩展HTTP/1.1的WebDAV 9.5.2 WebDAV内新增的方法及状态码 第10章 构建Web内容的技术 10.1 HTML 10.1.1 Web页面几乎全由HTML构建 10.1.2 HTML的版本 10.1.3 设计应用CSS 10.2 动态HTML 10.2.1 让Web页面动起来的动态HTML 10.2.2 更易控制HTML的DOM 10.3 Web应用 10.3.1 通过Web提供功能的Web应用 10.3.2 与Web服务器及程序协作的CGI 10.3.3 因Java而普及的Servlet 10.4 数据发布的格式及语言 10.4.1 可扩展标记语言 10.4.2 发布更新信息的RSS/Atom 10.4.3 JavaScript衍生的轻量级易用JSON 第11章 Web的攻击技术 11.1 针对Web的攻击技术 11.1.1 HTTP不具备必要的安全功能 11.1.2 在客户端即可篡改请求 11.1.3 针对Web应用的攻击模式 11.2 因输出值转义不完全引发的安全漏洞 11.2.1 跨站脚本攻击 11.2.2 SQL注入攻击 11.2.3 OS命令注入攻击 11.2.4 HTTP首部注入攻击 11.2.5 邮件首部注入攻击 11.2.6 目录遍历攻击 11.2.7 远程文件包含漏洞 11.3 因设置或设计上的缺陷引发的安全漏洞 11.3.1 强制浏览 11.3.2 不正确的错误消息处理 11.3.3 开放重定向 11.4 因会话管理疏忽引发的安全漏洞 11.4.1 会话劫持 11.4.2 会话固定攻击 11.4.3 跨站点请求伪造 11.5 其他安全漏洞 11.5.1 密码破解 11.5.2 点击劫持 11.5.3 DoS攻击 11.5.4 后门程序

2015-08-15

数据结构(严蔚敏).pdf+算法实现.rar

数据结构(严蔚敏).pdf+算法实现.rar

2015-08-01

gif绿色录制工具超级简单.exe

gif绿色录制工具超级简单.exe 可以快速的截屏并录制为gif格式,能很好的演示Android的应用功能

2015-08-06

计算机网络第五版]谢希仁版、PDF书加答案

计算机网络第五版]谢希仁版,PDF的计算机网络第五版以及课后习题的答案,word文档

2015-07-28

《疯狂Android讲义第二版》全部源码

疯狂Android讲义 第二版 全部源码 免费下载

2015-10-28

RxJava 完全解析.pdf

RxJava 完全解析

2016-04-30

阿里巴巴 JAVA 开发手册

阿里巴巴集团首次向Java业界公布 JAVA 开发手册 一、编程规约 二、异常日志 三、MYSQL规约 四、工程规约 五、安全规约

2017-01-11

阿里巴巴Java开发手册 v1.2.0

今年年初,《阿里巴巴Java开发手册》正式发布,阿里官方Java代码规范标准首次对外公开。手册发布之后在业界、学术界都获得了广泛的关注,仅微博浏览量就突破千万,下载访问量超过40万,多家媒体主动转发,并将其称为“Java工程师必备宝典”。 业界开发者对手册也做出了高度的评价: “这是多年在一线奋斗的阿里同行们宝贵经验和线上事故的总结升华,在规模化生产实践、质量控制中必不可少的方法和手段。现在阿里工程师们把这些规范分享出来,能够帮助更多的同行们少走弯路,避免掉在不必要的坑里,能够大大提高研发质量、研发效率。” ——资深架构师李艳鹏 “阿里巴巴出品的JAVA开发手册比Google开源的Style Guide更全面,涵盖面更广。开发手册也在不断的动态迭代当中,保证了技术和实践时刻处于最前沿。” ——高级咨询师博文 “阿里Java编程规约不是约束,而是一种难得的效率规范。有了它,团队协作,代码交接和传递更加容易和便捷。总之,以后看别人的代码再也不用苦恼和头疼了。” ——非著名程序员涩郎 “比起很多花哨的所谓技术和框架,这东西才是体现‘码农’ 和 ‘工程师’ 本质区别的地方。” ——知乎用户胖胖 同时,也有热心用户对排版布局、部分示例错误、前后矛盾等问题提出了宝贵的建议。在收集外部建议和阿里内部经验更新的基础上,阿里巴巴规约项目组正式推出《阿里巴巴Java开发手册》1.2.0升级版,堪称史上最完善版本。 升级亮点 一、排版布局 1)页码中的封面、前言、目录并不计入总页码,调整前言到目录之前。 2)一级标题统一换页;二级标题统一不换页,并在之前空一行。 3)增加附1(版本历史)和附2(专有名词说明)并各自单独成为一页。 二、示例修正 1)关于太阳年龄的示例错误。太阳年龄46亿,超过42亿的表示范围。 2)个别示例的代码不符合格式规约,尤其是String args[]的表示方式错误。 三、修正规则 1)修正countdown 描述错误。 2)修正final关于效率优化的错误描述。 3)修正异常捕捉的描述错误。 四、内容增加 1)增加“指定集合大小”的进一步说明。 2)增加卫语句的示例代码。 3)明确数据库表示删除概念的字段名为 is_deleted 下载方式 识别上方二维码,关注“阿里技术”公众号,在阿里技术公众号回复“手册”两字,即可免费在线阅读&免费下载。 此手册从构思到现在的最新版本,历时两年,历经无数次内部针锋相对的讨论,迭代高达118次。该规约以Java开发者为中心视角,虽然只有短短的 2.2w字,却全面覆盖编程规约、异常日志规约、MySQL规约、工程规约、安全规约五大板块。 每一条规范几乎都经过千锤百炼实践的考验。从最初的周更新频率,降至现在的月度更新,后续的更新频度会以年为单位。在业界同仁的支持和努力下,规约已经越来越稳定,越来越完善。 手册愿景:码出高效、码出质量 阿里技术生态丰富,框架结构成熟,经历了超高并发的多年“双十一”实战考验,积累了丰富的Java实战经验。《阿里巴巴Java开发手册》本身就是阿里巴巴的内部编码规范,从命名到项目拆分,不仅规范了一些开发细节,也提出了很多工程开发的哲学。 如阿里巴巴系统软件事业部研究员毕玄所言,一个优秀的工程师和一个普通工程师的区别,不是现在满天飞的架构图,他的功底就是体现在他写的每一行代码上。 规约的目标是帮助开发者码出高效、码出质量,提升系统的质量、协作的高效性。计算机工程师这个行业很特殊,既像艺术家在创造富有个性的艺术品,又是一个需要团队合作的工作。《阿里巴巴Java开发手册》提倡算法效率和架构扩展的个性化,而不是代码风格随意化,尽量减少没有营养的“圣战”,如:4个空格、单行语句换行等。 未来展望:国际英文版&IDE智能扫描插件 这是一个广义的编码规范,一本随时可以查阅的技术参考,你在手册中可以找到很多的技术规范、最佳实践,避坑指南等,它是每一位优秀开发者手里的必备好书。 未来,阿里巴巴规约项目组将持续更新,推出国际英文版,并预计在今年9月杭州云栖大会发布众所期待的中文GitHub开源版本和IDE智能扫描插件,为开发者提供更多便利的服务,帮助企业和开发者切实提升代码质量、降低代码故障率。 阿里巴巴 JAVA 开发手册 V1.0版本下载地址 http://download.csdn.net/detail/qq446282412/9735132 https://mp.weixin.qq.com/s/fHh6CRljz4LCq9ZDtErNPQ?ptlang=2052&source&ADUIN=3024665621&ADSESSION=1495496312&ADTAG=CLIENT.QQ.5521_.0&ADPUBNO=26675

2017-05-23

Deep Learning 中文版

Deep Learning 中文翻译 https://github.com/exacity/deeplearningbook-chinese 第一章 前言 第二章 线性代数 第三章 概率与信息论 第四章 数值计算 第五章 机器学习基础 第六章 深度前馈网络 第七章 深度学习中的正则化 第八章 深度模型中的优化 第九章 卷积网络 第十章 序列建模:循环和递归网络 第十一章 实践方法论 第十二章 应用 第十三章 线性因子模型 第十四章 自编码器 第十五章 表示学习 第十六章 深度学习中的结构化概率模型 第十七章 蒙特卡罗方法 第十八章 面对配分函数 第十九章 近似推断 第二十章 深度生成模型 参考文献

2017-07-12

FindBugs错误分析说明.pdf

FindBugs是基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等;感兴趣的朋友可以下载看看

2017-09-19

Learning Reactive Programming with Java

Learning Reactive Programming with Java

2016-05-01

TCP-IP详解卷一:协议 卷二:实现 卷三:TCP事务协议,HTTP,NNTP和UNIX域协议 合集

TCP-IP详解卷一:协议 卷二:实现 卷三:TCP事务协议,HTTP,NNTP和UNIX域协议 合集

2016-09-24

Gradle for Android

About This Book, Create custom Gradle tasks and plugins for your Android projects, Configure different build variants, each with their own dependencies and properties, Manage multi-module projects, and integrate modules interdependently, Who This Book Is For, If you are an experienced Android developer wanting to enhance your skills with the Gradle Android build system, then this book is for you. As a prerequisite, you will need some knowledge of the concepts of Android application development., What You Will Learn, Build new Android apps and libraries using Android Studio and Gradle, Migrate projects from Eclipse to Android Studio and Gradle, Manage the local and remote dependencies of your projects, Create multiple build variants, Include multiple modules in a single project, Integrate tests into the build process, Create custom tasks and plugins for Android projects, In Detail, Gradle is an open source build automation system that introduces a Groovy-based domain-specific language (DSL) to configure projects. Using Gradle makes it easy for Android developers to manage dependencies and set up the entire build process., This book begins by taking you through the basics of Gradle and how it works with Android Studio. Furthermore, you will learn how to add local and remote dependencies to your project. You will work with build variants, such as debug and release, paid and free, and even combinations of these things. The book will also help you set up unit and integration testing with different libraries and will show how Gradle and Android Studio can make running tests easier. Finally, you will be shown a number of tips and tricks on the advanced customization of your application's build process. By the end of this book, you will be able to customize the entire build process, and create your own tasks and plugins for your Gradle builds.

2017-02-28

中文汉字笔划数据库

里面排好了中文对应的汉字、笔画数量、汉字对应的unicode码等,方便大家进行笔画排序。可以参考链接: https://blog.csdn.net/ouyang_peng/article/details/83863693 sqlite> .tables BI_HUA_BEAN CHILD_BEAN CLASSIFY_BEAN android_metadata sqlite> .schema CREATE TABLE android_metadata (locale TEXT); CREATE TABLE IF NOT EXISTS "CHILD_BEAN" ("_id" INTEGER PRIMARY KEY ,"NAME" TEXT,"ADDRESS" TEXT,"BIHUA_COUNT" INTEGER NOT NULL ,"CHILD_ID" INTEGER); CREATE TABLE IF NOT EXISTS "CLASSIFY_BEAN" ("_id" INTEGER PRIMARY KEY ,"NAME" TEXT,"BEI_ZHU" TEXT); CREATE TABLE IF NOT EXISTS "BI_HUA_BEAN" ("_id" INTEGER PRIMARY KEY ,"CHINESE" TEXT,"SUM" TEXT, codePointAt INTEGER); sqlite> 数据类似于: 2410|抨|8|25256 2411|拣|8|25315 2412|拤|8|25316 2413|坫|8|22379 2414|拈|8|25288 2415|坿|8|22399 2416|拊|8|25290 2417|者|8|32773 2418|拍|8|25293 2419|顶|8|39030 2420|坼|8|22396 2421|拆|8|25286 2422|乴|8|20084

2018-11-14

Video to GIF 绿色免费版本

Video to GIF 工具介绍可以参考博客 【我的Android进阶之旅】推荐一款视频转换GIF图片格式的转换工具(Video to GIF) ,地址:http://blog.csdn.net/ouyang_peng/article/details/73864005 Video to GIF是一款视频转换GIF图片格式的转换工具,软件界面友好,操作简单,支持目前所有流行的视频格式转换,软件能够高质量快速的进行转换,可以轻松查看高清动画及原始视频画面。 Video to GIF 主要特点 视频转换为GIF动画的Video格式包含:AVI, MPG, MPEG, ASF, WMV, WM, FLV, SWF, RM, RMVB, VOB, MOV, 3GP, M1V, VOB, DVD。 支持最流行的图像格式输出:视频转换为GIF动画等各种图像格式,包含:GIF,JPEG, JPG,BMP, PNG,TGA,TIFF, ICO, PCX。 转换视频到Seriate中的图片:提取视频文件的所有帧与方便单独的图像文件。拍摄的图像可以转换为所有流行格式,如JPG,GIF,BMP,PNG,等等。 转换视频到电视墙 :转换视频到一个单一的形象,包括多画面简单的安排。 内置的视频播放器:支持所有视频格式的:可以作为一个视频播放器的常用功能,如暂停,停止,快照等,更重要的是,它也支持所有主要的视频格式。 时间的控制输出精确长度:输入开始时间和人工终止时间,以准确的每一帧(1秒= 24帧)。 调整:获取输出图像文件作为同原始分辨率或设置,你想要一个新的大小。 使输出图像的特殊效果:添加特殊效果(如蓝,锐化,噪声,提亮,反转等)输出GIF或其它图像。

2017-06-28

《深入探索Android热修复技术原理》高清完整版PDF

2017年6月,阿里巴巴手淘技术团队推出了史上首个非侵入式移动热更新解决方案——Sophix。在Android热修复的三大领域:代码修复、资源修复、SO修复方面,以及方案的安全性和易用性方面,Sophix都做到了业界领先。 《深入探索Android热修复技术原理》从阿里Sophix方案开发过程入手权威解读,分享了阿里巴巴手淘技术团队对系统底层的原创性发现,是业界首部全方位完整介绍热修复原理的书籍。 阿里技术大牛联袂推荐 自 2014 年至今,手淘定义和引领了业界 Android 组件化和热修复技术风潮,至于后来者 Instant App 或多或少也受了国内技术风气影响。今天看到团队同学将这块技术认真系统化整理成书,非常欣喜。在这本书里,既能看到对热修复技术风潮的发展历史系统深入总结,看到国内程序员在Android系统级技术持续突破上的不懈努力,更看到国内程序员坚持打造世界级优秀专业移动技术产品的雄心壮志! 手机淘宝基础平台部负责人,阿里巴巴资深技术专家 吴天华(天施) 业内少有的讲解 Android 热修复的深度书籍,对于原理、代码讲解得非常的清晰和深入,值得 Android 工程师研读。 手机淘宝资深专家,倪生华(玄黎) 应用热修复是一项略带神秘而又颇具争议的技术,但是它的确赋予应用开发者“驾着飞机修引擎”的能力。本书从 Android 应用热修复技术的原理及代码实现、多种方案进行比较的角度,系统化地阐述了 Android 平台上的应用热修复技术。对 Android 应用热修复有好奇心的技术人员,这本专题书不容错过。 计算机技术领域著名作家,阿里巴巴飞猪事业部首席架构师 潘爱民 阿里无线3年前在业界首次推出 Android 热修复技术 Dex- posed,为 Android 底层技术服务于业务痛点需求点亮了一个崭新的技术方向,点燃了业界百花齐放的探索热潮。这是一个技术改变格局的时代,同时也是一个能人辈出的时代! 手机淘宝前架构师,绿色联盟发起人 冯森林(无锋)

2017-07-03

RxJava入门学习资料-RxJava Essentials(英/中文版合集)

RxJava Essentials(英文版) RxJava Essentials(中文版) 讲得比较详细,适合RxJava入门学习

2016-05-01

STUN Client_v1.2_apkpure.com.apk

该应用程序可以帮助你找出什么样的防火墙/ NAT你后面使用STUN协议。 有多STUN服务器可供选择。

2017-11-28

中文汉字笔划数据对照文本

中文汉字、汉字笔画数、汉字编码 对应表格 https://blog.csdn.net/ouyang_peng/article/details/83863693 https://blog.csdn.net/ouyang_peng/article/details/84109727

2018-11-15

Linux命令行与shell脚本编程大全(第3版) 高清晰PDF

这是一本关于Linux命令行与shell脚本编程的全方位教程,主要包括四大部分:Linux命令行,shell脚本编程基础,高级shell脚本编程,如何创建实用的shell脚本。本书针对Linux系统的新特性进行了全面更新,不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。通过本书的学习,你将轻松写出自己的shell脚本。 第一部分 Linux 命令行 第1章 初识Linux shell  2 1.1 什么是Linux  2 1.2 Linux发行版  12 1.3 小结  15 第2章 走进shell  16 2.1 进入命令行  16 2.2 通过Linux控制台终端访问CLI  18 2.3 通过图形化终端仿真访问CLI  20 2.4 使用GNOME Terminal仿真器  21 2.5 使用Konsole Terminal仿真器  25 2.6 使用xterm终端仿真器  29 2.7 小结  32 第3章 基本的bash shell命令  33 3.1 启动shell  33 3.2 shell提示符  34 3.3 bash手册  34 3.4 浏览文件系统  37 3.5 文件和目录列表  42 3.6 处理文件  46 3.7 处理目录  55 3.8 查看文件内容  58 3.9 小结  63 第4章 更多的bash shell命令  64 4.1 监测程序  64 4.2 监测磁盘空间  73 4.3 处理数据文件  78 4.4 小结  85 第5章 理解shell  86 5.1 shell的类型  86 5.2 shell的父子关系  88 5.3 理解shell的内建命令  96 5.4 小结  101 第6章 使用Linux环境变量  103 6.1 什么是环境变量  103 6.2 设置用户定义变量  106 6.3 删除环境变量  109 6.4 默认的shell环境变量  110 6.5 设置PATH环境变量  113 6.6 定位系统环境变量  114 6.7 数组变量  121 6.8 小结  122 第7章 理解Linux文件权限  124 7.1 Linux的安全性  124 7.2 使用Linux组  132 7.3 理解文件权限  135 7.4 改变安全性设置  138 7.5 共享文件  140 7.6 小结  142 第8章 管理文件系统  143 8.1 探索Linux文件系统  143 8.2 操作文件系统  147 8.3 逻辑卷管理  154 8.4 小结  162 第9章 安装软件程序  163 9.1 包管理基础  163 9.2 基于Debian的系统  164 9.3 基于Red Hat的系统  171 9.4 从源码安装  177 9.5 小结  180 第10章 使用编辑器  181 10.1 vim编辑器  181 10.2 nano编辑器  187 10.3 emacs编辑器  188 10.4 KDE系编辑器  196 10.5 GNOME编辑器  202 10.6 小结  206 第二部分 shell脚本编程基础 第11章 构建基本脚本  210 11.1 使用多个命令  210 11.2 创建shell脚本文件  211 11.3 显示消息  212 11.4 使用变量  214 11.5 重定向输入和输出  218 11.6 管道  220 11.7 执行数学运算  222 11.8 退出脚本  228 11.9 小结  231 第12章 使用结构化命令  232 12.1 使用if-then语句  232 12.2 if-then-else语句  235 12.3 嵌套if  235 12.4 test命令  238 12.5 复合条件测试  254 12.6 if-then的高级特性  255 12.7 case命令  257 12.8 小结  258 第13章 更多的结构化命令  260 13.1 for命令  260 13.2 C语言风格的for命令  268 13.3 while命令  270 13.4 until命令  272 13.5 嵌套循环  274 13.6 循环处理文件数据  276 13.7 控制循环  277 13.8 处理循环的输出  282 13.9 实例  283 13.10 小结  286 第14章 处理用户输入  287 14.1 命令行参数  287 14.2 特殊参数变量  292 14.3 移动变量  295 14.4 处理选项  296 14.5 将选项标准化  305 14.6 获得用户输入  306 14.7 小结  309 第15章 呈现数据  311 15.1 理解输入和输出  311 15.2 在脚本中重定向输出  315 15.3 在脚本中重定向输入  317 15.4 创建自己的重定向  317 15.5 列出打开的文件描述符  322 15.6 阻止命令输出  323 15.7 创建临时文件  324 15.8 记录消息  327 15.9 实例  328 15.10 小结  330 第16章 控制脚本  331 16.1 处理信号  331 16.2 以后台模式运行脚本  338 16.3 在非控制台下运行脚本  341 16.4 作业控制  342 16.5 调整谦让度  345 16.6 定时运行作业  346 16.7 小结  353 第三部分 高级shell脚本编程 第17章 创建函数  356 17.1 基本的脚本函数  356 17.2 返回值  359 17.3 在函数中使用变量  362 17.4 数组变量和函数  366 17.5 函数递归  369 17.6 创建库  370 17.7 在命令行上使用函数  371 17.8 实例  374 17.9 小结  377 第18章 图形化桌面环境中的脚本编程  378 18.1 创建文本菜单  378 18.2 制作窗口  384 18.3 使用图形  393 18.4 小结  400 第19章 初识sed和gawk  401 19.1 文本处理  401 19.2 sed编辑器基础  410 19.3 小结  423 第20章 正则表达式  424 20.1 什么是正则表达式  424 20.2 定义BRE模式  426 20.3 扩展正则表达式  436 20.4 正则表达式实战  439 20.5 小结  444 第21章 sed进阶  445 21.1 多行命令  445 21.2 保持空间  450 21.3 排除命令  451 21.4 改变流  454 21.5 模式替代  456 21.6 在脚本中使用sed  458 21.7 创建sed实用工具  460 21.8 小结  467 第22章 gawk进阶  469 22.1 使用变量  469 22.2 处理数组  476 22.3 使用模式  478 22.4 结构化命令  480 22.5 格式化打印  484 22.6 内建函数  487 22.7 自定义函数  490 22.8 实例  492 22.9 小结  493 第23章 使用其他shell  495 23.1 什么是dash shell  495 23.2 dash shell的特性  496 23.3 dash脚本编程  500 23.4 zsh shell  502 23.5 zsh shell的组成  503 23.6 zsh脚本编程  508 23.7 小结  510 第四部分 创建实用的脚本 第24章 编写简单的脚本实用工具  514 24.1 归档  514 24.2 管理用户账户  523 24.3 监测磁盘空间  537 24.4 小结  542 第25章 创建与数据库、Web及电子 邮件相关的脚本  543 25.1 MySQL数据库  543 25.2 使用Web  555 25.3 使用电子邮件  561 25.4 小结  564 第26章 一些小有意思的脚本  565 26.1 发送消息  565 26.2 获取格言  573 26.3 编造借口  583 26.4 小结  587 附录A bash命令快速指南  589 附录B sed和gawk快速指南  597

2017-10-20

软技能:代码之外的生存指南

这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。本书聚焦于软件开发人员生活的方方面面,从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造你,从提高自己工作效率到与如何与“拖延症”做斗争,甚至包括如何投资不动产,如何关注自己的健康。本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、精神篇等七篇,概括了软件行业从业人员所需的“软技能”。通过阅读本书,软件工程人员、编程人员和其他技术人员能够积极思考自己的职业生涯,丰富自己的生活,让自己更接近成功。 目录: 第1章 为何这本书与你先前读过的任何书籍都迥然不同 1 第一篇 职业 5 第2章 从非同凡响开始:绝不要做他人都在做的事 7 第3章 思考未来:你的目标是什么 10 第4章 人际交往能力:远比你想象的重要 14 第5章 破解面试之道 18 第6章 就业选择:列出你的选择 23 第7章 你是哪类软件开发人员 28 第8章 公司与公司是不一样的 33 第9章 攀登晋升阶梯 38 第10章 成为专业人士 42 第11章 赢得自由——如何辞职 47 第12章 成为自由职业者:开启自己的一片天地 54 第13章 创建你的一个产品 60 第14章 你打算开始创业吗 65 第15章 远程工作的生存策略 70 第16章 假装自己能成功 74 第17章 单调乏味的简历——如何修改 77 第18章 请勿陷入对技术的狂热之中 81 第二篇 自我营销 85 第19章 针对“码农”的营销基础课 87 第20章 打造引人注目的品牌 92 第21章 创建大获成功的博客 97 第22章 你的主要目标:为他人增加价值 104 第23章 善于运用社交媒体 107 第24章 演讲、报告和培训:做“说话的极客” 112 第25章 著书立说,吸引追随者 117 第26章 百折不挠,越挫越勇 121 第三篇 学习 125 第27章 学习怎样学习:如何自我教育 127 第28章 我的“十步学习法” 130 第29章 第 1 步到第 6 步:这些步骤只做一次 133 第30章 第7步到第10步:循环往复 140 第31章 寻找导师:找到你的尤达 145 第32章 开山收徒:成为尤达一样的大师 150 第33章 传道授业:若要学知识,必得为人师 153 第34章 你需要一个学位吗,还是可以对此忽略不计 157 第35章 发现自己的知识短板 161 第四篇 生产力 165 第36章 一切始于专注 167 第37章 我的私房“生产力提升计划” 171 第38章 番茄工作法 177 第39章 我的“定额工作法”:我是如何做到超额完成工作的 183 第40章 对自己负责 187 第41章 要不要多任务并行 191 第42章 职业倦怠:我已找到解药 195 第43章 时间是怎样被浪费掉的 200 第44章 形成惯例的重要性 205 第45章 培养习惯:刷新你的代码 209 第46章 分解任务:如何吃掉一头大象 214 第47章 努力工作的价值,以及为什么你总是逃避努力工作 219 第48章 任何行动都比不采取行动好 223 第五篇 理财 229 第49章 怎样支配你的薪水 231 第50章 怎样进行薪酬谈判 236 第51章 期权:所有乐趣之所在 243 第52章 房地产投资面面观 250 第53章 你真的了解自己的退休计划吗 256 第54章 债务的危害:社保债务代价昂贵 263 第55章 额外馈赠:我是如何做到33岁退休的 267 第六篇 健身 279 第56章 为什么需要破解自己的健康密码 281 第57章 设定你的健身标准 285 第58章 热力学、热量和你 289 第59章 动力:让你的屁股离开椅子 294 第60章 如何增长肌肉:书呆子也能拥有强健的肌肉 298 第61章 如何获得完美腹肌 305 第62章 启动跑步程序 308 第63章 站立式办公及其他窍门 311 第64章 高科技健身装备:极客现身 315 第七篇 精神 319 第65章 心灵是如何影响身体的 321 第66章 拥有正确的心态:重新启动 325 第67章 构建一个积极的自我形象——规划你的大脑 330 第68章 爱情与恋爱:计算机无法牵着你的手 335 第69章 我的私房成功书单 339 第70章 积极面对失败 344 第71章 结束语 348

2017-02-25

2017WOTD峰会讲师PPT

2017WOTD峰会讲师PPT,http://wot.51cto.com/act/2017/development/ 2017年12月1日和12月2日的峰会讲师PPT

2017-12-03

Maven权威指南_中文完整版清晰.pdf下载

Maven权威指南是一本关于Apache Maven的书。完整版的Maven权威指南,包括了其他版本缺失的12,13,15,17,18章以及附录,目录书签更加详细。 Copyright 1. Creative Commons BY-ND-NC Foreword: Beta 0.16 Preface 1. How to Use this Book 2. Your Feedback 3. Font Conventions 4. Maven Writing Conventions 5. Acknowledgements 1. 介绍 Apache Maven 1.1. Maven... 它是什么? 1.2. 约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结 2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven 2.3.1. 在Mac OSX上安装Maven 2.3.2. 在Microsoft Windows上安装Maven 2.3.3. 在Linux上安装Maven 2.3.4. 在FreeBSD或OpenBSD上安装Maven 2.4. 验证Maven安装 2.5. Maven安装细节 2.5.1. 用户相关配置和仓库 2.5.2. 升级Maven 2.6. 获得Maven帮助 2.7. 使用Maven Help插件 2.7.1. 描述一个Maven插件 2.8. 关于Apache软件许可证 I. Maven实战 3. 一个简单的Maven项目 3.1. 简介 3.1.1. 下载本章的例子 3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories) 3.5.5. Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和报告 (Site Generation and Reporting) 3.6. 小结 4. 定制一个Maven项目 4.1. 介绍 4.1.1. 下载本章样例 4.2. 定义Simple Weather项目 4.2.1. Yahoo! Weather RSS 4.3. 创建Simple Weather项目 4.4. 定制项目信息 4.5. 添加新的依赖 4.6. Simple Weather源码 4.7. 添加资源 4.8. 运行Simple Weather项目 4.8.1. Maven Exec 插件 4.8.2. 浏览你的项目依赖 4.9. 编写单元测试 4.10. 添加测试范围依赖 4.11. 添加单元测试资源 4.12. 执行单元测试 4.12.1. 忽略测试失败 4.12.2. 跳过单元测试 4.13. 构建一个打包好的命令行应用程序 5. 一个简单的Web应用 5.1. 介绍 5.1.1. 下载本章样例 5.2. 定义这个简单的Web应用 5.3. 创建这个简单的Web应用 5.4. 配置Jetty插件 5.5. 添加一个简单的Servlet 5.6. 添加J2EE依赖 5.7. 小结 6. 一个多模块项目 6.1. 简介 6.1.1. 下载本章样例 6.2. simple-parent 项目 6.3. simple-weather 模块 6.4. simple-webapp 模块 6.5. 构建这个多模块项目 6.6. 运行Web应用 7. 多模块企业级项目 7.1. 简介 7.1.1. 下载本章样例 7.1.2. 多模块企业级项目 7.1.3. 本例中所用的技术 7.2. simple-parent项目 7.3. simple-model模块 7.4. simple-weather模块 7.5. simple-persist模块 7.6. simple-webapp模块 7.7. 运行这个Web应用 7.8. simple-command模块 7.9. 运行这个命令行程序 7.10. 小结 7.10.1. 编写接口项目程序 8. 优化和重构POM 8.1. 简介 8.2. POM清理 8.3. 优化依赖 8.4. 优化插件 8.5. 使用Maven Dependency插件进行优化 8.6. 最终的POM 8.7. 小结 II. Maven Reference 9. 项目对象模型 9.1. 简介 9.2. POM 9.2.1. 超级POM 9.2.2. 最简单的POM 9.2.3. 有效POM 9.2.4. 真正的POM 9.3. POM语法 9.3.1. 项目版本 9.3.1.1. 版本构建号 9.3.1.2. SNAPSHOT版本 9.3.1.3. LATEST 和 RELEASE 版本 9.3.2. 属性引用 9.4. 项目依赖 9.4.1. 依赖范围 9.4.2. 可选依赖 9.4.3. 依赖版本界限 9.4.4. 传递性依赖 9.4.4.1. 传递性依赖和范围 9.4.5. 冲突解决 9.4.6. 依赖管理 9.5. 项目关系 9.5.1. 坐标详解 9.5.2. 多模块项目 9.5.3. 项目继承 9.6. POM最佳实践 9.6.1. 依赖归类 9.6.2. 多模块 vs. 继承 9.6.2.1. 简单项目 9.6.2.2. 多模块企业级项目 9.6.2.3. 原型父项目 10. 构建生命周期 10.1. 简介 10.1.1. 清理生命周期 (clean) 10.1.2. 默认生命周期 (default) 10.1.3. 站点生命周期 (site) 10.2. 打包相关生命周期 10.2.1. JAR 10.2.2. POM 10.2.3. Maven Plugin 10.2.4. EJB 10.2.5. WAR 10.2.6. EAR 10.2.7. 其它打包类型 10.3. 通用生命周期目标 10.3.1. Process Resources 10.3.2. Compile 10.3.3. Process Test Resources 10.3.4. Test Compile 10.3.5. Test 10.3.6. Install 10.3.7. Deploy 11. 构建Profile 11.1. Profile是用来做什么的? 11.1.1. 什么是构建可移植性 11.1.1.1. 不可移植构建 11.1.1.2. 环境可移植性 11.1.1.3. 组织(内部)可移植性 11.1.1.4. 广泛(全局)可移植性 11.1.2. 选择一个适当级别的可移植性 11.2. 通过Maven Profiles实现可移植性 11.2.1. 覆盖一个项目对象模型 11.3. 激活Profile 11.3.1. 激活配置 11.3.2. 通过属性缺失激活 11.4. 外部Profile 11.5. Settings Profile 11.5.1. 全局Settings Profile 11.6. 列出活动的Profile 11.7. 提示和技巧 11.7.1. 常见的环境 11.7.2. 安全保护 11.7.3. 平台分类器 11.8. 小结 12. Maven套件 12.1. 简介 12.2. Assembly基础 12.2.1. 预定义的套件描述符 12.2.2. 构建一个套件Building an Assembly 12.2.3. 套件作为依赖 12.2.4. 通过套件依赖组装套件 12.3. 套件描述符概述 12.4. 套件描述符 12.4.1. 套件描述符中的属性引用 12.4.2. 必须的套件信息 12.5. 控制一个套件的内容 12.5.1. Files 元素 12.5.2. FileSets 元素 12.5.3. fileSets的默认排除模式 12.5.4. dependencySets 元素 12.5.4.1. 自定义依赖输出目录 12.5.4.2. 依赖输出位置的属性插值 12.5.4.3. Including and Excluding Dependencies by Scope 12.5.4.4. Fine Tuning: Dependency Includes and Excludes 12.5.4.5. Transitive Dependencies, Project Attachments, and Project Artifacts 12.5.4.6. Advanced Unpacking Options 12.5.4.7. Summarizing Dependency Sets 12.5.5. moduleSets 部分 12.5.5.1. Module Selection 12.5.5.2. Sources Section 12.5.5.3. Interpolation of outputDirectoryMapping in moduleSets 12.5.5.4. Binaries section 12.5.5.5. moduleSets, Parent POMs and the binaries Section 12.5.6. Repositories Section 12.5.7. Managing the Assembly’s Root Directory 12.5.8. componentDescriptors and containerDescriptorHandlers 12.6. Best Practices 12.6.1. Standard, Reusable Assembly Descriptors 12.6.2. Distribution (Aggregating) Assemblies 12.7. Summary 13. 属性和资源过滤 13.1. 简介 13.2. Maven属性 13.2.1. Maven项目的属性 13.2.2. Maven的Settings属性 13.2.3. 环境变量属性 13.2.4. Java系统属性 13.2.5. 用户定义的属性 13.3. 资源过滤 14. Maven和Eclipse: m2eclipse 14.1. 简介 14.2. m2eclipse 14.3. 安装 m2eclipse 插件 14.3.1. 安装前提条件 14.3.1.1. 安装 Subclipse 14.3.1.2. 安装 Mylyn 14.3.1.3. 安装 AspectJ Tools Platform (AJDT) 14.3.1.4. 安装 Web Tools Platform (WTP) 14.3.2. 安装 m2eclipse 14.4. 开启 Maven 控制台 14.5. 创建一个 Maven 项目 14.5.1. 从 SCM 签出一个 Maven 项目 14.5.2. 用Maven Archetype创建一个Maven项目 14.5.3. 创建一个 Maven 模块 14.6. 创建一个Maven POM文件 14.7. 导入Maven项目 14.7.1. 导入一个Maven项目 14.7.2. 具体化一个Maven项目 14.8. 运行Maven构建 14.9. 使用Maven进行工作 14.9.1. 添加及更新依赖或插件 14.9.2. 创建一个Maven模块 14.9.3. 下载源码 14.9.4. 打开项目页面 14.9.5. 解析依赖 14.10. 使用Maven仓库进行工作 14.10.1. 搜索 Maven 构件和 Java 类 14.10.2. 为Maven仓库编制索引 14.11. 使用基于表单的POM编辑器 14.12. 在m2eclipse中分析项目依赖 14.13. Maven 选项 14.14. 小结 15. 站点生成 15.1. 简介 15.2. 使用Maven构建项目站点 15.3. 自定义站点描述符 15.3.1. 自定义页面顶端图片 15.3.2. 自定义导航菜单 15.4. 站点目录结构 15.5. 编写项目文档 15.5.1. APT样例 15.5.2. FML样例 15.6. 部署你的项目web站点 15.6.1. 配置服务器认证 15.6.2. 配置文件和目录模式 15.7. 自定义站点外观 15.7.1. 自定义站点CSS 15.7.2. 创建自定义的站点模板 15.7.3. 可重用的web站点皮肤 15.7.4. 创建自定义的主题CSS 15.7.5. 在皮肤中自定义站点模板 15.8. 提示与技巧 15.8.1. 给HEAD嵌入XHTML 15.8.2. 在你站点logo下添加链接 15.8.3. 为你的站点添加导航链接 15.8.4. 添加项目版本 15.8.5. 修改发布日期格式和位置 15.8.6. 使用Doxia宏 16. 仓库管理器 16.1. 简介 16.1.1. Nexus历史 16.2. 安装Nexus 16.2.1. 从Sonatype下载Nexus 16.2.2. 安装Nexus 16.2.3. 运行Nexus 16.2.4. 安装后检查单 16.2.5. 为RedHat/Fedora/CentOS设置启动脚本 16.2.6. 升级Nexus版本 16.3. 使用Nexus 16.3.1. 浏览仓库 16.3.2. 浏览组 16.3.3. 搜索构件 16.3.4. 浏览系统RSS源 16.3.5. 浏览日志文件和配置 16.3.6. 更改你的密码 16.4. 配置Maven使用Nexus 16.4.1. 使用Nexus中央代理仓库 16.4.2. 使用Nexus作为快照仓库 16.4.3. 为缺少的依赖添加仓库 16.4.4. 添加一个新的仓库 16.4.5. 添加一个仓库至一个组 16.5. 配置Nexus 16.5.. 定制服务器配置 16.5.2. 管理仓库 16.5.3. 管理组 16.5.4. 管理路由 16.5.5. 网络配置 16.6. 维护仓库 16.7. 部署构件至Nexus 16.7.1. 部署发布版 16.7.2. 部署快照版 16.7.3. 部署第三方构件 17. 编写插件 17.1. 简介 17.2. Maven编程 17.2.1. 什么是反转控制? 17.2.2. Plexus简介 17.2.3. 为什么使用Plexus? 17.2.4. 什么是插件? 17.3. 插件描述符 17.3.1. 顶层插件描述符元素 17.3.2. Mojo��置 17.3.3. 插件依赖 17.4. 编写自定义插件 17.4.1. 创建一个插件项目 17.4.2. 一个简单的Java Mojo 17.4.3. 配置插件前缀 17.4.4. 插件中的日志 17.4.5. Mojo类注解 17.4.6. 当Mojo失败的时候 17.5. Mojo参数 17.5.1. 为Mojo参数提供值 17.5.2. 多值的Mojo参数 17.5.3. 依赖于一个Plexus组件 17.5.4. Mojo参数注解 17.6. 插件和Maven生命周期 17.6.1. 执行平行的生命周期 17.6.2. 创建自定义的生命周期 17.6.3. 覆盖默认生命周期 18. Writing Plugins in Alternative Languages 18.1. Writing Plugins in Ant 18.2. Creating an Ant Plugin 18.3. Writing Plugins in JRuby 18.3.1. Creating a JRuby Plugin 18.3.2. Ruby Mojo Implementations 18.3.3. Logging from a Ruby Mojo 18.3.4. Raising a MojoError 18.3.5. Referencing Plexus Components from JRuby 18.4. Writing Plugins in Groovy 18.4.1. Creating a Groovy Plugin A. 附录: Settings细节 A.1. 简介 A.2. Settings细节 A.2.1. 简单值 A.2.2. 服务器(Servers) A.2.3. 镜像(Mirrors) A.2.4. 代理(Proxies) A.2.5. Profiles A.2.6. 激活(Activation) A.2.7. 属性(Properties) A.2.8. 仓库(Repositories) A.2.9. 插件仓库 A.2.10. 激活的Profile B. Appendix: Sun Specification Alternatives List of Figures List of Examples

2017-01-11

设计模式之禅(第2版)(jb51.net).pdf

前 言 第一部分 大旗不挥,谁敢 冲锋—热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 第2章 里氏替换原则 2.1 爱恨纠葛的父子关系 2.2 纠纷不断,规则压制 2.3 最佳实践 第3章 依赖倒置原则 3.1 依赖倒置原则的定义 3.2 言而无信,你太需要契约 3.3 依赖的三种写法 3.4 最佳实践 第4章 接口隔离原则 4.1 接口隔离原则的定义 4.2 美女何其多,观点各不同 4.3 保证接口的纯洁性 4.4 最佳实践 第5章 迪米特法则 5.1 迪米特法则的定义 5.2 我的知识你知道得越少越好 5.3 最佳实践 第6章 开闭原则 6.1 开闭原则的定义 6.2 开闭原则的庐山真面目 6.3 为什么要采用开闭原则 6.4 如何使用开闭原则 6.5 最佳实践 第二部分 我惹了谁— 真刀实枪篇 第7章 单例模式 7.1 我是皇帝我独苗 7.2 单例模式的定义 7.3 单例模式的应用 7.4 单例模式的扩展 7.5 最佳实践 第8章 工厂方法模式 8.1 女娲造人的故事 8.2 工厂方法模式的定义 8.3 工厂方法模式的应用 8.3.1 工厂方法模式的优点 8.3.2 工厂方法模式的使用场景 8.4 工厂方法模式的扩展 8.5 最佳实践 第9章 抽象工厂模式 9.1 女娲的失误 9.2 抽象工厂模式的定义 9.3 抽象工厂模式的应用 9.3.1 抽象工厂模式的优点 9.3.2 抽象工厂模式的缺点 9.3.3 抽象工厂模式的使用场景 9.3.4 抽象工厂模式的注意事项 9.4 最佳实践 第10章 模板方法模式 10.1 辉煌工程—制造悍马 10.2 模板方法模式的定义 10.3 模板方法模式的应用 10.4 模板方法模式的扩展 10.5 最佳实践 第11章 建造者模式 11.1 变化是永恒的 11.2 建造者模式的定义 11.3 建造者模式的应用 11.4 建造者模式的扩展 11.5 最佳实践 第12章 代理模式 12.1 我是游戏至尊 12.2 代理模式的定义 12.3 代理模式的应用 12.3.1 代理模式的优点 12.3.2 代理模式的应用 12.4 代理模式的扩展 12.4.1 普通代理 12.4.2 强制代理 12.4.3 代理是有个性的 12.4.4 虚拟代理 12.4.5 动态代理 12.5 最佳实践 第13章 原型模式 13.1 个性化电子账单 13.2 原型模式的定义 13.3 原型模式的应用 13.3.1 原型模式的优点 13.3.2 原型模式的使用场景 13.4 原型模式的注意事项 13.4.1 构造函数不会被执行 13.4.2 浅拷贝和深拷贝 13.4.3 clone与final两个冤家 13.5 最佳实践 第14章 中介者模式 14.1 进销存管理是这个样子的吗? 14.2 中介者模式的定义 14.3 中介者模式的应用 14.4 中介者模式的实际应用 14.5 最佳实践 第15章 命令模式 15.1 项目经理也难当 15.2 命令模式的定义 15.3 命令模式的应用 15.3.1 命令模式的优点 15.3.2 命令模式的缺点 15.3.3 命令模式的使用场景 15.4 命令模式的扩展 15.4.1 未讲完的故事 15.4.2 反悔问题 15.5 最佳实践 第16章 责任链模式 16.1 古代妇女的枷锁—“三从四德” 16.2 责任链模式的定义 16.3 责任链模式的应用 16.3.1 责任链模式的优点 16.3.2 责任链模式的缺点 16.3.3 责任链模式的注意事项 16.4 最佳实践 第17章 装饰模式 17.1 罪恶的成绩单 17.2 装饰模式的定义 17.3 装饰模式应用 17.3.1 装饰模式的优点 17.3.2 装饰模式的缺点 17.3.3 装饰模式的应用 17.4 最佳实践 第18章 策略模式 18.1 刘备江东娶妻,赵云他容易吗 18.2 策略模式的定义 18.3 策略模式的应用 18.3.1 策略模式的优点 18.3.2 策略模式的缺点 18.3.3 策略模式的应用 18.3.4 策略模式的注意事项 18.4 策略模式的扩展 18.5 最佳实践 第19章 适配器模式 19.1 业务发展—上帝才能控制 19.2 适配器模式的定义 19.3 适配器模式的应用 19.3.1 适配器模式的优点 19.3.2 适配器模式的应用 19.3.3 适配器模式的注意事项 19.4 适配器模式的扩展 19.5 最佳实践 第20章 迭代器模式 20.1 整理项目信息—苦差事 20.2 迭代器模式的定义 20.3 迭代器模式的应用 20.4 最佳实践 第21章 组合模式 21.1 公司的人事架构是这样的吗 21.2 组合模式的定义 21.3 组合模式的应用 21.3.1 组合模式的优点 21.3.2 组合模式的缺点 21.3.3 组合模式的应用 21.3.4 组合模式的注意事项 21.4 组合模式的扩展 21.4.1 真实的组合模式 21.4.2 透明的组合模式 21.4.3 组合模式的遍历 21.5 最佳实践 第22章 观察者模式 22.1 韩非子身边的卧底是谁派来的 22.2 观察者模式的定义 22.3 观察者模式的应用 22.3.1 观察者模式的优点 22.3.2 观察者模式的缺点 22.3.3 观察者模式的应用 22.3.4 观察者模式的注意事项 22.4 观察者模式的扩展 22.4.1 Java世界中的观察者模式 22.4.2 项目中真实观察者模式 22.4.3 订阅发布模型 22.5 最佳实践 第23章 门面模式 23.1 我要投递信件 23.2 门面模式的定义 23.3 门面模式的应用 23.3.1 门面模式的优点 23.3.2 门面模式的缺点 23.3.3 门面模式的应用 23.4 门面模式的注意事项 23.4.1 一个子系统可以有多个 门面 23.4.2 门面不参与子系统内的 业务逻辑 23.5 最佳实践 第24章 备忘录模式 24.1 如此追女孩子,你还不乐 24.2 备忘录模式的定义 24.3 备忘录模式的应用 24.3.1 备忘录模式的应用 24.3.2 备忘录模式的注意事项 24.4 备忘录模式的扩展 24.4.1 clone方式的备忘录 24.4.2 多状态的备忘录模式 24.4.3 多备份的备忘录 24.4.4 封装得更好一点 24.5 最佳实践 第25章 访问者模式 25.1 员工的隐私何在? 25.2 访问者模式的定义 25.3 访问者模式的应用 25.3.1 访问者模式的优点 25.3.2 访问者模式的缺点 25.3.3 访问者模式的应用 25.4 访问者模式的扩展 25.4.1 统计功能 25.4.2 多个访问者 25.4.3 双分派 25.5 最佳实践 第26章 状态模式 26.1 城市的纵向发展功臣—电梯 26.2 状态模式的定义 26.3 状态模式的应用 26.3.1 状态模式的优点 26.3.2 状态模式的缺点 26.3.3 状态模式的应用 26.3.4 状态模式的注意事项 26.4 最佳实践 第27章 解释器模式 27.1 四则运算你会吗 27.2 解释器模式的定义 27.3 解释器模式的应用 27.3.1 解释器模式的优点 27.3.2 解释器模式的缺点 27.3.3 解释器模式使用的场景 27.3.4 解释器模式的注意事项 27.4 最佳实践 第28章 享元模式 28.1 内存溢出,司空见惯 28.2 享元模式的定义 28.3 享元模式的应用 28.3.1 享元模式优点和缺点 28.3.2 享元模式的应用 28.4 享元模式的扩展 28.4.1 线程安全的问题 28.4.2 性能平衡 28.5 最佳实践 第29章 桥梁模式 29.1 我有一个梦想…… 29.2 桥梁模式的定义 29.3 桥梁模式的应用 29.3.1 桥梁模式的优点 29.3.2 桥梁模式的应用 29.3.3 桥梁模式的注意事项 29.4 最佳实践 第三部分 谁的地盘谁做主—模式PK篇 第30章 创建类模式大PK 30.1 工厂方法模式VS建造者模式 30.1.1 按工厂方法建造超人 30.1.2 按建造者模式建造超人 30.1.3 最佳实践 30.2 抽象工厂模式VS建造者模式 30.2.1 按抽象工厂模式生产车辆 30.2.2 按建造者模式生产车辆 30.2.3 最佳实践 第31章 结构类模式大PK 31.1 代理模式VS装饰模式 31.1.1 代理模式 31.1.2 装饰模式 31.1.3 最佳实践 31.2 装饰模式VS适配器模式 31.2.1 按装饰模式描述丑小鸭 31.2.2 按适配器模式实现丑小鸭 31.2.3 最佳实践 第32章 行为类模式大PK 32.1 命令模式VS策略模式 32.1.1 策略模式实现压缩算法 32.1.2 命令模式实现压缩算法 32.1.3 小结 32.2 策略模式VS状态模式 32.2.1 策略模式实现人生 32.2.2 状态模式实现人生 32.2.3 小结 32.3 观察者模式VS责任链模式 32.3.1 责任链模式实现DNS 解析过程 32.3.2 触发链模式实现DNS 解析过程 32.3.3 小结 第33章 跨战区PK 33.1 策略模式VS桥梁模式 33.1.1 策略模式实现邮件发送 33.1.2 桥梁模式实现邮件发送 33.1.3 最佳实践 33.2 门面模式VS中介者模式 33.2.1 中介者模式实现工资计算 33.2.2 门面模式实现工资计算 33.2.3 最佳实践 33.3 包装模式群PK 33.3.1 代理模式 33.3.2 装饰模式 33.3.3 适配器模式 33.3.4 桥梁模式 33.3.5 最佳实践 第四部分 完美世界— 混编模式 第34章 命令模式+责任链模式 34.1 搬移UNIX的命令 34.2 混编小结 第35章 工厂方法模式+策略模式 35.1 迷你版的交易系统 35.2 混编小结 第36章 观察者模式+中介者模式 36.1 事件触发器的开发 36.2 混编小结 第37章 规格模式 37.1 规格模式的实现 37.2 最佳实践 第38章 MVC框架 38.1 MVC框架的实现 38.1.1 MVC的系统架构 38.1.2 模型管理器 38.1.3 值栈 38.1.4 视图管理器 38.1.5 工具类 38.2 最佳实践 附录:23个设计模式

2016-04-23

不一样的技术创新-阿里巴巴2016双11背后的技术

为什么我们要看这本电子书?   数十位阿里技术大V精心选题!   8大技术领域27篇共计十万余字!   2016双11业务狂欢背后的技术实践!   全面阐述阿里巴巴最新技术积累与创新! 每年双11技术保障工作的顺利完成,是阿里技术积累和创新能力的集中展现。2016双11业务狂欢的背后,更是体现了阿里这两年来在人工智能、VR、云计算和大数据技术方面丰富的技术实践与突破。 历经近一个月的编写,《不一样的技术创新-阿里巴巴2016双11背后的技术》(以下简称《不一样的技术创新》)一书最终呈现在大家面前。本书由数十位亲历双11零点之战的阿里技术大V编写,与大家零距离分享双11一线技术团队实战经验,这27篇共计10万余字精心打造的技术干货凝聚了阿里工程师的智慧和创造力。    书中全面阐述阿里双11背后的技术实践与创新,包含基础设施、存储、中间件、云计算、业务架构、大数据、认知计算与人工智能、交互技术及安全等技术领域,其中重点包括: 充分发挥云计算弹性能力,实现资源快速腾挪,支撑交易峰值每秒17.5万笔、支付峰值每秒12万笔的混合云弹性架构; 在双11当天实现万亿级消息流转第三代分布式消息引擎RocketMQ; 交易核心应用容器化,撑起双11交易下单峰值,充分解放资源的超大规模Docker化技术; 支撑全球最大规模在线交易的数据实时和离线计算能力,包括承载阿里巴巴集团核心大数据的离线计算平台MaxCompute,以及双十一保证每秒处理亿条日志的计算能力、毫秒级的计算延迟的实时流计算平台StreamCompute; 阿里人工智能在搜索、推荐以及客服场景下的创新应用,包括人工智能赋能的数千家品牌商家店铺的个性化运营和粉丝会员的精准营销;基于深度强化学习和在线自适应学习的推荐算法创新;以智能+人工模式提供智能导购、服务、助理拟人交互的阿里小蜜; 全球第一个端对端的虚拟购物环境背后的VR技术,全面解读如何解决VR购物三大技术挑战,全面覆盖浏览、下单及支付环节; 揭秘应对前端极限挑战的淘宝直播首屏秒开,以及应用世界级开源跨平台移动开发工具Weex实现双11会场几近全覆盖,实现全网首屏渲染完美践行“秒开”体验; 所有双11奇迹背后的、基于数据挖掘、机器学习等技术的智能化秒级监控。千万量级监控项,PB级监控数据,亿级报警通知背后的技术。 长按二维码,立即在线阅读!   附全书目录:   第一章 基础设施 1.1 万亿交易量级下的秒级监控 1.2 双11背后基础设施软硬结合实践创新 1.3 阿里视频云ApsaraVideo是怎样让4000万人同时狂欢的   第二章 存储 2.1永不停止的脚步——数据库优化之路 2.2 AliCloudDB--双11商家后台数据库的基石   第三章 中间件 3.1 万亿级数据洪峰下的分布式消息引擎   第四章 电商云化 4.1 17.5W秒级交易峰值下的混合云弹性架构之路 4.2 集团AliDocker化双11总结   第五章 业务架构 5.1 内容+:打造不一样的双11 5.2 双11交易核心链路的故事 5.3 千亿访问量下的开放平台技术揭秘 5.4 智慧供应链 5.5 菜鸟双11“十亿级包裹”之战   第六章 大数据 6.1 双11数据大屏背后的实时计算处理 6.2 双11背后的大规模数据处理 6.3 突破传统,4k大屏的沉浸式体验   第七章 人工智能 7.1 基于深度强化学习与自适应在线学习的搜索和推荐算法研究 7.2 颠覆传统的电商智能助理-阿里小蜜技术揭秘 7.3 深度学习与自然语言处理在智能语音客服中的应用 7.4 数据赋能商家背后的黑科技 7.5 探索基于强化学习的智能推荐之路 7.6 DNN在搜索场景中的应用   第八章 交互技术 8.1 VR电商购物 8.2 淘宝直播在双11的互动实践 8.3 2016双11前端突破 8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障 8.5 双11晚会背后的技术

2017-01-19

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

TA关注的人

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