自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(321)
  • 资源 (6)
  • 收藏
  • 关注

原创 Window cmd 强制删除文件夹

【代码】Window cmd 强制删除文件夹。

2023-04-07 10:38:15 532

原创 mardwon测试看看

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S

2022-08-09 17:40:49 210

原创 Maven 指定 Java 编译版本

Maven使用的默认Java编译器版本是Java 1.5。为了使Maven使用Java编译器的较新版本编译Java代码,需要在项目的POM文件(pom.xml)中显式指定Java编译器。指定Java编译器版本的确切方式取决于你使用的是Java 8或更早版本,还是Java 9或更高版本。从Java 9开始,Java获得了一些模块,这些模块在短期内会使编译有些复杂,但从长期来看应该会有所帮助。1.适用于Java 8和更早版本的Maven Java编译器从Java 8和更早版本开始,有两种方法可.

2020-07-24 10:34:28 1270

原创 Maven常用命令解析

Maven包含一系列可以执行的命令。 Maven命令是构建生命周期,构建阶段和构建目标的混合体,因此可能会有些混乱。我将在本教程中描述常见的Maven命令,并说明它们执行的生命周期,阶段和目标。1.Maven命令结构Maven命令包含两个元素:mvn一个或多个构建生命周期,构建阶段或目标一个Maven命令示例:mvn clean该命令由执行Maven的mvn命令以及名为clean的构建生命周期组成。这是另一个Maven命令示例:mvn cl...

2020-07-23 11:19:33 348

原创 用Maven构建 Fat JAR

Maven可以将你的Java项目构建成一个Fat JAR。 Fat JAR是一个单个JAR文件,其中包含项目中所有已编译的Java类以及项目所依赖的所有JAR文件。当你需要构建可执行的JAR文件时,Fat JAR会很方便。如:微服务。你可以将你的微服务及其所有依赖项打包到一个JAR文件中。这使执行变得更加容易,因为你不必在类路径中列出微服务所依赖的所有JAR文件,这简化了启动微服务的命令。如果你需要将应用程序打包在Docker容器中,Fat JAR也很方便。无需将应用程序依赖的每个JAR文件添加到D

2020-07-21 15:09:47 2578

原创 Maven教程:Hello World

在本教程中,我将创建第一个Maven项目,可以说是Maven Hello World项目。创建Maven项目意味着创建POM文件和标准目录布局。实际上,该项目并不是真正的“ Maven项目”,它只是一个用Maven构建的Java项目。注意:这里默认你已成功安装Maven。1.创建项目目录确保已安装Maven后,请在硬盘上的某个位置创建一个新目录。该目录将是你的第一个Maven项目的根目录。2.创建pom.xml文件创建项目根目录后,请在目录内创建一个名为pom.xml的文..

2020-07-20 17:56:26 783

原创 Java NIO AsynchronousFileChannel 异步读写文件

在Java 7中,AsynchronousFileChannel已添加到Java NIO。 AsynchronousFileChannel使异步读写文件成为可能。接下来将说明如何使用AsynchronousFileChannel。1.创建一个AsynchronousFileChannel可以通过其静态方法open()创建一个AsynchronousFileChannel:Path path = Paths.get("data/test.xml");AsynchronousFileCha.

2020-07-17 15:37:12 846

原创 Java NIO Files 的常用方法

Java NIO Files类(java.nio.file.Files)提供了几种操作文件的方法,这里介绍一些最常用的方法。java.nio.file.Files类可与java.nio.file.Path实例一起使用,因此在使用Files类之前,需要了解Path类。1.Files.exists()Files.exists()方法检查文件系统中是否存在给定的Path。如果你打算创建一个新目录,则首先要创建相应的Path实例,然后再创建目录。由于Path实例可能会指向文件系统中不存在..

2020-07-16 17:24:20 1415

原创 java io中正确的行尾结束符

Java io 中行结束字符:"\r\n"(Windows) "\n"(Unix)

2020-07-15 15:16:35 653

原创 Java NIO vs. IO

在学习了Java NIO和IO API时,很快就会想到一个问题:什么时候应该使用IO,什么时候应该使用NIO?在本文中,我将尝试阐明Java NIO和IO之间的差异,它们的用例以及它们如何影响代码的设计。1.Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要区别。IO NIO 面向流 面向Buffer 阻塞IO 非阻塞IO Selectors 2.面向流 vs 面向缓冲区Java NIO和IO之间的第一个大...

2020-07-15 11:08:57 190 1

原创 Java NIO Pipe

Java NIO Pipe是两个线程之间的单向数据连接,Pipe具有source channel和sink channel。写数据到sink channel,然后可以从source channel读取此数据。这是Pipe原理的说明:1.创建Pipe可以通过调用Pipe.open()方法来打开Pipe:Pipe pipe = Pipe.open();2.写数据到Pipe要写入Pipe,需要访问sink channel:Pipe.SinkChannel s...

