Java
zhangdf12345
这个作者很懒,什么都没留下…
展开
-
Spring MVC防御CSRF、XSS和SQL注入攻击
点击打开转载地址本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击)。说说CSRF对CSRF来说,其实Spring3.1、ASP.NET MVC3、Rails、Django等都已经支持自动在涉及POST的地方添加Token(包括FORM表单和AJAX转载 2018-01-08 16:08:19 · 162 阅读 · 0 评论 -
java8 :: 用法 (JDK8 双冒号用法)
JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下。代码其实很简单:以前的代码一般是如此的:1234567891011121314151617public class AcceptMethod { public static void printValur(String str){ System.out.pr...转载 2018-02-22 13:43:15 · 10887 阅读 · 0 评论 -
Java8 Stream原理深度解析
常用的流操作在深入原理之前,我们有必要知道关于Stream的一些基础知识,关于Stream的操作分类,如表1-1所示。表1-1 Stream的常用操作分类(表格引自这里)如表1-1中所示,Stream中的操作可以分为两大类:中间操作与结束操作,中间操作只是对操作进行了记录,只有结束操作才会触发实际的计算(即惰性求值),这也是Stream在迭代大集合时高效的原因之一。中间操作又可以分为无状态(Sta...原创 2018-02-22 15:51:21 · 444 阅读 · 0 评论 -
Java8 函数式编程详解
说起Java8,可能很多人都已经知道其最大的改进,就是引入了Lambda表达式与Stream,毕竟Java9都已近发布了,Java8发布了也已经近三年。那么,今天我们就先来讲一下Java8引入的Lambda表达式,以及由此引入的函数式编程,以及函数式接口。什么是函数式编程函数式编程并不是Java新提出的概念,其与指令编程相比,强调函数的计算比指令的计算更重要;与过程化编程相比,其中函数的计算可以随...转载 2018-02-22 17:14:40 · 254 阅读 · 1 评论 -
Java8初体验(二)Stream语法详解
1. Stream初体验我们先来看看Java里面是怎么定义Stream的:A sequence of elements supporting sequential and parallel aggregate operations.我们来解读一下上面的那句话:Stream是元素的集合,这点让Stream看起来用些类似Iterator;可以支持顺序和并行的对原Stream进行汇聚的操作;大家可以把S...转载 2018-02-23 14:48:58 · 197 阅读 · 0 评论 -
Java 8 特性 – 终极手册
原文链接,原文作者:Andrey Redko ,译者:Justin,校对:郭蕾1.简介毫无疑问,Java 8是自Java 5(2004年)发布以来Java语言最大的一次版本升级,Java 8带来了很多的新特性,比如编译器、类库、开发工具和JVM(Java虚拟机)。在这篇教程中我们将会学习这些新特性,并通过真实例子演示说明它们适用的场景。本教程由下面几部分组成,它们分别涉及到Java平台某一特定方...转载 2018-02-23 16:09:50 · 226 阅读 · 0 评论 -
Java8:Lambdas(一)学习怎样去使用lambda表达式
原文链接 作者:Ted Neward 译者:赵峰了解Java8 中的lambda表达式对开发人员来说没有什么比自己选择的语言或平台发布新版本更令人激动了。Java开发者也不例外。实际上,我们更期待新版本的发布,有一部分原因是因为在不久前我们还在考虑Java的前途,因为Java的创造者——Sun在衰落。一次与死亡的擦肩而过会使人更加珍惜生命。但在这种情况下,我们的热情来源不像以前发布版本时那样,...转载 2018-02-23 17:42:31 · 250 阅读 · 0 评论 -
Java8:Lambdas(二)学习怎样去使用lambda表达式
原文链接 作者:Ted Neward 译者:赵峰Java SE 8的发布很快就到了。伴随着它来的不仅仅是新的语言lambda表达式(同样被称为闭包或匿名方法)——伴随着一些语言特性支持——更重要的是API和library的增强将会使传统的Java核心libraries变的更易于使用。其中大多数的增强和补充是在Collections API中,因为Collections API在整个应用中随处...转载 2018-02-23 17:43:16 · 143 阅读 · 0 评论 -
Java 泛型 super 和 extends 有何不同
<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<? extends T>:是指 “上界通配符(Upper Bounds Wildcards)”<? super T>:是指 “下界通配符(Lower Bounds Wildcards)”为什么要用通配符和边界?使用泛...转载 2018-02-24 10:06:16 · 229 阅读 · 0 评论 -
java8 stream 中Spliterator的使用(一)
java8 stream大家用的比较多,但是发现,其实stream的底层构造函数中,还需要传入Spliterator。查了一下,竟然发现网上对这个类讲的几乎没有。唯一一篇文章写得Spliterator使用有问题的,其实他的并行流是没有用到的。因为,for (int pos = currentSize/2 + currentSize; pos < str.length(); pos++){.....转载 2018-02-24 15:49:40 · 3827 阅读 · 1 评论 -
JAVA8之collect总结
一,collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器)二,预定义收集器包括将流元素归约和汇总到一个值.如下工厂方法返回类型用于toListList<T>把流中所有元素收集到List中示例:List<Menu> menus=Menu.getMenus.stream().collect(Collectors.toList())toSe...转载 2018-02-22 13:41:03 · 3902 阅读 · 0 评论 -
java1.8 foreach
classic forclassic foreachList.forEach()List.stream().forEach()List.parallelStream().forEach 1.classic forfor(int i = 0, l = list.size(); i < l; ++i) { doIt(list.get(i));}2.classic foreachfor...转载 2018-02-22 10:53:09 · 779 阅读 · 0 评论 -
java中,byte转为int为何要&0xff
第一,oxff默认为整形,二进制位最低8位是1111 1111,前面24位都是0;第二,&运算: 如果2个bit都是1,则得1,否则得0;第三,byte的8位和0xff进行&运算后,最低8位中,原来为1的还是1,原来为0的还是0,而0xff其他位都是0,所以&后仍然得0,转载 2018-02-06 14:23:32 · 514 阅读 · 0 评论 -
byte&oxff到底为什么【java中的负数】
近日需要一个将字节数组转换为十六进制字符串输出的函数,于是开始编码如下://该代码存在问题public static String byteToHex(byte[] bt){ StringBuffer sb = new StringBuffer(); for(int i=0;i<bt.length;i++){ String tmpStr转载 2018-02-06 14:24:38 · 467 阅读 · 0 评论 -
细说JDK动态代理的实现原理
关于JDK的动态代理,最为人熟知的可能要数Spring AOP的实现,默认情况下,Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。那么,什么是JDK的动态代理呢?JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。JDK从1.3开始支持动态代理。那么JDK是如何生成动态代理的呢?...转载 2018-02-28 14:13:24 · 1870 阅读 · 0 评论 -
JDK动态代理实现分析
代理是一种设计模式,目的是对外提供统一的接口(这样可以隐藏被代理类不想公开的方法),在此基础上,可以在代理类实现逻辑中加入一些附加操作,该方式不会影响被代理类的原实现。代理分为静态代理和动态代理两种,静态代理就是在代理类内部保存被代理类的属性,直接调用,这种方式很直接,但不易扩展,如果被代理类方法很多且不断增加,那么代理类也要跟着修改,不灵活。这里主要说动态代理,其实说动态代理的文章很多了,本文主...转载 2018-02-28 14:15:06 · 171 阅读 · 0 评论 -
java1.8的几大新特性(二)
七、Date APIJava 8 在包java.time下包含了一组全新的时间日期API。新的日期API和开源的Joda-Time库差不多,但又不完全一样,下面的例子展示了这组新API里最重要的一些部分:public class Test { public static void main(String[] args) { /** *(一) Clock 时...转载 2018-02-22 10:45:14 · 267 阅读 · 0 评论 -
java1.8的几大新特性(一)
一、接口的默认方法与静态方法,也就是接口中可以有实现方法public class Test { public static void main(String[] args) { Formula a=new For(); a.calculate(1); System.out.println(a.sqrt(8)); } int...转载 2018-02-22 10:49:19 · 399 阅读 · 0 评论 -
java8 Stream中Spliterator的使用(二)
java8 stream 中Spliterator的使用(一)给出了Spliterator的两种使用,但是遗憾的是,代码并不正确。这篇说明下原因,并对Spliterator进行更深入的分析。1. 首先来看下sorted方法,将代码调用countNum处注释掉,改为如下方法:parallelStream.sorted().forEach(System.out::print);代码将报错。Except...转载 2018-02-24 16:32:48 · 1599 阅读 · 0 评论