自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java执行Linux命令过程的源码分析及细节把控(开发“Java命令执行器”前期准备)

接着Java执行windows命令过程的源码分析及细节把控(开发“Java命令执行器”前期准备)_江南煮酒的博客-CSDN博客说:1、在Linux系统中没有/c和/k,只有一个/bin/bash -c 它和直接/bin/bash 的区别在于 "-c" 命令可以让 bash 将一个字符串作为完整的命令来执行,这样就可以将 sudo 的影响范围扩展到整条命令。可以看到,/bin/bash -c后面接命令,而/bin/bash后面接执行的脚本。2、Java执行Linux命令过程...

2021-11-22 14:57:36 1828

原创 Java执行windows命令过程的源码分析及细节把控(开发“Java命令执行器”前期准备)

1、执行命令的方法Runtime.exec("cmd",...)方法:详见Java Runtime类源码分析(开发“Java命令执行器”前期准备)_江南煮酒的博客-CSDN博客ProcessBuilder.command("cmd",...).start():详见Java ProcessBuilder类源码分析(开发“Java命令执行器”前期准备)_江南煮酒的博客-CSDN博客...

2021-11-21 20:27:46 2309

原创 Java Process类源码分析(开发“Java命令执行器”前期准备)

什么是Process?ProcessBuilder.start()和Runtime.exec方法创建一个本机进程并返回一个Process子类的实例,该子类可用于控制进程并获取有关它的信息。 Process类提供了执行进程输入、执行输出到进程、等待进程完成、检查进程退出状态以及销毁(杀死)进程的方法。Process类中定义的方法介绍public OutputStream getOutputStream():返回连接到子进程的正常输入的输出流。 流的输出通过管道传输到此Process对象表示的

2021-11-19 11:21:39 799

原创 Java ProcessBuilder类源码分析(开发“Java命令执行器”前期准备)