2020-07-14 09:53:43 181

原创 Java NIO DatagramChannel

Java NIO DatagramChannel是可以发送和接收UDP数据包的通道,由于UDP是无连接的网络协议,因此默认情况下,不能像从其他通道一样对DatagramChannel进行读写,但可以发送和接收数据包。1.打开DatagramChannelDatagramChannel channel = DatagramChannel.open();channel.socket().bind(new InetSocketAddress(9999));本示例打开一个Datagra..

2020-07-13 17:22:57 162

原创 openfire更新插件无效问题

更改插件打包成jar替换无效果。目前解决方法:全部更新!!!

2020-07-09 15:51:13 290

原创 Java NIO ServerSocketChannel

Java NIO ServerSocketChannel是一个监听传入的TCP连接的通道,就像标准Java Networking中的ServerSocket一样。 ServerSocketChannel类位于java.nio.channels包中。一个例子:ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();serverSocketChannel.socket().bind(new InetSocketAdd

2020-07-07 14:24:14 148

原创 Java NIO SocketChannel

Java NIO SocketChannel是连接到TCP Socket的Channel,它等效于Java Networking Socket。有两种创建SocketChannel的方法:打开一个SocketChannel并连接到服务。当传入的连接到达ServerSocketChannel时,创建SocketChannel。1.打开一个SocketChannel这是打开SocketChannel的方法:SocketChannel socketChannel = SocketCh..

2020-07-06 10:47:17 197

原创 Java NIO FileChannel

Java NIO FileChannel是连接到文件的Channel。使用文件Channel,你可以从文件读取数据,也可以将数据写入文件。 Java NIO FileChannel类是标准Java IO API的一种替代方式。无法将FileChannel设置为非阻塞模式,它始终以阻止模式运行。1.打开一个FileChannel在使用FileChannel之前必须打开它。你不能直接打开FileChannel,需要通过InputStream,OutputStream或RandomAcces.

2020-07-02 10:57:36 178

原创 Java NIO Selector

Java NIO Selector是一个组件,可以检查一个或多个Java NIO Channel实例,并确定那些通道可供使用,read或write。这样,单个线程可以管理多个Channel,从而可以管理多个网络连接。1.为什么要使用Selector?仅使用单个线程来处理多个Channel的优点是:只需要更少的线程来处理Channel。实际上,你可以使用一个线程来处理所有Channel。线程之间的切换对于操作系统而言是昂贵的,并且每个线程也占用操作系统中的一些资源(内存)。因此,使用的线程越少越.

2020-07-01 11:13:02 163

原创 Java NIO Channel 与 Channel 之间的传输

在Java NIO中,如果其中一个通道是FileChannel,则可以将数据直接从一个通道传输到另一个通道。 FileChannel类具有transferTo()和transferFrom()方法,该方法可以完成此操作。1.transferFrom()FileChannel.transferFrom()方法将数据从源通道传输到FileChannel。这是一个简单的示例:RandomAccessFile fromFile = new RandomAccessFile("fromFile.t.

2020-06-30 16:05:06 187

原创 Java NIO Scatter 和 Gather

Java NIO带有内置的scatter和gather支持。scatter和gather是在读取和写入Channel中使用的概念。从Channel的scatter read是将数据读取到多个缓冲区。因此,将数据从通道“分散”到多个缓冲区中。gather write到Channel是一种写操作,它将来自多个缓冲区的数据写到单个Channel中。因此,将来自多个缓冲区的数据“收集”到一个通道中。在需要分别处理传输数据的各个部分的情况下,scatter和gather可能非常有用。例如,如果消息由标题和

2020-06-29 10:04:44 202

原创 Java NIO Channel

Java NIO ChannelJava NIO通道类似于流,但有一些区别:你可以从Channel中读取数据,也可以写数据到Channel。流通常是单向的(读或写)。 Channel可以异步读写。 Channel始终将数据读到Buffer或从Buffer写入。如上所述,你将数据从Channel读取到Buffer中,然后将数据从Buffer写入Channel中:2.Channel的实现以下是Java NIO中最重要的Channel实现:FileChannel Datagr.

2020-06-28 10:04:01 136

原创 Java NIO Buffer

与NIO Channel进行交互时,将使用Java NIO Buffer。前面提到过,数据从Channel读到Buffer,或从Buffer写到Channel。缓冲区本质上是一个内存块,可以在其中写入数据,然后在以后再次读取。该内存块在NIO中封装成Buffer对象,该对象提供了一组方法,可以更轻松地使用该内存块。1.Buffer的基本使用使用Buffer读取和写入数据通常遵循以下四个步骤:写数据到 Buffer 调用buffer.flip() 从Buffer读取数据 调用..

2020-06-26 22:22:58 131

原创 Java NIO 中核心概念

Java NIO由以下核心组件组成:ChannelsBuffersSelectorsJava NIO本身有很多的类和组件,但是我认为Channel,Buffer和Selector构成了API的核心。其余的组件(例如Pipe和FileLock)仅是实用程序类,可以与这三个核心组件结合使用。因此,重点介绍这三个组件。1.Channels 和 BuffersChannel 有点像流。可以从Channel中将数据读到Buffer,也可以将数据从Buffer写到Channel:..

2020-06-24 10:38:07 155

原创 Java NIO 简介 - 基本概念

Netty 是基于 Java NIO 的封装。Java NIO(新IO)是Java的替代IO API(来自Java 1.4),意味着可以替代标准Java IO和Java Networking API。 Java NIO提供了与标准IO API不同的IO处理方式。1.Java NIO: Channels 和 Buffers在标准IO API中,你可以使用字节流和字符流。在NIO中,你可以使用通道和缓冲区。数据总是从通道读取到缓冲区,或从缓冲区写入到通道。2.Java NIO: No..

2020-06-23 16:14:31 131 1

原创 Java 非阻塞式通信中需要了解的概念:Future

Java 非阻塞式通信中需要了解的概念:FutureNetty 中ChannelFuture 和Promise 都是继承java.util.concurrent.Future,所以有必要好好总结一下。1.Future 的介绍、用途简而言之,Future表示异步计算的将来结果–在处理完成后最终会出现在Future中。耗时间运行的方法非常适合异步处理和Future接口。这使我们能够在等待Future中封装的任务完成之前执行其他一些操作。可以利用Future的异步特性的一些操作:...

2020-06-22 16:06:12 310

原创 Netty 中 Future 和 Promise 的区别

Future 和 Promise 是非常相似的概念,不同之处在于,Future 是针对尚不存在的结果的只读容器,而 Promise 可以被写入(通常只能写入一次)。可以将Java 8 CompletableFuture和SettableFuture视为 Promise,因为可以设置它们的值,但是它们也实现了Future接口,因此对于客户端而已它们没什么区别。Future 的结果由异步计算的结果确定。请注意,必须使用Callable或Runnable初始化FutureTask(经典的Future),没有无

2020-06-21 20:52:59 831

原创 Netty:测试 Encoder 和 Decoder

最近用了一段时间的Netty,现构建了一个编码器/解码器管道,以测试编码器和解码器在没有发送真实的消息时是否在正常工作。方便的是,Netty 有个EmbeddedChannel,使测试变得非常轻松。假设我们有一条消息“ Foo”,我们想通过网络发送。它仅包含一个整数值,因此我们将其发送并在另一侧重建“ Foo”。 我们可以编写以下编码器来执行此操作:public static class MessageEncoder extends MessageToMessageEncoder<F..

2020-06-20 20:35:20 552

原创 Netty 任务调度

Netty 中也可以进行任务调度。1.60秒后调用一次Channel channel = new LocalChannel();channel.eventLoop().schedule(() -> { System.out.println("60s!");}, 60, TimeUnit.SECONDS);2.每隔60秒调用一次ScheduledFuture sf = channel.eventLoop().scheduleAtFixedRate(() -&..

2020-06-19 15:34:34 658

原创 Netty SSL 验证实例

Netty 官方支持 SSL 验证,并自带有实例代码,下面代码示例基本源自官方 demo:1.服务端package com.learn.netty.ssl;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOption;imp.

2020-06-19 15:11:39 721

原创 Netty TCP Hello 实例

TCP ServerNetty的服务之一是TCP服务。要创建Netty TCP服务,必须:创建一个EventLoopGroup创建和配置ServerBootstrap创建一个ChannelInitializer启动服务器这是一个代码示例,显示了如何创建Netty TCP服务:EventLoopGroup group = new NioEventLoopGroup();try{ ServerBootstrap serverBootstrap = new ...

2020-06-18 19:53:04 238

原创 Netty 核心: ChannelPipeline

Netty ChannelPipeline是Netty中非常核心的概念。每个SocketChannel包含一个ChannelPipeline。 ChannelPipeline包含ChannelHandler实例的列表。当数据进入和写出SocketChannel时,将调用这些ChannelHandler实例。ChannelHandler接口具有两个子接口:ChannelInboundHandlerChannelOutboundHandler你可以将ChannelInboundHan..

2020-06-17 20:46:06 204

原创 Netty 几个重要的核心组件

为了了解Netty的工作原理,对Netty的内部设计有一个总体了解是很有用的。几个核心概念:BootstrapEventLoopGroupEventLoopSocketChannelChannelInitializerChannelPipelineChannelHandler这些概念如何相互关联如下所示:BootstrapNetty中的Bootstrap类负责引导,引导过程包括启动线程,打开套接字等。EventLoopGroupNetty...

2020-06-15 19:39:24 295

原创 Java Netty Codecs 程序

服务端定义了一个Handler和三个Decoder。Handler接收客户端的信息,然后传递给decoder过滤处理。1.服务端package com.learn.netty.codecs;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.E.

2020-06-15 11:13:46 188

原创 Java Netty Handler 程序

服务端定义了2个Handler,第一个Handler处理从客户端接收的数据并传递到第二个Handler。第二个Handler输出并返回给客户端。1.服务端package com.learn.netty.handler;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.n.

2020-06-15 10:29:48 201

原创 Java Netty Echo 程序

使用 Netty 实现的 Echo 程序:客户端发送信息,服务端原样返回。1.服务端package com.learn.netty.echo;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.EventLoopGroup;import io.

2020-06-15 10:19:29 171

原创 Java Netty 教程

Netty是用于Java的高性能IO工具包。 Netty是开源的,因此可以自由使用它,甚至可以为它做出贡献。该Netty教程将解释Netty的工作方式以及如何开始使用Netty。但本教程不会涵盖Netty的每一个细节。Netty官网Netty网站地址为:https://netty.io/Netty优势通常,与使用标准Java实现的应用程序相比,Netty使构建可扩展,强大的网络应用程序变得容易得多。 Netty还包含一些特定于操作系统的优化,例如在Linux上使用EPOLL等。...

2020-06-14 19:30:15 389

原创 收藏一些有用的开发类型、下载类型和工具类型网址

网站收藏集合:1.http://www.allitebooks.org/原版IT开发类书籍PDF下载网站,文件超清晰。2.https://convertio.co/zh/文件转换网站,支持图片格式转换、文档格式转换、小说格式转换、视频格式转换等。3.https://codebeautify.org/开发时会用到的各种在线工具,谁用谁知道。后续不定时更新!...

2020-06-14 16:12:42 10201

原创 Java 8 接口 接口中所有方法自动是 public ,所有接口中定义方法 public 关键字不是必须的。

Java 8 接口接口中所有方法自动是 public ,所有接口中定义方法 public 关键字不是必须的。

2020-06-09 22:33:57 728

原创 Java Comparable 接口

Comparable 接口 compareTo 方法应该兼容 equals 方法:当 x.equals(y) 时,x.compareTo(y) 应该等于 0。大多数类都是遵循这一原则。但典型的 BigDecimal 没有遵循假设 x = new BigDecimal("1.0") ,y = new BigDecimal("1.00")此时,x.equals(y) 等于 false,x.compareTo(y) 等于 0。带有继承关系的接口方法实现:class Employee im.

2020-06-09 22:31:55 139

原创 java fork任务为多个小任务以提升任务性能

在执行一个大任务时,可以将其fork为多个小任务,最后join得到结果。fork任务主要是要设置一个阀值THRESHOLD,不宜过小,也不宜过大,否则起不到提升性能的作用。package com.learn.corejava.threading;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.RecursiveTask;import java.util.function.DoublePredicat.

2020-06-08 16:31:58 184

原创 Java 以线程池的方式统计文件夹

上一篇文章中https://www.zhblog.net/go/java/tutorial/java8-future-task?t=590是使用多线程统计文件夹,每个文件夹新启一个线程统计。现引入线程池进行管理。package com.learn.corejava.threading;import java.io.File;import java.io.FileNotFoundException;import java.util.ArrayList;import java.util.L.

2020-06-08 16:20:40 205

精通CSS:高级Web标准解决方案(第2版)中文扫描版源代码及图片素材

精通CSS:高级Web标准解决方案(第2版)中文扫描版源代码及图片素材

2015-02-10

EasyUI+v1.3.4官方API中文版

EasyUI+v1.3.4官方API中文版

2015-02-10

图文验证码

里面有几个不同类型的验证码,比如 字母+中文字 字母+数字 之类的 可供选择 每一个均有漂亮的页面实例

2014-03-17

pager-taglib分页

通过将后台数据打包成List,直接将List传到jsp页面 pager-lib插件自行分页 简单小例子,部署可直接运行,里面包括jar包,所以有点大

2014-03-12

物业管理毕业小项目(s2h)

用frameset+tree布局,struts2+hibernate实现的增删改查

2013-11-14

Hibernate官方文档

Hibernate官方文档,内含新手教程指导(教你怎么做属性自己的第一个Hibernate小程序)

2013-05-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除