自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 理解$watch ,$apply 和 $digest --- 理解数据绑定过程

理解watch,watch ,apply 和 $digest — 理解数据绑定过程 原英文地址:http://angular-tips.com/blog/2013/08/watch-how-the-apply-runs-a-digest/翻译文地址:http://www.angularjs.cn/A0a6注这篇博文主要是写给新手的,是给那些刚刚开始接触Angular,并且想了解数据帮定是如何

2018-01-08 19:09:51 345

转载 document.write详解

原文地址:document.write的用处!document.write是JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中写入字符串,一旦文档流已经关闭,那document.write就会重新利用document.open打开新的文档流并写入,此时原来的文档流会被清空,已渲染好的页面就会被清除,浏览器

2018-01-07 01:22:30 23069 1

原创 mvn spring-boot:run出错No plugin found for prefix 'spring-boot'

1. 问题描述  springboot文档上的入门例子,在项目根目录控制台中输入mvn spring-boot:run 结果build failure,但是直接在eclipse中run application可以运行。2. 解决  No plugin found for prefix ‘spring-boot’ in the current project and in the plugin

2017-12-29 17:34:25 7309

原创 underscore.js源码解析之函数绑定

1. 引言  underscore.js是一个1500行左右的Javascript函数式工具库,里面提供了很多实用的、耦合度极低的函数,用来方便的操作Javascript中的数组、对象和函数,它支持函数式和面向对象链式的编程风格,还提供了一个精巧的模板引擎。理解underscore.js的源码和思想,不管是新手,还是工作了一段时间的人,都会上升一个巨大的台阶。虽然我不搞前端,但是在一个星期的阅读分析

2017-12-28 10:42:17 340

原创 underscore.js源码解析之继承

1. 引言  underscore.js是一个1500行左右的Javascript函数式工具库,里面提供了很多实用的、耦合度极低的函数,用来方便的操作Javascript中的数组、对象和函数,它支持函数式和面向对象链式的编程风格,还提供了一个精巧的模板引擎。理解underscore.js的源码和思想,不管是新手,还是工作了一段时间的人,都会上升一个巨大的台阶。虽然我不搞前端,但是在一个星期的阅读分析

2017-12-27 17:23:10 383

原创 Bootstrap.css的btn-group-vertical中嵌套btn-group的缺陷

1. 问题描述<div class="btn-group-vertical"> <div class="btn-group"> <button class="btn btn-warning">button</button> <button class="btn btn-warning">button</button> <button class="btn btn-warn

2017-12-22 12:51:27 1665

原创 underscore.js源码解析之类型判断

1. 引言  underscore.js是一个1500行左右的Javascript函数式工具库,里面提供了很多实用的、耦合度极低的函数,用来方便的操作Javascript中的数组、对象和函数,它支持函数式和面向对象链式的编程风格,还提供了一个精巧的模板引擎。理解underscore.js的源码和思想,不管是新手,还是工作了一段时间的人,都会上升一个巨大的台阶。虽然我不搞前端,但是在一个星期的阅读分析

2017-12-19 14:26:23 440

原创 C函数不写return以及调用无参函数时传参会出现什么结果

1. 问题描述  偶然间重新拿起了三年前的C语言,遇到了以前没有遇到过的问题: 1. C语言中普通函数声明了返回类型但是不用return返回结果,也能够编译通过,如下:#include <stdio.h>int test1(int a) { return 10;}int test2(int a) {}int main() { int a = 1; test1(a);

2017-12-16 17:00:45 11907 1

转载 Functor、Applicative和Monad