什么是ProcessBuilder类?此类用于创建操作系统进程。 每个ProcessBuilder实例管理一个进程的属性。 start()方法使用这些属性创建一个新的Process实例。 可以从同一实例重复调用start()方法以创建具有相同或相关属性的新子进程。每个进程构建器管理的进程属性:命令,表示要调用的外部程序文件及其参数(如果有)。 哪些字符串列表表示有效的操作系统命令取决于系统。 环境,依赖于系统的映射(从变量到值的)。初始值是当前进程环境的副本(可以System.gete.

2021-11-16 16:17:47 1810 1

原创 Java Runtime类源码分析(开发“Java命令执行器”前期准备)

介绍Runtime类中执行windows/linux命令的所涉及的定义方法在Java中什么是Runtime?每个 Java 应用程序都有一个Runtime类的单个实例,它允许应用程序与应用程序运行的环境进行交互。(任何人) 可以从getRuntime方法获取当前运行时。Runtime中定义方法解析//返回与当前 Java 应用程序关联的运行时对象。 Runtime类的大多数方法都是实例方法,必须针对当前运行时对象调用。 public static Runtime getRunt

2021-11-16 13:30:15 1294 1

原创 Java URL、URLConnection和URLPermission

URLURL类表示统一资源定位符,即指向万维网上“资源”的指针。 资源可以是简单的文件或目录,也可以是对更复杂对象的引用,例如对数据库或搜索引擎的查询。protocol://host:port/file举例:http://news.baidu.com:80/guoneiURL类提供了多个构造器用于创建URL对象:URL(String protocol, String host, int port, String file)URL(String protoc...

2021-10-02 20:04:04 439

原创 Java URLDecoder和URLEncoder

URLDecoder和URLEncoder用于完成普通字符串和application/x-www-form-urlencoded MIME字符串之间的相互转换。https://www.baidu.com/s?ie=UTF-8&wd=%E4%BD%A0%E5%A5%BD当URL地址里包含非西欧字符的字符串时,系统会将这些非西欧字符串转换成看似乱码的特殊字符串。编程过程中可能涉及普通字符串和这种特殊字符串的相关转换,这就需要使用URLDecoder和URLEn...

2021-09-29 14:55:06 487

原创 InetAddress方法详解

Java提供了InetAddress类来代表IP地址,InetAddress下还有两个子类:Inet4Address、Inet6Address,它们分别代表Internet Protocol version 4(IPv4)地址和Internet Protocol version 6(IPv6)地址。

2021-09-29 14:16:49 7413

原创 Java NIO(五)- Selector

Selector是一个组件(选择器/多路复用器),它可以检查一个或多个Channel通道实例,并确定哪些通道准备好进行读取或写入等操作。通过这种方式,单个线程可以管理多个通道,从而管理多个网络连接。Selector的创建1、通过调用该类的open方法来创建选择器Selector selector = Selector.open();2、通过调用自定义选择器提供者的openSelector方法来创建选择器。 try { Selector sel..

2021-09-28 00:26:53 1121

原创 Java编码与解码 - Charset

在计算机中所有的文件、媒体、信息在底层都是以二进制方式进行存储的。要想将计算机底层存储的二进制信息转换成可以直接使用的文件、媒体和信息,就要进行转换,在这个过程中涉及两个概念:编码(Encode)和解码(Decode),通常而言,把明文的字符序列转换成计算机理解的二进制序列(普通人看不懂)称为编码,把二进制序列转换成普通人能看懂的明文字符串称为解码。Java默认使用Unicode字符集,但很多操作系统并不使用Unicode字符集,那么当从系统中读取...

2021-09-26 16:33:16 2726

原创 Java NIO(四)- Channel之间的数据传输

​​​​​​transferFrom() transferTo()

2021-09-25 23:39:26 289

原创 Java NIO(三)- Channel

Channel类似于传统的流对象,但与传统的流对象是有区别的:Channel既可以读取数据,也可以写入数据。 Channel可以直接将指定文件的部分或全部直接映射成Buffer。 Channel可以异步读取和写入。 程序不能直接访问Channel中的数据,包括读取、写入都不行,Channel只能与Buffer进行交互。(Channel总是读取或写入Buffer)通道实现:FileChannel是用于读取和写入文件的数据的Channel DatagramChannel是用于支持.

2021-09-25 17:01:51 156

原创 Java NIO(二)- Scatter and Gather

分散(scatter)读取“分散读取”将数据从单个通道读取到多个缓冲区中。(数据按照缓冲区顺序依次将Buffer填满)/*read(ByteBuffer[] dsts)方法直接返回read(dsts, 0, dsts.length)方法;该方法按照缓冲区在数组中出现的顺序从通道写入数据。一旦缓冲区已满,通道就会继续填充下一个缓冲区。*/ByteBuffer header = ByteBuffer.allocate(128); ByteBuffer body = ...

2021-09-23 10:28:18 219

原创 Java NIO(一)- Buffer

从JDK1.4开始,java提供了一系列改进的IO处理(NIO:New IO),NIO可以替代标准的Java IO API,并且与标准的IO工作方式不同。Java NIO 是一种同步非阻塞式IO。Java中与新IO相关的包如下:➢ java.nio包:主要包含各种与Buffer相关的类。➢ java.nio.channels包:主要包含与Channel和Selector相关的类。➢ java.nio.charset包:主要包含与...

2021-09-21 18:37:38 308

原创 RandomAccessFile详解

RandomAccessFile是Java 输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile支持"随机访问"的方式,程序可以直接跳转到文件的任意地方来读写数据。RandomAccessFile可以自由访问文件的任意位置。 RandomAccessFile允许自由定位文件记录指针。 RandomAccessFile只能读写文件而不是流。...

2021-09-19 17:06:50 37190

原创 HTTP详解

一、什么是HTTP(解释来源于百度百科)?HTTP(HyperText Transfer Protocol ,超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上(应用层)。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。二、HTTP的作用HTTP是超文本传输协议,超文本就是HTML ,传输表示由HTTP 负责客户端和服务器的数据传输和...

2021-09-07 15:24:36 8749

原创 高斯模糊算法

一、定义:高斯模糊(英语:Gaussian Blur),也叫高斯平滑。通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个毛玻璃在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现)。 从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作高斯分布,所以这项技术就叫作高斯模糊。图像与圆形...

2021-09-03 08:26:51 2290 1

原创 图像灰度化

在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。图像灰度化处理方式:(引用原博客地址:https://www.cnblogs.com/finlay/p/3665302.html)1. 分量法  将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。2. 最大值法  将彩色图像中的三分量亮度的最大值作为灰度图...

2021-09-01 15:51:11 1132

原创 雪花算法(SnowFlake)

SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法,用于在分布式系统场景下大规模地生成简单可靠的唯一id号。(图片来源于https://www.cnblogs.com/grasp/p/12309726.html)雪花算法生成的id共64位; 最高位始终为0(最高位是符号位,默认不用); 时间戳41位(理论可以用69年,但写者并没有这没做); 机器标识10位(支持部署1024个节点,写者将机器数量交个了用户自定义); 序列号12位(支持每个节点每毫秒产生4096.

2021-08-10 00:21:34 2710

原创 基于Java Fork/Join框架的并行快速排序算法的研究与实现

Java Fork/Join框架Fork/Join框架是一种能够并行执行任务支持并行编程方式的Java框架。如图1-1所示,这个框架通过递归将一个大任务分解成若干个并行执行的子任务,待到所有子任务都执行完成,再合并所有子任务结果,最终得到原大任务的结果。图1-1 Fork/Join框架示意图使用Fork/Join框架进行并行计算不仅简单高效而且具有良好的并行性能,Fork/Join并行算法的核心是分治算法的并行实现。如图1-2所示,其中:fork操作...

2021-07-29 09:53:01 1009 3

原创 设计模式详解

一、面向对象设计五个基本原则(SOLID)1.单一职责原则(SRP:Single Responsibility Principle)一个类或者模块应该有且只有一个改变的原因。2.开闭原则(Open Closed Principle)一个实体是允许在不改变它的源代码的前提下变更它的行为。(用继承来解决)3.接口隔离原则(ISP:Interface Segregation Principle)使用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最

2021-07-24 16:10:47 884

原创 Nginx

1、Nginx概述Nginx ("engine x")是一个高性能的 HTTP 和反向代理服务器;特点:占用内存小 并发能力强(Nginx采用C进行编写,能够支持高达 50,000 个并发连接数的响应,Nginx选择了 epoll and kqueue作为开发模型。)Nginx可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 pe rl 、 php等。但是不支持 java 。 Java 程序只能通过与 tomcat 配合完成。2、正向代...

2021-07-19 13:58:48 229 1

原创 位图Bitmap(基于Java实现)

所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。

2021-07-17 17:49:42 12179 6

原创 查找(折半查找、分块查询、二叉排序树、AVL树、B-树和B+树、键树)

计算机科学中的定义:在一些(有序的/无序的)数据元素中,通过一定的方法找出与给定关键字相同的数据元素的过程叫做查找。(根据给定的某个值,在查找表中确定一个关键字等于给定值的记录或数据元素。)静态查找表1.顺序表的查找(略)2.有序表的查找(折半查找) public static int binarySearch(int[] nums, int low, int high, int target) { while (low <= high) { ...

2021-07-13 11:25:16 526 1

原创 计算机网络(散记)网络层

网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。有以下五种不同的中间设备:1.物理层中继系统:转发器 (repeater)。2.数据链路层中继系统:网桥 或 桥接器 (bridge)。3.网络层中继系统:路由器 (router)。4.网络层以上的中继系统:网关 (gateway)。 1. 网际协议 IP IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。地址解析协议 ARP 每一个主机..

2021-07-09 12:49:10 130

原创 计算机网络(散记)数据链路层

两个信道 点对点信道(PPP协议) 广播信道(CSMA/CD协议) 三个问题:1. 封装成帧首部和尾部的一个重要作用就是进行帧定界2. 透明传输解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。字符填充发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。...

2021-07-09 11:51:02 426

原创 计算机网络(散记)物理层

- 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流;-物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异;- 物理层的协议也常称为物理层规程 (procedure)。电气特性:接口所用接线器的种类、形状,尺寸;机械特性:接口电缆线的电压范围;功能特性:电平的电压的意义;过程特性:对于不同功能的各种可能事件的出现顺序。调制- 基带调制:一种数字信号换出成另一种形式的数字信号(编码coding);- 带通调制:使用载波 (carrier)进行.

2021-07-09 10:47:42 102

原创 计算机网络(散记)前言

计算机网络一、“网络”是一个统称,泛指把人或物互连在一起而形成的系统。二、计算机网络定义:(未统一,不做解释)特点:连通性 (Connectivity) 共享 (Sharing)三、互联网互联网,特指 Internet,它起源于美国,是由数量极大的各种计算机网络互连起来而形成的一个互连网络。它采用 TCP/IP 协议族作为通信规则,是一个覆盖全球、实现全球范围内连通性和资源共享的计算机网络。以小写字母“i” 开始的 internet(互连网)是一个通用名词,它泛指由多个计算机

2021-07-09 10:13:34 313

原创 图论进阶(理论扩展一)

二分图(Bipartite Graph)若能将无向图G=的顶点集V划分成两个不相交的非空子集V1和V2,使得G中任何一条边的两个端点一个属于V1,另一个属于V2,则称G为二部图(二分图,也称为偶图)。V1和V2称为互补顶点子集,G记成G=。二分图检测算法(染色+DFS)V1和V2两个顶点子集中的顶点分别用不同的颜色表示。假设V1中的顶点为蓝色,V2中的顶点为绿色;结合二部图的性质可得:任何一个顶点与其相邻结点一定不同色。故基于DFS对所有顶点进行染色,并检测顶点与其相邻顶点的颜

2021-07-06 02:06:07 1085

原创 最优雅的数据结构之一——字典树Trie(Java)

什么是Trie?又称单词查找树;又叫前缀树(prefix tree);Trie树,是一种树形结构,是一种哈希树的变种。作用:用以较快速地进行单词或前缀查询; 用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。性质:根节点不包含字符; 除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相同。基本操作:增、删、查。...

2021-06-23 00:26:49 938

原创 最优雅的数据结构之一——并查集DisjointSetUnion(基于Java语言实现)

介绍:一种树型的数据结构;用于处理一些不相交的集合的合并及查询。主要操作:合并(Union):把两个不相交的集合合并为一个集合;查询(Find):查询两个元素是否在同一个集合中。实现方式1、数组实现(用于Quick Find) 查找时间复杂度O(1); 合并时间复杂度O(n)。2、数组+单链表实现(Quick Union) 将每一个元素,看做是一个节点;将相同集合的节点串成一条链表。 初始化:把每个节点所在集合初始化为其自身(节...

2021-06-21 15:32:38 385

原创 图的邻接矩阵表示法(Java)

基础知识理解(本人口语化解释,专业解释请自行查阅文献,本人是通过**屈婉玲、耿素云、张立昂编著《离散数学》(第五版)**入门图论,这本书是入门计算机专业不可多得的好书)**图(Graph):** 描述一组对象(元素)的结构(由**二元组**或**三元组**进行定义)。**顶点(Vertex):** 图中的每一个对象(元素)被称为顶点。**边(Edge):** 用于两个顶点之间的关系。(弧(Arc):有方向的边;弧尾(Tail):初始点;**弧头(Head):**终端点)**二元组(V,E):.

2021-06-18 05:05:43 2363

原创 进程状态迁移

目的 写一个程序描述进程状态迁移过程,理解进程概念、状态转换及其控制。 内容 1)提供导致进程状态变化的调用接口,包括创建、删除、调度、阻塞、时间到、挂起、激活等。2)实现进程列表显示的接口。3)这里设计的进程是一个假设的对象实体,是由程序自己创建和删除,不是系统维护的进程。 需求(需要实现哪些功能) 初始化进程基本数据;向就绪队列添加进程,(考虑优先级);从就绪队列中取进程;将被阻塞的执行进程放入阻塞队列;唤醒阻塞队列中的进程;...

2021-02-15 15:32:14 1168

原创 记一次整合SpringCloud Alibaba+SpringCloud OpenFeign报错

Exception:No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?原因: 由于Spring Cloud Feign在Hoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错。解决办法:在pom.xml中加入l

2021-02-13 17:39:31 1648

单链表的各种基本运算的算法.zip

单链表的各种基本运算的算法

2021-04-23

空空如也

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

TA关注的人

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