JAVA进阶学习
文章平均质量分 67
滴水穿石,厚积薄发
四川码匠
此生之路,我将走过;走过这一次,便再也无法重来。所有力所能及的善行,所有充盈于心的善意,我将毫不吝惜,即刻倾于。我将不再拖延,再不淡漠,只因此生之路,再也无法重来。
展开
-
JavaEE进阶知识学习-----Java8新特性知识学习-2-函数式接口
四大核心函数接口Consumer 消费型接口: 参数类型 T 返回类型 void 对类型T的对象应用操作Supplier 供给型接口: 参数类型 无 返回类型 T 返回类型为T的对象Function 函数型接口: 参数类型 T 返回类型 R 对了类型为T的对象应用操作,并返回结果Predicate 断言型接口: 参数类型 T 返回类型 boolean 确定类型为T的对象是否满足某约束...原创 2018-02-21 16:49:39 · 209 阅读 · 0 评论 -
JavaEE进阶知识学习-----Java8新特性知识学习-3-方法引用和构造器引用
方法引用当要传递给Lambda体的操作,已经有了实现的方法,可以使用方法引用. (实现抽象方法的参数列表,必须与方法引用方法的参数列表保持一致)。 方法引用:使用操作符“::”将方法名和对象或类的名字分割开,例如: 1. 对象::实例方法 2. 类::静态方法 3. 类::实例方法对象::实例方法示例如下:@Testpublic void test1(){ //...原创 2018-02-21 16:53:07 · 272 阅读 · 0 评论 -
JavaEE进阶知识学习-----Java8新特性知识学习-4-1-StreamAPI
什么是StreamStream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行测操作,可以执行非常复杂的查找,过滤和映射数据的操作,使用Stream API对集合数据进行操作就类似于使用SQL执行的数据库查询查询,Stream API提供了一种高效且易于使用的处理数据的方式。 流(Stream)是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列,“集合讲的是数据,流讲...原创 2018-02-22 08:40:58 · 260 阅读 · 0 评论 -
JavaEE进阶知识学习-----Java8新特性知识学习-4-2-StreamAPI
StreamAPI练习1.给定一个数字列表,返回一个由每一个数的平方构成的列表。@Testpublic void test(){ Integer[] nums = new Integer[]{1,2,3,4,5}; Arrays.stream(nums) .map((x) -> x*x) .forEach(System...原创 2018-02-22 08:42:17 · 254 阅读 · 0 评论 -
JavaEE进阶知识学习-----数据库---Mysql高级知识---Linux安装方法
一、mysql的架构介绍1.Mysql简介Mysql是一个关系型数据库管理系统。高级Mysql部分:mysql内核,sql优化,各种参数常量设定,主从复制,软硬件升级,容灾备份,sql编程。2.lLinux安装Mysq将MySQL-client-5.5.48-1.linux2.6.i386.rpm和MySQL-server-5.5.48-1.linux2.6.i386.rpm复...原创 2018-04-11 22:14:51 · 149 阅读 · 0 评论 -
JavaEE进阶知识学习-----数据库---Mysql高级知识---索引分析
二、索引优化分析1.SQL性能下降的原因查询语句太烂索引失效(索引分单值索引和复合索引)关联查询太多join服务器调优及各种参数设置(缓冲,线程数等)单值索引:在user表中的name字段上建索引create index idx_user_name on user(name)复合索引:在user表中的name字段和email字段上建索引create index ...原创 2018-04-11 22:20:22 · 452 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBoot知识系统学习-1-配置文件
一、Spring Boot学习笔记-配置文件1.yaml语法基本语法:k:(空格)v :表示一对键值对,注意的是空格不能省略,以空格的缩进来控制层级关系,左对齐的一列数据就是同一个层级的。注意的是属性和值也是大小写敏感的。例如spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:...原创 2018-04-11 22:30:09 · 164 阅读 · 0 评论 -
JavaEE扩展知识学习----前端框架react-1
概念理解-模块和组件模块向外部提供特定功能的js文件,在webpack中认为一个js文件,一个css文件,一张图片都是一个模块。出现这一概念的原因在于随着项目的复杂度的增加,例如js的代码变得越来越复杂,难以维护,使用模块就可以简化js的编写,提高运行效率。组件用来实现特定功能效果的代码集合(Html/css/js),一个页面的功能可以看成是由多个特定功能组件构成,在下一个...原创 2018-05-02 17:45:07 · 219 阅读 · 0 评论 -
JavaEE扩展知识学习----前端框架react-2
组件实例的三大属性props,refs,state因为自定义组件最常用就是第二种方式,采用ES6类语法方式class MyComponent2 extends React.Component{ render(){ console.log(this) return <h1>ES6类语法方式自定义组件</h1> ...原创 2018-05-02 17:48:26 · 319 阅读 · 0 评论 -
JavaEE进阶知识学习-----Mysql数据库--Linux安装
一、mysql的架构介绍1.Mysql简介Mysql是一个关系型数据库管理系统。高级Mysql部分:mysql内核,sql优化,各种参数常量设定,主从复制,软硬件升级,容灾备份,sql编程。2.lLinux安装Mysq将MySQL-client-5.5.48-1.linux2.6.i386.rpm和MySQL-server-5.5.48-1.linux2.6.i386.rpm复...原创 2018-05-02 18:07:32 · 102 阅读 · 0 评论 -
JavaSE基础知识学习-----集合之ConcurrentHashMap
ConcurrentHashMap基本知识概述1.ConcurrentHashMap是map接口的实现类,因为HashMap是线程不安全的,因此ConcurrentHashMap可以看成是HashMap的线程安全版本。 2.线程安全的有ConcurrentHashMap,ConcurrentSkipListMap,HashTable,Properties,但是HashTable是过时...原创 2018-05-02 18:12:03 · 124 阅读 · 0 评论 -
JavaEE进阶知识学习-----Java8新特性知识学习
lambda表达式在Java8中引入了一个新的操作符“->”,该操作符称为箭头操作符或Lambda操作符。 左侧:Lambda表示式的参数列表 右侧:Lambda表达式中所要执行的功能语法格式1.无参数,无返回值()-> System.out.print(“Hello Word”);@Testpublic void test1(){ Runna...原创 2018-05-04 16:34:04 · 432 阅读 · 0 评论 -
JavaEE进阶知识学习----Java NIO学习
Java NIO简介Java NIO是一个全新的IO API,可以代替标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式却完全不同,NIO支持面向缓冲区,基于通道的IO操作方式,NIO可以更加高效的进行文件的读写操作。NIO与IO的区别IO:面向流、阻塞IO、无选择器NIO:面向缓冲区、非阻塞IO、有选择器IO传输数据模式 程序与...原创 2018-05-04 16:38:58 · 332 阅读 · 0 评论 -
JavaEE进阶知识学习-----定时任务调度Quartz学习
Quartz简介Quartz概述Quartz是一款强大的开源任务调度框架。主要用到了Builder模式,factory模式,组件模式和链式写法。包括了三个核心概念,分别是调度器,任务和触发器。重要组成部分Job:实现任务逻辑的任务接口。 JobDetail:JobDetail为Job实例提供了许多设置属性,以及JobDataMap成员变量属性,它用来存储特定Job实例的状...原创 2018-05-04 16:39:21 · 223 阅读 · 0 评论 -
JavaEE进阶知识学习----多线程JUC知识学习
多线程基础知识1.概述程序,进程和线程程序:是为了完成某一特定的功能或任务,用某种语言编写的一段静态代码。 进程:是程序的一次执行过程,它自身有产生,存在和消亡的生命周期。 线程:是进程的小单元,是一个程序内部的一条执行路径。多线程的创建和使用创建方法一继承Thread类,重写Run()方法使用说明:定义子类继承Thread类。子类中重写Thre...原创 2018-05-04 16:45:15 · 469 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBoot基础知识学习
前提准备安装和配置Java1.8相关环境。安装和配置Maven,并修改为国内镜像官网下载IDEA旗舰版,并安装。IDEA配置Maven,配置JDK.修改IDEA常用的设置,例如字体,提示等等SpringBoot开始第一步打开IDEA,选择创建新项目,如下所示:第二步点击Next,选择对应的Java版本和项目名,包名,注意项目名只能为小写,如下所示...原创 2018-05-04 16:46:07 · 512 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(一)概述
SpringCloud概述SpringCloud是什么SpringCloud,基于SpringBoot提供的一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,等组件。换句话说是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。SpringBoot和SpringCloudSpringBoot专注于快速方便...原创 2018-05-06 12:52:32 · 599 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(二)实践准备
SpringCloud实践准备项目技术版本SpringCloud版本:Dalston.SR1,SpringBoot版本:1.5.9项目说明项目是使用SpringCloud将四个工程进行整合,microservicecloud整体父工程Project,microservicecloud-api公共子模块Module,microservicecloud-provider-dep...原创 2018-05-06 12:53:10 · 210 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(三)Eureka服务注册与发现
Eureka服务注册与发现Eureka三大角色Eureka Server提供服务注册和发现Service Provider服务提供方将自身服务注册到Eureka, 从而使服务消费者能够找到Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费1.Eureka Server注册在上述项目的父工程中新建microservicecloud-...原创 2018-05-06 12:53:42 · 157 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(四)Eureka集群配置
Eureka集群配置microservicecloud-eureka-7001使EurekaServer服务注册中心,一旦这个出现问题,那么微服务就不能正常的工作,为防止这种情况,所以出现了集群,就是建立多个microservicecloud-eureka-7002,microservicecloud-eureka-7003等服务注册中心。新建microservicecloud-eure...原创 2018-05-06 12:54:24 · 141 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(五)Eureka和Zookeeper区别
Eureka和Zookeeper区别遵循原则不同Eureka遵循AP原则,Zookeeper遵循CP原则,C:强一致性,A:可用性,P:分区容错性著名的CAP理论中提出,一个分布式系统不可能同时满足C(一致性)A(可用性)P(分区容错性),由于分区容错性p是分布式系统中必须保证,因此只能在A和C之间权衡Zookeeper保证CP在Zookeeper中存在一种情况下,当m...原创 2018-05-06 12:54:53 · 1129 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(六)Ribbon负载均衡
Ribbon负载均衡Ribbon概述Spring Cloude Ribbon是基于Netfilx Ribbon实现的一套客户端 负载均衡的工具,简单说,Ribbon是Netfilix发布的开源项目,主要功能就是提供 客户端的软件负载均衡算法,将Netfilix的中间层服务连接在一起,Ribbon客户端组件提供了一系列完善的配置项如连接超时,重试等,简单说,就是在配置文件中列出Load ...原创 2018-05-06 12:55:33 · 225 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(七)Feign负载均衡
Feign负载均衡Feign是一个声明式WebService客户端,使用Feign能够让编写Web Service客户端变得更简单,它的使用方法就是定义一个接口,然后在上面添加注解。SpringCloud对Feign进行了封装,支持SpringMVC注解和HTTPMessageConverters,Feign可以与Eureka和Ribbon组合使用以支持负载均衡。简单讲,只需要创建一个接口,然...原创 2018-05-06 12:56:07 · 144 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(八)Hystrix断路器
Hystrix断路器概述Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统中,许多的依赖不可避免的会调用失败,比如超时,异常等,Hystrix能够保证在一个依赖出问题的情况下, 不会导致整体服务的失败,避免级联故障,以提高分布式系统的弹性。断路器本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝), 向调用方法返回一个预期的,可处...原创 2018-05-06 12:56:57 · 138 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(九)Zuul路由网关
Zuul路由网关概述Zuul包含了对请求的路由和过滤两个主要的功能,其中路由的功能是负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤功能是负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础,Zuul和Eureka进行整合,将Zuul自身注册近Eureka服务治理的应用,同时从Eureka中获取其他微服务的消息,也及时以后的访问服务都是通过Zuu...原创 2018-05-06 12:57:25 · 205 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringCloud(十)SpringCloudConfig配置中心
SpringCloudConfig配置中心概述就前面项目而言,分布面临的问题是配置问题,每一个项目都有一个yml文件,不好运维管理,所有需要一套集中式,动态的配置管理设施,SpringCloud提供了ConfigServer来解决这个问题。SpringCloud Config是为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为 各个不同的微服务应用的环境提供了一个 中心化...原创 2018-05-06 12:58:05 · 196 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBoot基础知识-1-项目初始化知识
前提准备安装和配置Java1.8相关环境。安装和配置Maven,并修改为国内镜像官网下载IDEA旗舰版,并安装。IDEA配置Maven,配置JDK.修改IDEA常用的设置,例如字体,提示等等第一个SpringBoot项目第一步:打开IDEA,选择创建新项目,如下所示:第二步:点击Next,选择对应的Java版本和项目名,包名,注意项目名只能为小写,如下所原创 2018-02-07 15:50:37 · 272 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBoot基础知识-2-配置文件知识
属性配置说明在SpringBoot项目中,属性配置在resource目录下的application.properties中配置,接着我们第一次创建的那个项目说明,如下,做了一些简单的配置后, 再启动项目后使用http://localhost:8080/hello就不能访问项目了,使用http://localhost:8081/gire/hello访问才能正常访问项目, 在Sprin原创 2018-02-07 15:51:47 · 179 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBoot基础知识-3-控制类知识
下面将简单介绍一下controller类的相关用法在上一篇博客中,我们也使用的Controller相关的注解,下面我们来简单的总结一下: 1. @RestController处理Http请求,返回JSON格式的数据。 2. @RequestMapping(value = “/hello”,method = RequestMethod.GET)配置URL映射如果使用多个URL访问同一个的原创 2018-02-07 15:53:31 · 209 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBoot基础知识-4-数据库知识
下面学习的是数据库相关知识数据库使用的是MySQL,持久化技术使用的就是spring-data-jpa,RESTFul API如下 1.pom文件中添加依赖 org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java2.appli原创 2018-02-07 15:54:29 · 215 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBoot基础知识-5-事务管理知识
事务管理事务就是多条操作同时成功或者失败。例如同时新增两个用户,同时插入成功才插入到数据库表中,否则不插入。1.新增了一个Services类,如下所示:@Servicepublic class UserService { @Autowired private UserRepository userRepository; @Transactional原创 2018-02-07 15:55:18 · 182 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBootWeb进阶-6-表单验证知识
下面是接着基础知识的代码整理后,如下所示: 在前面的学习中,我们写了一个插入用户的方法,如下:@PostMapping(value = "/users")public User addUser(@RequestParam("userName")String userName,@RequestParam("age")Integer age){ User user = new Us原创 2018-02-07 17:02:58 · 280 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBootWeb进阶-7-AOP处理请求知识
AOP统一处理请求日志AOP是一种编程范式,与编程语言无关,是一种程序设计思想。AOP:面向切面编程,OOP:面向对象编程,POP:面向过程编程,还有函数式编程等等。AOP实例-记录每一个HTTP请求1.添加依赖<dependency> <groupId>org.springframework.boot</groupId> ...原创 2018-02-08 15:25:32 · 184 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBootWeb进阶-8-异常处理知识
SpringBoot中对异常的统一处理异常处理也可以说成是一种数据传输方式,简单来讲,可以在Services中抛出异常信息,在controller中接收异常信息,然后就可以返回到页面显示了。异常处理实例如果我们需要获取用户的年龄,并根据年龄进行判断,并作出不同的响应。1.首先我们会定义返回结果数据的通用类,如下:public class Msg { //状态码...原创 2018-02-08 15:26:29 · 193 阅读 · 0 评论 -
JavaEE进阶知识学习-----SpringBootWeb进阶-9-单元测试知识
单元测试1.先测试Services中的方法/** * 根据id查询一个用户 * @param id * @return */public User findOne(Integer id){ return userRepository.findOne(id);}2.在项目目录中的test/java/com.study.springbootdemo中新建测试类...原创 2018-02-08 15:27:14 · 276 阅读 · 0 评论 -
JavaEE进阶知识学习-----开发工具IDEA知识学习
初始设置安装软件成功后,选择新建一个项目,改变软件布局View-Toolbar/Tool buttons常用设置1.设置主题2.设置编辑区的主题 也可以在http://www.riaway.com/网站下载其他的编辑区主题。下载后导入就可以使用了。3.设置项目文件编码4.显示行号5.设置字体6.设置忽略大小写提示...原创 2018-02-18 17:23:48 · 228 阅读 · 0 评论 -
JavaEE进阶知识学习-----Java8新特性知识学习-1-Lambda表达式
lambda表达式在Java8中引入了一个新的操作符“-&gt;”,该操作符称为箭头操作符或Lambda操作符。 左侧:Lambda表示式的参数列表 右侧:Lambda表达式中所要执行的功能语法格式1.无参数,无返回值()-&gt; System.out.print(“Hello Word”);示例如下:@Testpublic void test1(){ ...原创 2018-02-18 17:25:18 · 291 阅读 · 0 评论 -
JavaEE进阶知识学习----Java NIO-1
Java NIO简介Java NIO是一个全新的IO API,可以代替标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式却完全不同,NIO支持面向缓冲区,基于通道的IO操作方式,NIO可以更加高效的进行文件的读写操作。NIO与IO的区别IO:面向流、阻塞IO、无选择器NIO:面向缓冲区、非阻塞IO、有选择器IO传输数据模式 程序与原创 2018-02-02 11:27:49 · 310 阅读 · 0 评论 -
JavaEE进阶知识学习----Java NIO-2
分散读取和聚集写入分散读取:将通道中的数据分散到多个缓冲区中。 聚集写入:将多个缓冲区中的数据聚集到通道中。 分散读取实例@Testpublic void test4() throws IOException{ RandomAccessFile rFile = new RandomAccessFile("1.txt", "rw"); //获取通道 FileCh原创 2018-02-02 11:28:51 · 264 阅读 · 0 评论 -
JavaEE进阶知识学习----Java NIO-3
使用非阻塞式实现(重点)//客户端@Testpublic void client() throws IOException{ //获取通道 SocketChannel sChannel = SocketChannel.open(new InetSocketAddress("127.0.0.1",9898)); //切换到非阻塞模式 sChannel.conf原创 2018-02-02 11:30:17 · 547 阅读 · 0 评论