[原文链接](http://blog.leichunfeng.com/blog/2015/11/08/functor-applicative-and-monad/) Functor、Applicative 和 Monad Nov 8th, 2015 10:53 am Functor、Applicative 和 Monad 是函数式编程语言中三个

2017-12-15 18:46:39 269

原创 underscore.js源码解析之命名空间

1. 引言  underscore.js是一个1500行左右的Javascript函数式工具库,里面提供了很多实用的、耦合度极低的函数,用来方便的操作Javascript中的数组、对象和函数,它支持函数式和面向对象链式的编程风格,还提供了一个精巧的模板引擎。理解underscore.js的源码和思想,不管是新手,还是工作了一段时间的人,都会上升一个巨大的台阶。虽然我不搞前端,但是在一个星期的阅读分析

2017-12-12 19:58:43 208

原创 集合乱序算法shuffle

引言  最近在看underscore.js的源码,看到shuffle函数,想起Java集合工具中也有这么个函数,就顺便仔细研究了一下,思路非常简单:一个迭代下标i从后往前移动,每次取0~i之间的一个随机下标rand,将其对应元素和i所在的元素交换。i也可以从前往后迭代。underscore.js的shuffle_.shuffle = function(obj) { var set = isArr

2017-12-04 17:27:11 1557

原创 放弃class,一步一图彻底理解Javascript的原型链

引言  关于原型链,看了不少博客,感觉都少了点什么,个人习惯梳理知识点的细节,越详细越好,这样心中才有底气。特记录下个人对原型链的理解,方便日后参考。__proto__, prototype和constructor下面这三个属性的定义非常重要,始终贯穿在原型中。   prototype:此属性只有构造函数才有,它指向的是当前构造函数的原型对象。   __proto__:此属性是任何对象在创建时都

2017-11-29 19:55:10 3566 4

转载 SpringMVC validation完成后端数据校验(较全面)

原文地址:使用Spring完成后端数据校验前言  数据的校验是交互式网站一个不可或缺的功能,前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验。但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已。我在之前保险产品研发过程中,

2017-11-27 19:54:05 15730 2

转载 SpringMVC验证注解Validated

原文地址:Spring MVC @Validated的使用@Valid是javax.validation里的。@Validated是@Valid 的一次封装,是Spring提供的校验机制使用。@Valid不提供分组功能@Validated的特殊用法1、分组当一个实体类需要多种验证方式时,例:对于一个实体类的id来说,新增的时候是不需要的,对于更新时是必须的。可以通过groups对验证进行分组

2017-11-27 18:58:13 2133

原创 Java DTO数据响应回前端时JSON对象中多出一些未知属性

1. 问题描述     项目过程中,测试那边反映ResponseBody返回前端的JSON中,某个DTO多出了一个属性"empty : false",DTO如下:public class Description { private String name; private String dosage;

2017-11-24 11:40:25 2088

原创 Java中对于+和append拼接字符串效率的误解

引言    对于初学Java的人来说,在学习String的时候,肯定有无数个人和我们讲过,”尽量不要使用+拼接字符串,效率不好,应该使用append,你自己循环拼接个十万次自己瞧瞧就知道了“,然后像下面那样给我们演示了一下,用+和用StringBuilder的append拼接个十万次,输出一下各自消耗的时间,差距非常大,让我们立刻深信不疑,+拼接就是个垃圾,除了平时方便测试代码,否则都不要去用了,并

2017-11-22 21:04:42 28848 11

原创 @JsonIgnore注解

很简单的一个注解,标在Javabean的属性上,作用是在将ResponseBody中的Javabean返回前端过程中,被springmvc自带的jackson转化成json字符串时,忽略这个属性。对序列化也有影响。   public class Xxx { private String attr1; @JsonIgnore private String attr2;

2017-11-16 18:49:36 8578

转载 SpringMVC Validator分组校验

原文地址:SpringMVC验证框架Validation特殊用法 基本用法不说了,网上例子很多,这里主要介绍下比较特殊情况下使用的方法。1. 分组有的时候,我们对一个实体类需要有多中验证方式,在不同的情况下使用不同验证方式,比如说对于一个实体类来的id来说,保存的时候是不需要的,对于更新时是必须的,可以如下配置:public class UserModel { @NotNull(messag

2017-11-16 18:15:21 3229

原创 理解红黑树(下)删除操作

1. 引言红黑树的结点增删改查效率非常优良,都为logn,其应用十分广泛: 1. Linux内核进程调度由红黑树管理进程控制块。 2. Epoll用红黑树管理事件块。 3. nginx服务器用红黑树管理定时器。 4. C++ STL中的map和set的底层实现为红黑树。 5. Java中的TreeMap和TreeSet由红黑树实现。 6. Java8开始,HashMap中,当

2017-11-14 17:13:41 8626 16

原创 理解红黑树(上)插入操作

1. 引言红黑树的结点增删改查效率非常优良,都为logn,其应用十分广泛: 1. Linux内核进程调度由红黑树管理进程控制块。 2. Epoll用红黑树管理事件块。 3. nginx服务器用红黑树管理定时器。 4. C++ STL中的map和set的底层实现为红黑树。 5. Java中的TreeMap和TreeSet由红黑树实现。 6. Java8开始,HashMap中,当

2017-11-12 20:39:32 554 4

原创 Java properties文件里中文数据显示在页面时乱码

1. 问题描述     在进行国际化的时候,xxx_zh.properties文件中设置好中文信息,properties文件中文显示正常,一旦将其显示到网页上时,就出现乱码。

2017-11-10 17:29:37 1979

转载 Java日期/时间API

本文由 ImportNew - Justin Wu 翻译自 journaldev。欢迎加入翻译小组。转载请见文末要求。Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间处理的一致性方法,因此日期/时间API也是除Java核心API以外另一项倍受欢迎的内容。为什么我们需要新的Java日期/时间API?在开始研究Java 8日期/时间

2017-11-08 17:02:52 336

翻译 理解PrimeFaces process/update和JSF f:ajax execute/render属性

process属性作用于服务端,其属性值只会影响实现了EditableValueHolder(input这类标签)或ActionSource(command这类标签)接口的UIComponent。通过使用空格分隔的client ID列表,process属性告诉JSF,在表单提交时,具体是哪个组件必须在JSF的生命周期中被处理。

2017-11-03 12:45:01 5891

原创 JSF中的binding属性

引言  平时使用JSF,在查看标签proposal的时候经常到瞟到这个属性,几乎所有组件标签都有这个属性,但是一直不知道有什么用,今晚无意中研究了一下,发现还挺好用。binding属性先看下binding的proposal:The ValueExpression linking this component to a property in a backing bean大意为这是一个求值表达式,

2017-11-02 23:26:17 951

原创 JSF2标签和属性简单整理

<h:form id="form1"></h:form><h:inputText></h:inputText>value: 输入框的当前值converterMessage: 类型转换出错时的信息required: 是否允许为空requiredMessage: 输入为空时的出错信息label: 全局配置文件中自定

2017-11-02 17:11:57 1481

转载 JSF2验证器和转换器

JSF定义了一系列标准的转换器(Converter),支持8种基本类型数据转换DateTime、Number可以使用<f:convertDateTime>、<f:convertNumber>标签进行转换自定义转换器 自定义转换器要实现javax.faces.convert.Converter接口,这个接口有两个要实现的方法:public Object getAsObject(FacesConte

2017-11-02 17:00:46 327

原创 JSF2.X入门

引言  以前处理前端请求一直都是用JSP提交表单或者在js代码中使用Ajax将参数发送到后端进行处理,是基于请求响应的,因为springMVC的强大,早已习惯了这种做法,后来学习了vueJS2.0,感觉前端的操作更加简单了。如今公司项目组似乎没有前端工程师,只好选择了使用JSF技术和PrimeFaces框架开发前端界面,之前从来没接触过JSF,不得不赶紧研究了一下,感觉以前都是提倡前后端要尽量...

2017-11-02 02:01:16 575

原创 用Java设计实现Python中的生成器

引言  相信无论是谁,第一次接触Python,肯定会为她的优雅简洁感到震撼(她的性能咱先抛一边去),然而本人主要使用C和Java开发,Python虽然感觉很好,但是碍于一些环境因素,没机会去使用,况且语言只是一种工具,现在像Python这种高级动态语言又确实不少,掌握其本质思想才是关键,所以本文通过分析Java和Python的一些语法特性,用Java语言设计实现了Python语言中的强大而实用...

2017-06-15 01:28:33 3757

原创 Maven从下载到eclipse建立项目

引言  先从一囧事说起,Maven用了半年多,到最近才发现自己原来把Maven用成了连狗屎都不如的工具。看看我这半年是多么的滑稽吧:在我的本地Maven仓库里存放着从别人那里复制来的一大堆jar包,是的,都是从别人那里复制来的,没有一个是从网上远程仓库下载来的,每次项目要使用jar包时,先跑到本地仓库中search一下,search到了之后复制后半段路径(就是Maven的dependency结构),

2017-06-05 19:14:51 286

原创 对于线性时间筛选素数算法的理解

1. 算法描述线性筛选素数和其它的素数筛选方法比如Eratosthenes筛选都是一个思想,就是在已筛选出来的素数基础上按倍数把后面的合数去掉,但是由于多了下面这么一个判断一下子变成了线性时间复杂度。 if(i%prime[j]==0) break; 2. 算法实现#include <stdio.h>#define N 100000/* 打出一张素数表和一张判断表 */void primeT

2017-06-03 16:19:32 547

原创 Tomcat下前端使用vue-resource向后台servlet发送数据中文乱码

1. 问题描述     由于当前在尝试使用vue.js捣鼓自己的一些小应用,为了vue的纯洁性,使用了vue-resource替代Jquery Ajax向后台servlet发送异步请求,平时一直用ajax的时候好好的,结果这下使用vue-resource竟然出现了请求参数中文乱码的情况。

2017-05-22 20:14:12 4862 4

转载 SwingUtilities的invokeLater和invokeAndWait

原文地址:Swing程序的线程处理前言  因为很多人会见到一些源代码中调用SwingUtilities的invokeLater或者invokeAnd-Wait方法,但是却不理解它们到底起到了什么作用,本文的目标就是让你理解这两个方法的意义。本文是swing编程基础且不可越过的一节。而且,如你所见,本文的副标题是“Swing程序的线程处理”,其实这是对本文内容更好的概括。事件派发线程(EDT)  理解

2017-05-18 19:57:12 202

转载 Java自带线程池和队列详细讲解

Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是限制系统中执

2017-05-12 00:47:13 185

原创 JDK源码笔记之HashMap类和HashSet类

1. class 简介  HashMap和HashSet是使用非常广泛的java集合,其中HashSet本质上就是一个HashMap。数组以整数索引作为下标,而HashMap相当于把任意对象作为下标(中途通过哈希函数转换成哈希地址),实现了常量时间的随机访问,当哈希地址冲突时(机率很小),使用链地址法解决冲突。主要方法有put,get,remove,containsKey,containsValue

2017-05-05 21:17:53 287

原创 JDK1.7源码笔记之ArrayDeque类

1. class 简介  ArrayDeque,顾名思义,就是由数组表示的双端队列,具有队列的所有方法,大部分方法都可以将时间复杂度均摊成常量时间,一般认为它比LinkedList表示的队列和栈的性能要好。2. class内部原理及特点不是线程安全的。不允许向其中添加null。内部是一个循环数组,由头尾下标控制有效数据的出入。数组容量一定为2的幂(方便用位与&代替%取余运算),初始化时不指定容

2017-04-27 18:47:56 379

原创 JDK1.7源码笔记之LinkedList类

1. class 简介  LinkedList是Java集合中常用的容器之一,内部是一个双向链表(不是循环的),实现了List和Deque接口,可以同时当作列表、队列和栈来使用,它提供了一系列对链表元素进行增删改查的方法,有很多功能差不多但名字不同的方法,有些针对空值抛异常而有些则返回特殊值,使用时最好将其上转型到相应的接口以限制它的功能。2. class内部原理及特点不是线程安全的,没有Sync

2017-04-23 18:25:00 613

原创 JDK1.7源码笔记之ArrayList类

1. class 简介  ArrayList是Java集合家族中最常用的容器,本质上是一个长度可变的array,它提供了一系列操作数组的方法,增加元素、删除元素、修改元素、根据索引取元素、迭代、扩容、取子列表、转换成数组等方法。使用ArrayList要注意尽量减少自动扩容的次数,以降低性能开销。2. class内部原理及特点不是线程安全的,没有Synchronized关键字。允许向其中添加nul

2017-04-20 20:21:21 328

原创 JDK1.7源码笔记之StringBuilder和StringBuffer类

1. class 简介  StringBuilder类和StringBuffer类的功能几乎一模一样,除了后者是多线程安全的,而前者主要用于单线程环境,是从性能考虑上对StringBuffer的替代。它们最主要的操作是拼接和插入,还附带转置和删除字符串的操作,String类的一些方法StringBuilder和StringBuffer多少也有一些,但是这两个类的任何操作都是在原字符串上进行的。它们都

2017-04-18 12:48:37 661

原创 JDK1.7源码笔记之String类

1. class 简介  String类代表多个单个字符的集合体,所有的字符串字面常量如”abc”等都是String类的实例,String对象所代表的字符串一旦创建其内部内容就不可改变,也正因为这一点,String是可以共享的。String类提供了很多操作字符串的实用方法,比如字符串比较,复制,连接,切割,截取,替换,匹配,变量字符串化,大小写变换等。但是不管如何操作,原字符串都是不会发生变化的。2

2017-04-16 17:32:23 603

原创 JDK1.7源码笔记之Arrays类

1. class 简介  Arrays类包含很多对数组进行操作的静态方法,可以对数组进行复制、填充、排序、搜索、比较、打印和转换成集合容器等操作。Arrays类的方法频繁地出现在JDK源码(尤其是Java中的数据结构)中,所以我觉得弄清楚Arrays类的内部实现是有必要的,虽然本身就很简单。2. class内部原理及特点Arrays类中的暴露在外部的所有方法都是静态方法。CopyOf方法底层清一

2017-04-15 17:27:05 543

空空如也

空空如也

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

TA关注的人

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