程序开发 Stream 流用法详解 简介 Stream 是 Java 8 引入的一个功能强大的流式处理 API。它允许我们以声明性的方式操作集合(数组、集合等)的元素。通过使用 Stream,我们可以将多个操作连接起来,形成一个流水线,从而简化代码并提高可读性。 Stream 类中包含的方法,可以进行数据筛选、转换、排序、去重、限制、跳过、归约、统计、匹配、查找和遍历等操作。 数据筛选和转换: filter(Predicate<…
程序开发 工具类 Optional 用法详解 Optional 类是 Java 8 中引入的一个用于避免空指针异常的工具类,请注意它是 java.util 包下的一个工具类。 它提供了一系列方法,用于对可能为 null 的对象进行操作,以便更加安全地访问对象的属性和方法。 Optional 里面几乎全部都围绕其中的一个成员变量 value 在运作。 下面是 Optional 类中常用的方法及其用法: of 方法 创建一个包含指定对象的 Opt…
经验教程 设计模式之三种工厂模式 前言 工厂模式是一种创建对象的设计模式,它提供了一个统一的接口来实例化对象,而不需要通过直接调用构造函数来创建。工厂模式可以根据不同的条件返回不同类的实例,从而实现对象的灵活创建。 常见的工厂模式包括:简单工厂模式、工厂方法模式和抽象工厂模式。 详解 1. 简单工厂模式 简单工厂模式,就像它的名字一样,非常简单。只需要创建一个工厂类,根据传入的参数或条件,工厂类决定实例化哪个具体类的对象并返回。 …
经验教程 设计模式之软件设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 6 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 1 开闭原则 对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 想要达到这样的效果,我们需要使用接口和抽象类。 因为抽象灵活性好,适应…
经验教程 设计模式之UML类图 1. 类图概述 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部…
程序开发 50 个 Java 编程技巧 一、语法类技巧 1.1. 使用三元表达式 普通: String title; if (isMember(phone)) { title = "会员"; } else { title = "游客"; } 精简: String title = isMember(phone) ? "会员" : "游客"; 1.2.利用 fo…
程序开发 Java 彻底理解两种动态代理 在 java 中,有两种常见的动态代理实现方式,即基于接口的动态代理(JDK 动态代理)和基于类的动态代理(CGLIB 动态代理),下面就对这两种代理进行解释和举例。 1. JDK动态代理 这种动态代理实现方式是基于接口的,使用 java.lang.reflect.Proxy 类和 java.lang.reflect.InvocationHandler 接口来创建代理对象。代理对象实现了目标接口,…
运维开发 Docker 搭建 vsftpd 以及 ncftp 使用详解 阿蛮君一直以来都不是很喜欢用 ftp,主要是它很慢,不管是上传下载或者仅仅是浏览个目录。但是由于各种原因,还是会用到 ftp,今天就尝试用 docker 搭建 ftp 服务器,并且使用比 ftp 命令很好用的客户端工具 ncftp。 一、搭建ftp 1. docker搭建 docker run -d \ -v /home/docker/vsftpd:/home/vsftpd \ -p 20:20 …
经验教程 Git 提交了错误的代码怎么回滚并和远程仓库同步 可能由于某些原因,比如代码提交到了错误的分支,或者提交了错误的代码,那么就需要进行回滚。 使用 git reset 命令可以回滚到某次提交,根据自己的需要添加参数。 # 撤销commit操作,此时相当于仅进行了add操作 git reset –soft <commit> # 撤销commit操作和add操作,此时相当于仅仅修改了文件 git reset –mixed <com…
经验教程 Docker 搭建 rtsp-simple-server 及相关使用教程 前言 阿蛮君最近接触了 ffmpeg,之前只知道它很强大,但从来没有用过。由于工作上使用 ffmpeg 录制了摄像头的视频流,但是自己没有摄像头,于是想着如何搭建自己的直播流。 后来发现开源的 rtsp 服务器 rtsp-simple-server,它可以读取和发布实时流,并且还可以代理流,以及进行流转换,同时还可以进行身份验证,并可以使用 api 查询和控制服务器。 rtsp-simple-se…
运维开发 用 Shell 脚本把某个目录下的文件内容全部清空但保存文件 想要清空某个文件夹下的内容,但是保留文件应该怎么做呢? 修改需要清空的目录,运行脚本即可。 #!/bin/bash # 指定要清空的目录 dir=/home/docker/nginx/logs # 进入目录 cd $dir # 循环遍历目录下的所有文件 for file in * do # 判断是否为文件,不是则跳过 if [ -f $file ] then # 清空文件内容 echo "…
经验教程 Ningx 配置 tcp 端口转发 平常 Nginx 用得最多的也就是 http 反向代理,包含在 http 块中。 如果需要用到 tcp 端口转发,那么需要在 nginx.conf 文件夹中添加配置。 # 1. 直接转发 stream { server { listen 100; proxy_pass 192.168.1.1:2000; } } # 2. 负载均衡 stream { server { listen 100; pro…