Java 8新特性之 Lambd和StreamAPI
lambda和stream Api 都是Java8的新特性 首先 简单介绍一下java8
Java8 (jdk 1.8) 是Java语言开发的一个主要版本
Java8 是Oracle 公司于2014年3月发布,可以看成是自Java5以来最具革命性的版本。
Java8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。
简介:
速度更快
代码更少 :增加新的语法 lambda表达式
强大的 Stream API
便于并行
最大化减少空指针异常 Optional
Nashorn引擎,允许在JVM上运行JS应用
Lambda & Stream API
————————————————版权声明:本文为CSDN博主「cm_fighting」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_41793969/article/details/105489106
1. Lambda表达式1.1 为什么要使用lambda表达式 Lambda是一个匿名函数,我们可以把lambda表 ...
分布式文件存储解决方案-FastDFS
分布式文件存储-FastDFFastDFS简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的 问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重 高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件 上传、下载等服务。
FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行 文件上传、下载,通过Tracker server 调度终由 Storage server 完成文件上传和下 载。Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一 些策略找到Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服 务器。Storage server 作用是文件存储,客户端上传的文件 ...
MybatisPlus入门(2)
一、性能分析性能分析拦截器,用于输出每条 SQL 语句及其执行时间SQL 性能执行分析,开发环境使用,超过指定时间,停止运行。有助于发现问题
1、配置插件(1)参数说明
参数:maxTime: SQL 执行最大时长,超过自动停止运行,有助于发现问题。
参数:format: SQL是否格式化,默认false。(2)在 MybatisPlusConfig 中配置
123456789101112/** * SQL 执行性能分析插件 * 开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长 */@Bean@Profile({"dev","test"})// 设置 dev test 环境开启public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor(); performanceIntercept ...
MybatisPlus入门(1)
一、简介官网:http://mp.baomidou.com/
参考教程:http://mp.baomidou.com/guide/
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
二、特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键 ...
通用Mapper笔记
1 引入1.1 作用替我们生成常用增删改查操作的 SQL 语句。
1.2 代码官方发布地址https://gitee.com/free
https://gitee.com/free/Mapper/wikis/1.1-java?parent=1.integration
2 快速入门2.1创建测试数据1234567891011121314CREATETABLE`tabple_emp`( `emp_id` intNOTNULLAUTO_INCREMENT, `emp_name` varchar(500)NULL, `emp_salary` double(15,5)NULL, `emp_age` intNULL, PRIMARYKEY(`emp_id`));INSERT INTO `tabple_emp` (`emp_name`,`emp_salary`,`emp_age`)VALUES('tom','1254.37','27');INSERT INTO `tabple_emp` (`emp_name`,`emp_salary`,`e ...
SpringBoot整合动态验证码
基于 springBoot 和Google Kaptcha 验证码组件
后端生成验证码导入依赖
12345<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version></dependency>
编写Kaptcha配置类
12345678910111213141516171819202122232425262728293031package com.nowcoder.community.config;import com.google.code.kaptcha.Producer;import com.google.code.kaptcha.impl.DefaultKaptcha;import com.google.code.kaptcha.util.Config;import org.springframework.context.ann ...
SpringBoot整合邮箱发送邮件
1. 邮箱配置要确保使用的邮箱开启了客户端登录服务,以QQ邮箱为例:
将下面两个服务全部开启,然后生成一个授权码(相当于独立密码非QQ密码)
2. 简单邮件发送新建SpringBoot项目
引入依赖
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>
配置application
1234spring.mail.username=1393236279@qq.comspring.mail.password=lntjqzupsepub # 上面的授权码spring.mail.host=smtp.qq.comspring.mail.properties.mail.smtp.ssl.enable=true
编写测试类
1234567891011121314151617181920@SpringBootTest@ ...
Node.js中使用MongoDB数据库
1.模块化相关规范1.1 模块化概述传统开发模式的主要问题① 命名冲突② 文件依赖**通过模块化解决上述问题 **
模块化就是把单独的一个功能封装到一个模块(文件)中,模块之间相互隔离,但是可以通过特定的接口公开内部成 员,也可以依赖别的模块
模块化开发的好处:方便代码的重用,从而提升开发效率,并且方便后期的维护
1.2 浏览器端模块化规范
AMDRequire.js (http://www.requirejs.cn/)
CMDSea.js (https://seajs.github.io/seajs/docs/)
1.3 服务器端模块化规范
CommonJS
① 模块分为 单文件模块 与 包② 模块成员导出:module.exports 和 exports③ 模块成员导入:require(‘模块标识符’)
1.4 大一统的模块化规范 – ES6模块化在 ES6 模块化规范诞生之前,Javascript 社区已经尝试并提出了 AMD、CMD、CommonJS 等模块化规范。
但是,这些社区提出的模块化标准,还是存在一定的差异性与局限性、并不是浏览器与服务器通用的模块化标准 ...
Node.js中使用MongoDB数据库
今日目标1.能够了解模块化的相关规范2.了解webpack3.了解使用Vue单文件组件4.能够搭建Vue脚手架5.掌握Element-UI的使用
1.模块化的分类A.浏览器端的模块化 1).AMD(Asynchronous Module Definition,异步模块定义) 代表产品为:Require.js 2).CMD(Common Module Definition,通用模块定义) 代表产品为:Sea.js
B.服务器端的模块化 服务器端的模块化规范是使用CommonJS规范: 1).使用require引入其他模块或者包 2).使用exports或者module.exports导出模块成员 3).一个文件就是一个模块,都拥有独立的作用域
C.ES6模块化 ES6模块化规范中定义: 1).每一个js文件都是独立的模块 2).导入模块成员使用import关键字 3).暴露模 ...
Node.js中使用MongoDB数据库
本文目标
能够说出什么是路由
能够说出前端路由的实现原理
能够使用Vue-Router实现前端路由
能够实现嵌套路由,动态路由
能够实现命名路由以及编程式导航
1.路由的概念路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源。那么url地址和真实的资源之间就有一种对应的关系,就是路由。
路由分为前端路由和后端路由1).后端路由是由服务器端进行实现,并完成资源的分发2).前端路由是依靠hash值(锚链接)的变化进行实现
后端路由性能相对前端路由来说较低,所以,我们接下来主要学习的是前端路由前端路由的基本概念:根据不同的事件来显示不同的页面内容,即事件与事件处理函数之间的对应关系前端路由主要做的事情就是监听事件并分发执行事件处理函数
2.前端路由的初体验前端路由是基于hash值的变化进行实现的(比如点击页面中的菜单或者按钮改变URL的hash值,根据hash值的变化来控制组件的切换)核心实现依靠一个事件,即监听hash值变化的事件
1234window.onhashchange = function(){ ...






