关闭

Gradle项目树

在多项目构建中,项目的结构用树结构表示。初始化阶段,settings.gradle负责创建一棵由一系列ProjectDescriptor组成的项目树,当这棵树组装完毕,接着Gradle就根据这棵由ProjectDescriptors组成的项目树再创建一个由一系列Project对象组成的项目树。也就是说,在初始化阶段,我们在settings.gradle中操作的是ProjectDescriptor,...
阅读(336) 评论(0)

Gradle生命周期

Gradle与Maven有一个很大的区别是Gradle构建生命周期分三个阶段:初始化阶段:负责判断有多少个Projects参与构建。配置阶段:负责对初始化阶段创建的Projects完成配置。执行阶段:根据配置阶段的配置执行任务。初始化阶段构建初始化阶段首先寻找一个叫settings.gradle的文件,检查是否当前构建是否是多项目构建,并负责创建项目树。在多项目构建中,settings.gradl...
阅读(346) 评论(0)

React Native遇见的几个坑

1. 环境变量配置解决办法:配置ANDROID_HOME,和JAVA_HOME。安装Android SDK,并安装Build Tool 23.0.1,最好把所有版本装上,因为将来使用的插件可能依赖的版本是不一样的。2. 执行cd android && ./gradlew assembleRelease任务错误* What went wrong:Execution failed for task '...
阅读(2499) 评论(1)

UUID笔记

全称为:Universally Unique IDentifier,或Globally Unique IdentifierURN: 全称为Uniform Resource NameUUID特征长度为128 bits,其中包含了一个时间字段(可记录到3400年)。不需要集中注册,也就是不需要集中授权就可以管理他们。UUID是唯一的,不随时间变化,而且是可持久化的,因此很适合把UUID作为URN。UU...
阅读(297) 评论(0)

自定义枚举以及如何在反射中获取枚举值

枚举也是类,在定义枚举的时候,其实是定义了一个枚举集合,然后在这个集合中包含一些列枚举值。比如性别可以是一个枚举集合,可能中包含男性、女性等枚举值。定义枚举集合以性别这个枚举集合为例,先来定义两个枚举值,分别为MALE和FEMALE:publicenum Gender { MALE, FEMALE } JAVA编译器会把这MALE和FEMALE转成两个枚举值。枚举类-Enum(name, ...
阅读(5394) 评论(1)

CSS3 Flex计算逻辑

Flex样式Flex: flex-grow | flex-shrink | flex-basisflex-grow:纯数字,表示增长因子。默认值为0,表示按元素的原大小显示。flex-shrink:纯数字,表示收缩因子。默认值是1,如果是0则按原始大小显示。当屏幕或容器变小时,不同元素的收缩比例可能与容器变大的逻辑是不一样的,所以会有这个属性。flex-basis:表示flex-item(flex...
阅读(3267) 评论(0)

RegExp在IE8等浏览器中的兼容性问题

这里讲的兼容性问题主要指String的API在正则表达式的处理上不同。匹配结果的兼容性第一个问题:在IE",,ab,,".split(","); // output ["","","ab","",""] ",,ab,,".split(/,/); // output ["ab"]第二个问题:正则表达式中可能有分组,但是这个分组可能并没有参与(也就是没有匹配到任何子字符串)。关于这个分组的结果:IE"...
阅读(5722) 评论(0)

J2EE常见路径处理

资源路径File(path)对于UNIX操作系统,绝对路径总是以”/”开头,相对路径没有前缀;对于Windows操作系统,绝对路径格式是”盘符:\\path”,Windows UNC绝对路径的的前缀是”\\\\”。如果path是相对路径,文件的绝对路径部分从user.dir系统属性获取。比如如果user.dir的值是:c:/Users/workspace/projectDemo,那么File("p...
阅读(6577) 评论(1)

git reset与git revert比较

git resetgit reset的作用是还原Index的状态或修改本地分支HEAD的位置。这个命令适合用于从某个提交点重新开新的分支。比如,如果某个提交之后的代码我们都不要了,就可以在本地reset至指定commit,然后开一个新的branch继续新的开发(原来分支在远程上没有发生任何变化的)。使用git reset是不影响远程分支的,一切都在本地发生。如果回退需要很快影响远程分支的,应该使用...
阅读(6405) 评论(0)

详解window.history

Window.history保存用户在一个会话期间的网站访问记录,用户每次访问一个新的URL即创建一个新的历史记录。history.go()、history.back()、history.forward()history.back()和history.forward()分别表示向后一页和向前一页。history.go(num)表示向前或向后翻多少页,num为正数表示向前翻,为负数则向后翻。Hist...
阅读(10661) 评论(1)

Angular Scope解析与应用

Scope层级结构顶层服务对象$rootScope来源于ng模块,由$RootScopeProvider提供。因为ng模块是angular.bootstrap()执行时依赖的模块,所以在整个应用中都可以通过$rootScope引用,而且在这个应用中是唯一的。但唯一性仅限于单个应用内,因为服务都存在注入器中,而每个bootstrap应用有自己的注入器,所以,$rootScope作为一个服务,在不同的...
阅读(3657) 评论(0)

归并排序-迭代法与递归法

注意:这个方法不改变原数组,而是生成一个新的数组。Array.prototype.mergeSort = function(fun/*, thisArg*/) { 'use strict'; if (this === void 0 || this === null) { throw new TypeError(); } if (fun && typeof fun !==...
阅读(1079) 评论(0)

AngularJS模块详解

在angular中,模块可以是一个对象、一个方法或一个数组(数组的最后一个元素必须是方法)。后面要讲的模块属性和方法,都是针对通过angular.module()方法定义的模块而言的,我称之为angular模块。通过angular.module()方法定义的模块是唯一的,如果重复定义,后面的就会覆盖前面的定义。不是通过angular.module()定义的模块,比如一个方法或一个数组,这些模块也是...
阅读(6117) 评论(0)

泛型

泛型没有泛型之前有以下两个问题:l  从聚集(collection)中取出一个元素,必须把这个元素转换为具体类型。l  插入元素时,编译器不检查你插入的对象的类型与聚集中元素的类型是否相同。泛型的作用就是告诉编译器你希望聚集中的元素是什么类型,这样编译器就可以在编译阶段帮你检查你准备插入聚集的元素类型是否正确;或从聚集中取出元素时元素不需要强制转换,因为编译器已经知道聚集中的元素类型。泛型定义所谓...
阅读(1733) 评论(3)

Requirejs常用配置和应用

requirejs、require方法冲突如果加载了多个requirejs脚本,每个requirejs会判断是否浏览器已经实现了require和define方法。如果浏览器已经自带require和define方法,或者之前已经有一个requirejs脚本执行,那么这个requirejs就会立刻停止执行。所以,即使页面上加载了多次requirejs脚本也不会有什么问题。配置Context我把cont...
阅读(6891) 评论(1)
181条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:837809次
    • 积分:8157
    • 等级:
    • 排名:第2564名
    • 原创:152篇
    • 转载:17篇
    • 译文:12篇
    • 评论:92条
    最新评论