4 zhaojiaxing0216

尚未进行身份认证

我要认证

非学,无以致疑;非问,无以广识

等级
TA的排名 3w+

Spring系列(五)Spring的多线程

1. 多线程Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThredPoolTaskExecutor可以实现基于线程池的TaskExecutor。为了实现异步任务,可以在配置类中通过 @Enable开启对异步任务的支持,并通过实际执行的Bean的方法使用 @Async 注解来声明是一个异步任务2. 代码示例配置类/** * 配置类 * @E...

2020-03-20 10:24:37

Spring系列(四)Spring Aware

1. 什么是Spring AwareSpring的依赖注入的最大的亮点就是所有的Bean对容器的存在是没有意识的,即你可以将你的容器换成别的容器,这时Bean直接的耦合度最低。需要用到Spring容器本身的功能资源的时候,Bean必须意识到Spring容器的存在,才能调用Spring所提供的资源,这就是Spring Aware。若使用了Spring Aware,Bean将会和Spring框架耦...

2020-03-20 10:20:08

Spring Cloud集成ELK完成日志收集实战(elasticsearch、logstash、kibana)

简介对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELK,所以说ELK指的是Elasticsearch、Logstash、Kibana技术栈的结合。ELK对外作为一个日志管理系统的开源方案,能够可靠和安全地从任何格式的任何来源获取数据,...

2020-02-14 14:58:56

使用Comparator实现集合排序

对任意类型集合对象进行整体排序,排序时将此接口的实现传递给Collections.sort方法或者Arrays.sort方法排序.实现int compare(T o1, T o2);方法,返回正数,零,负数各代表大于,等于,小于。用于排序的示例代码如下:实体类:Studentpackage com.zjx;public class Student { private Stri...

2020-02-07 22:07:56

Spring系列(三)Spring AOP详解

文章目录1 什么是面向切面编程1.1 定义AOP术语1.2 Spring对AOP的支持2 通过切点来选择连接点2.1 编写切点2.2 在切点中选择bean3 使用注解创建切面3.1 定义切面3.2 创建环绕通知3.3 处理通知中的参数3.4 通过注解引入新功能4. 在XML中声明切面4.1 声明前置通知和后置通知4.2 声明环绕通知4.3 为通知传递参数4.4 通过切面引入新的功能5. 注入Asp...

2020-02-06 20:29:00

JAVA NIO(四)NIO非阻塞式网络通信

1. 阻塞与非阻塞传统的IO流都是阻塞式的。也就是说,当一个线程调用read()或write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。Java NIO 是非阻塞模式的。当线程从某通道进行读写数据...

2020-02-06 12:21:22

JAVA NIO(三)通道(Channel)

1. 通道(Channel)通道(Channel):由java.nio.Channels包定义的。Channel表示IO源与目标打开的连接。Channel类似于传统中的“流”,只不过Channel本身不能直接访问数据,Channel只能与Buffer进行交互。Channel在java NIO中负责缓冲区的数据传输。Channel本身不存在数据,因此需要配合缓冲区进行传输。Java 为 C...

2020-02-05 22:39:28

JAVA NIO(二)NIO之缓冲区(Buffer)详解

缓冲区在java NIO中负责数据的存取。缓冲区就是数组,用于存储不同数据类型的数据

2020-02-05 21:16:56

JAVA NIO(一)基本概念

Java NIO(New IO)是从java 1.4版本开始引入的一个新的IO API,可以替代标准的java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。Sun官方标榜的特性如下:为所有的原始类型提供(Buffer)缓存支持字符集编码解码方案Channel:一个新的原始I/O抽象支持锁和内存映射文件的文件访问接口提供多...

2020-02-05 21:12:55

IO系列之对象序列化

1. 对象序列化介绍对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点。其他程序一旦获得了这种二进制流,都可以将这种二进制流恢复成原来的Java对象。 简单来讲,对象序列化就是将内存中的对象数据转换为二进制流进行传输的操作。对象序...

2020-02-05 11:41:13

IO系列之缓冲流详解

缓冲流是一个包装类,起到缓冲作用。缓冲流分为-字符缓冲(BufferedReader和BufferedWriter)和字节缓冲流(BufferedInputStream和BufferedOutputStream)

2020-02-04 14:49:27

图的广度优先搜索(java和Python实现)

广度优先搜索:bredth-first search BFS图由节点和边组成。一个节点可能与众多节点相连,这些结点被称为邻居。可以使用广度优先搜索查找最短路径队列是一种先进先出(First in First Out,FIFO)的数据结构。队列只支持两种操作:入队和出队栈是一种后进先出(Last In First Out,LIFO)的数据结构广度优先搜索运行时间为O(点数+边数),这通常写...

2020-02-04 10:22:11

java实现文件夹的拷贝(复制文件夹)

复制文件夹其实就是通过递归复制文件的过程,具体实现如下: /** * 复制文件夹(使用缓冲字节流) * @param sourcePath 源文件夹路径 * @param targetPath 目标文件夹路径 */ public static void copyFolder(String sourcePath,String targetPath) ...

