Java8新特性:Lambda表达式和Stream

Lambda表达式

语法

一个lambda表达式就表示一个可被执行的代码块。与函数类似,lambda表达式具有参数列表以及函数体。不同之处在于lambda表达式没有函数名。

1
2
3
4
5
6
7
8
//参数列表
(Type1 param1, Type2 param2, ... , TypeN paramN) -> {
//函数体
statment1;
statment2;
//...;
return statmentN;
}

阅读全文

2018中期学习计划

即将毕业开始工作,拟定2018的中期学习计划。
Java学习过程中一方面要在平时积累代码经验,写出可读性高、维护性好的代码;一方面也要对Java的底层以及一些核心技术有研究。另外每一个服务端工程师都需要具备一些基本的知识,例如Linux、数据结构与算法、网络协议、设计模式等方面。

目标

结合自身目前情况,短时间内的目标可以分为以下几部分:

阅读全文

MySQL5.7 JSON调研报告

MySQL5.7支持对JSON数据的存储,存储时会检查JSON的合法性,不合法插入会失败。
示例:

1
2
3
4
5
6
7
8
9
mysql> CREATE TABLE t1 (jdoc JSON);
Query OK, 0 rows affected (0.20 sec)

mysql> INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO t1 VALUES('[1, 2,');
ERROR 3140 (22032) at line 2: Invalid JSON text:
"Invalid value." at position 6 in value (or column) '[1, 2,'.

阅读全文

Stanford coreNLP学习笔记

stanford coreNLP是目前Java常用的分词器。使用它需要JDK1.8。

项目配置

maven依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.8.0</version>
<classifier>models</classifier>
</dependency>
<!--中文module包-->
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.8.0</version>
<classifier>models-chinese</classifier>
</dependency>

阅读全文

机器学习-梯度下降 学习笔记

高数

  1. 导数定义 函数某一点的变化率 det(y)/det(x)
  2. 微分定义 当x增加时,y会相应增加,使用微分近似的表示增加的值(即保留主要值,忽略误差值)

阅读全文

秋招面经-美团&有赞

八九月秋招时期参与的面试美团和有赞是比较有技术含量的,特此记录。

阅读全文

浅谈动态代理

动态代理是Java中提供的一种动态的实现代理模式的方法,使得开发人员无需手工的编写代理类。要谈动态代理,还是要先介绍何为代理设计模式。

阅读全文

ThreadLocal原理及使用

近期看Java并发编程,总是会提到ThreadLocal,介绍时只是轻描淡写的说可以理解为一个< Thread, Value>的Map,但实际上并不是这样实现的,于是就一直想看看ThreadLocal在JDK中到底是如何实现的。大概看了一下源码中一些比较重要的类和方法,基本上了解了实现原理。

阅读全文

Session、cookie、token概述

我们知道http协议是一个无状态的协议,也就是不具备有记忆功能。但是在现在的网站大多具备软件的功能,因此就需要保持用户的状态,保存状态的技术主要有Session技术、Cookie技术。

Session

Session技术是通过服务端来保存用户状态的。在Java的web容器中,都实现了HttpSession的接口。通过调用HttpServletRequest.getSession方法可以创建一个HttpSession。创建的同时,会生成一个SessionId,并返回到客户端。之后客户端的请求都会带有这个SessionId,服务器通过读取SessionId在服务器中获取对应的Session。

阅读全文

SQL和NoSQL

SQL

结构化查询语言(英语:Structured Query Language,缩写:SQL),是一种特殊目的的编程语言,用于数据库中的标准数据查询语言,是一种基于关系型数据库的语言。关系型数据库是创建在关系模型上的数据库。

阅读全文