- 博客(65)
- 资源 (8)
- 收藏
- 关注
原创 Java基础随笔 BASE64 UrlEncode
import java.net.URLEncoder;import java.net.URLDecoder;public class Test{ public static void main(String[] args) { try{ String s = "我"; byte[] bu = s.getBytes("UTF-8"); for(int i=0;i<bu.length;i...
2020-05-22 15:29:13 2797
原创 JavaScript EventLoop
js 事件循环机制:js事件循环机制:示例MutationObserver<!DOCTYPE html><html> <head> <meta charset="UTF-8"/> <meta name="ES5" content="ES5规范引入了异步的微任务microtask,本轮同步任务结束后,通过E...
2019-06-05 21:35:40 239
原创 Java网络编程 03HTTP
目录HTTP请求客户端请求:服务器响应:HTTP方法CookieCookie概念:Set-CookieCookie作用域:Domain / PathCookie过期:expires / Max-AgeCookie安全性:secure / httponlyCookie编程:CookieManager / CookiePolicy / CookieStore...
2019-02-25 16:08:02 383
原创 Java网络编程 01网络概念
网络网络定义:1:几乎可以实时发送和接收数据的计算机和其它设备以及物理传输介质的集合。2:网络可以大致分为有线网络:网络通常用线缆连接,数据位转换为电磁波,通过线缆移动; 无线网络:无线电波传输数据,许多长距离的传输现在会用通过玻璃纤维发送可见光的光纤电缆来完成,我们常说的wifi就是指的无线网络。3:网络中的每个设备都称之为一个节点,比如:接入网络的计算机,打印机,路...
2019-02-18 16:09:15 341
原创 Lambda -- 04JDK8函数包
JDK8新增加了一个包,java.util.function,这个包下所有的接口都是函数式接口,都是为了引入lambda表达式而设计的。Lambda表达式的一般用法:作为一个《行为值》对象,当作实参传入某个方法。 Lambda表达式的入参:单入参 作用 函数式接口 抽象方法 Lambda表达式 方法签名 Lambda形态...
2019-02-18 10:57:32 359
原创 Lambda -- 03高阶
目录Lambda表达式不等价匿名内部类匿名内部类实现Lambda表达式实现lambda表达式内部,this引用的意义Lambda表达式与设计模式策略模式模板模式观察者模式责任链模式工厂模式Lambda表达式与面向接口编程与函数式接口函数的副作用Lambda表达式不等价匿名内部类Lambda表达式不等价匿名内部类,但是为了理解方便,可以将L...
2019-01-28 13:44:00 257
原创 Lambda -- 02概念
目录Lambda表达式语法行为值 <=> 函数式接口的实例对象行为参数化类型检查、推导、限制语法糖:简易版本语法糖的语法糖:方法引用数学中的函数思想函数调用链:柯里化思想Lambda表达式语法Lambda表达式的一般形式:( params )-> { statements; } 或 ( params )-> statement...
2019-01-28 13:26:19 256
原创 Lambda --01由来配套小示例
一个简单的介绍lambda的小示例:import java.util.*;//数据库表Dish表中的每行记录,都是一道菜class Dish { private final String name; //菜名 private final boolean vegetarian; //是否素菜 private final int calories...
2019-01-13 20:15:04 166
原创 Lambda -- 01基础
目录静态代理模式策略模式lambda思想匿名内部类lambda语法糖行为参数化函数名就一个抽象方法的接口:函数式接口lambda表达式谈Lambda之前,先讲讲静态代理模式,以及策略模式,然后我们在逐步进入正题,lambda思想是怎么一步步的由传统的java编程演变而来的。静态代理模式看示例代码:class MyTask implement...
2019-01-13 16:20:01 457
原创 Stream, RxJava, Reactor区别
Stream, RxJava, Reactor之比较 如果你熟悉Java 8,同时又了解反应式编程(Reactive Programming)框架,例如RxJava和Reactor等,你可能会问:“如果我可以用Java 8 的Stream, CompletableFuture, 以及Optional完成同样的事情,为什么还要用RxJava 或者 Reactor呢?”原因是...
2019-01-10 19:14:18 5862 1
原创 Stream 性能
Stream Performance已经对Stream API的用法鼓吹够多了,用起简洁直观,但性能到底怎么样呢?会不会有很高的性能损失?本节我们对Stream API的性能一探究竟。为保证测试结果真实可信,我们将JVM运行在-server模式下,测试数据在GB量级,测试机器采用常见的商用服务器,配置如下:OS CentOS 6.7 x86_64 CPU Inte...
2019-01-10 19:09:14 779 1
原创 Stream 03
Stream Pipelines前面我们已经学会如何使用Stream API,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?比如Pipeline是怎么执行的,每次方法调用都会导致一次迭代吗?自动并行又是怎么做到的,线程个数是多少?本节我们学习Stream流水线的原理,这是Stream实现的关键所在。首先回顾一下容器执行Lambda表达式的方式,以Ar...
2019-01-10 19:04:12 147
原创 Stream 02
Streams API(II)上一节介绍了部分Stream常见接口方法,理解起来并不困难,但Stream的用法不止于此,本节我们将仍然以Stream为例,介绍流的规约操作。规约操作(reduction operation)又被称作折叠操作(fold),是通过某个连接动作将所有元素汇总成一个汇总结果的过程。元素求和、求最大值或最小值、求出元素总个数、将所有元素转换成一个列表或集合,都属于规约...
2019-01-10 19:02:11 112
原创 Stream 01
Streams API(I) Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator 而和迭代器又不同的是,Stream 可以并行化操作,迭代器只能命令式地、串行化操作。顾名思义,当使用串行方式去遍历时,每个 item 读完后再读下一个 item。而使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后将结...
2019-01-10 18:58:38 373
原创 lambda 03
前言我们先从最熟悉的*Java集合框架(Java Collections Framework, JCF)*开始说起。为引入Lambda表达式,Java8新增了java.util.funcion包,里面包含常用的函数接口,这是Lambda表达式的基础,Java集合框架也新增部分接口,以便与Lambda表达式对接。首先回顾一下Java集合框架的接口继承结构:上图中绿色标注的接口类,...
2019-01-10 18:55:38 253
原创 lambda 02
前言读过上一篇之后,相信对Lambda表达式的语法以及基本原理有了一定了解。对于编写代码,有这些知识已经够用。本文将进一步区分Lambda表达式和匿名内部类在JVM层面的区别,如果对这一部分不感兴趣,可以跳过。不是匿名内部类的简写经过第一篇的的介绍,我们看到Lambda表达式似乎只是为了简化匿名内部类书写,这看起来仅仅通过语法糖在编译阶段把所有的Lambda表达式替换成匿名内部类就可以...
2019-01-10 18:53:41 165
原创 lambda 01
前言Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的。具体原理放到下一篇。本篇我们首先感受一下使用Lambda表达式带来的便利之处。取代某些匿名内部类本节将介绍如何使用Lambda表达式简化匿名内部类的...
2019-01-10 18:51:30 112
原创 Stream 串行流 原理
Stream 为什么会出现?Stream 出现之前,遍历一个集合最传统的做法大概是用 Iterator,或者 for 循环。这种两种方式都属于外部迭代,然而外部迭代存在着一些问题。 开发者需要自己手写迭代的逻辑,虽然大部分场景迭代逻辑都是每个元素遍历一次。 如果存在像排序这样的有状态的中间操作,不得不进行多次迭代。 多次迭代会增加临时变量,从而导致内存的浪费。 ...
2019-01-10 18:49:17 1366 2
原创 Stream笔记 并行流
源码:跟踪Stream并行流工作原理 List<String> lst0 = Arrays.asList("a0are", "a1where", "a2anvato", "a3java", "b4abc", "b5123", "c6hello", "c7world", "d8!!!");
2019-01-08 13:03:41 701
原创 Stream笔记 串行流
AbstractPipeline<?, E_IN, ?> upstream //upstram代表Stream对象Sink<? super E_OUT> downstream //downstream代表Sink对象源建立:Stage0 Head节点 stage0.depth=0;中间操作:创建 操作 主要核心 ...
2019-01-07 19:08:38 346
原创 Java基础Demo -- 简易版JdbcTemplate
简易版的Spring的JdbcTemplate的小示例,就是个意思,表达下泛型方法的写法import java.lang.reflect.*;import java.util.*;class Person { String name; private int age; public String getName() { return name;...
2018-12-28 17:34:44 336
原创 Java基础 -- 01语言基础
目录变量变量类型变量作用域值/引用传递运算符表达式语句控制结构方法类总结:变量变量:是基本存储单元,声明一个变量,用来存放数值或者对象引用。任何变量都有作用域,作用域决定了变量的可见性和生命周期。变量类型java中,8种基本数据类型,以及接口、类,枚举,等。java 8种基本数据类型 类型 关键字 用处 所占字...
2018-12-25 13:43:05 170
原创 Java基础 -- 02类 /接口 /继承
目录类:类的三大特性:封装、继承、多态方法重载:方法重写:静态导入:内部类:内部类:匿名内部类:方法形参的可变参数:接口:类:描述现实世界中一个客观的业务实体或者业务对象。定义类的时候,如果显示的提供了构造函数(无返回类型并且和类名一样的一个方法),那么JVM不在提供默认的空体构造函数。空体构造函数,将类中的数据成员都初始化为默认值,8种基本...
2018-12-25 13:14:39 151
原创 Java基础Demo -- Annotation注解
注解小示例,主要讲解7种方法的用法:返回值 方法 说明 boolean isAnnotationPresent(MyAnno.class) 钉点上是否有该注解 MyAnno getAnnotation(MyAnno.class) 获取某注解 Annotation[ ] getAnnotations() 返回所有注解 MyAnno[...
2018-12-25 00:43:16 208
原创 Java基础Demo -- enum枚举
枚举的小示例:更简单的对枚举的一种认识:我们自己写了个类,这个类里面有数据成员,方法成员。不过我们不用new来实例化这个类,而是enum定义的时候,就定义好了几个枚举值常量,每个常量都是这个类的对象,而且是public static final修饰的对象。每个对象呢,有自己的数据成员私有副本,还可以实现出不同版本的方法成员。 import java.util.*;enum Comp...
2018-12-23 23:29:15 233
原创 Java基础 -- 07枚举enum
目录枚举:枚举的定义:枚举的用法:枚举的运用场景:枚举的小示例:从jdk5开始,java开始支持枚举。枚举:一组常量组织在一起,用花括号{}括起来,然后给它命名个类型,就是枚举。枚举是类类型,只不过不能用new操作符,可以为枚举提供构造函数,添加数据/方法成员,甚至可以实现接口。每个枚举常量都是所属枚举类型的对象,因此,如果为枚举提供了构造函数,那么每个...
2018-12-23 21:36:05 595
原创 Java基础 -- 03异常Exception
异常层次结构:编译(checked)异常:指的是,代码在编译的时候,JVM就检查代码的正确性,从而抛出编译时就已能发现的异常运行(unchecked)异常:指的是,代码在运行的过程中有可能抛出的异常,我们自定义异常时都是继承RuntimeException自定义异常类:都是继承RuntimeException的。之所以自定义业务异常,完全是为了起一个业务名字的异常类,抛开这一点...
2018-12-23 17:10:01 224
原创 Java基础Demo -- 泛型上界的示例
<T extends SuperClass> 泛型上界的定义<? extends SuperClass> 有界通配符的运用普通泛型方法的运用静态泛型方法的运用class Grandpa{ private int x,y; public Grandpa(int x, int y){ this.x = x; this.y = y; } p...
2018-12-22 00:46:49 444
curl curl-7.59.0 64位
2018-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人