2020-02-03 20:44:08

java实现文件拷贝的七种方式

java拷贝文件的七中方式

2020-02-03 18:24:09

使用Java和Python实现快速排序算法

快速排序采用了分而治之的策略(divide and conquer,D&C),一种著名的递归式问题解决方法。分而治之的工作原理:找出简单的基线条件确定如何缩小问题的规模,使其符合基线条件使用递归实现数组元素求和:java版本 public static int sum(int[] array){ if(array.length <= 1){ ...

2020-02-02 21:59:57

IO系列之内存流

内存流:在内存中读写数据特点:数据在内存中处理比磁盘(硬盘)要更快一些,有时候可能需要临时在内存中保存并处理数据,内存流效率会更高java.io提供了字节内存流和字符内存流:字节内存流:ByteArrayInputStream和ByteArrayOutputStream字符内存流:CharArrayReader和CharArrayWriterByteArrayInputStr...

2020-02-02 21:58:31

IO系列之字节流和字符流

IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流进行输入、输出操作一般都会按照如下步骤进行:通过File类定义一个要操作文件的路径通过字节流或字符流的子类对象为父类对象实例化进行数据的读(输入)、写(输出)操作数据流属于资源操作,资源操作必须关闭java.io包定义了两类流:字节流(JDK 1.0):InputStrea...

2020-02-02 12:14:50

IO系列之使用File类操作文件

1. File类介绍五个核心类:File、InputStream、OutputStream、Reader、Writer一个核心接口:Serializable在整个java.io包里面,File类是唯一一个与文件本身操作有关的类,但是不涉及具体内容。文件本身是指文件的创建、删除等操作2. 通过构造方法设置文件路径public File(String pathname)pathna...

2020-02-01 22:49:03

选择排序算法解析

选择排序是遍历列表,然后每次将最大或者最小的数保存到新的列表,这样就得到了排好序的列表。选择排序时间复杂度为O(n^2)实现选择排序的基本步骤如下:先从第一个元素开始,相邻的两个元素进行比较,最后得出第一次比较中最小的元素;记录好这个最小元素的位置,并把这个元素与第一个元素互换位置;接着再从第二个元素开始,相邻的两个元素再进行比较,得出第二次比较中最小的元素;记录好这个最小元素的位置,...

2020-02-01 10:26:32

使用Java实现链表

链表(Linked List)介绍链表是有序的列表链表是以节点的方式存储的,是链式存储每个节点包含data域,next域:指向下一个节点链表的各个节点不一定是连续存储链表分带头节点的链表和没有头节点的链表。不带头节点的链表为单链表使用代码实现单向链表示例如下:package com.zjx.algorithm.linkedlist;/** * 单向链表的实现 */pub...

2020-01-30 16:29:35

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。