Java里,,啥是二进制? 啥是base64?他们有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java里,,啥是二进制? 啥是base64?他们有啥区别?相关的知识,希望对你有一定的参考价值。

如题: 不要给我网上复制的长篇大论,我刚接触编程 我看不懂!
用自己理解的 简单点说,,谢谢了

二进制就是逢二进一,而我们习惯的是十进制,就是逢十进一,其实就是平时计数的时候用的符号不一样,十进制是(0~9)10个符号,而二进制只有0和1两个,因为当超过1的时候就会产生进位,比如二进制加法1+1=10(注意不要和十进制的十混淆,这个是二进制一零,等于十进制的二)。
至于base64就是一套加密算法呗,有点类似于数学的某个公式,你把你的数字输入到这个公式就会产生另外一个数字,加密就是把你的信息按照一定的方法转换成别的信息,如果不知道解密方法,是无法理解信息的内容的,大概就是这样的意思。还不理解请追问
参考技术A 二进制是计算机最基础的一种数据表示,是计算机的一中数制。
而base64是一中加密的方法,目的是为了数据不通过明文暴露在肉眼中,计算机中二进制8位为一个字节,而base64加密算法中6bit为一组,然后在高位补0,补齐8位后在转10进制,转10进制后有一张base64的对照表,在转换成英文字母或字符,就起到了加密的作用。
对了补充一下,8位(bit)为1字节,不足8位计算机会认为数据无效的,
参考技术B 二进制是数字的另一种表现形式,base64是一种加、密、解,密方式。 参考技术C

base64是什么

Java 中的 Mono 类:啥是,何时使用?

【中文标题】Java 中的 Mono 类:啥是,何时使用?【英文标题】:Mono class in Java: what is, and when to use?Java 中的 Mono 类:什么是,何时使用? 【发布时间】:2020-06-27 12:44:16 【问题描述】:

我有以下代码:

import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;
import reactor.core.publisher.Mono;

@Component
public class GreetingHandler 
    public Mono<ServerResponse> hello(ServerRequest request) 
        return ServerResponse.ok().contentType(MediaType.TEXT_PLAIN)
        .body(BodyInserters.fromValue("Hello Spring!"));
    

我理解这段代码,除了 Mono 类做了什么以及它的特性是什么。我做了很多搜索,但没有直截了当:什么是 Mono 类以及何时使用它

【问题讨论】:

projectreactor.io/docs/core/release/api/reactor/core/publisher/… 【参考方案1】:

Mono&lt;T&gt; 是一个专门的Publisher&lt;T&gt;,它最多发出一个项目,然后(可选地)以onComplete 信号或onError 信号终止。 它仅提供可用于Flux 的运算符子集,并且一些运算符(尤其是那些将Mono 与另一个Publisher 组合在一起的运算符)切换到Flux。例如,Mono#concatWith(Publisher) 返回一个Flux,而Mono#then(Mono) 返回另一个Mono。 请注意,您可以使用Mono 来表示只有完成概念的无值异步进程(类似于 Runnable)。要创建一个,您可以使用空的Mono&lt;Void&gt;

Mono 和 Flux 都是响应式流。它们表达的内容不同。 Mono 是 0 到 1 个元素的流,而 Flux 是 0 到 N 个元素的流。

这两个流的语义差异非常有用,例如向 Http 服务器发出请求期望收到 0 或 1 个响应,在这种情况下使用 Flux 是不合适的。相反,在区间上计算数学函数的结果需要区间中的每个数字一个结果。在其他情况下,使用 Flux 是合适的。

使用方法:

Mono.just("Hello World !").subscribe(
  successValue -> System.out.println(successValue),
  error -> System.error.println(error.getMessage()),
  () -> System.out.println("Mono consumed.")
);
// This will display in the console :
// Hello World !
// Mono consumed.

// In case of error, it would have displayed : 
// **the error message**
// Mono consumed.

Flux.range(1, 5).subscribe(
  successValue -> System.out.println(successValue),
  error -> System.error.println(error.getMessage()),
  () -> System.out.println("Flux consumed.")
);
// This will display in the console :
// 1
// 2
// 3
// 4
// 5
// Flux consumed.

// Now imagine that when manipulating the values in the Flux, an exception
// is thrown for the value 4. 
// The result in the console would be :
// An error as occured
// 1
// 2
// 3
//
// As you can notice, the "Flux consumed." doesn't display because the Flux
// hasn't been fully consumed. This is because the stream stop handling future values
// if an error occurs. Also, the error is handled before the successful values.

来源:Reactor Java #1 - How to create Mono and Flux?、Mono, an Asynchronous 0-1 Result

它可能会有所帮助:Mono doc

【讨论】:

以上是关于Java里,,啥是二进制? 啥是base64?他们有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Java里啥是麦文

在JAVA里 啥是回调函数啊.?

请问啥是二进制文件 啥是ASCII 啥是文本文件 它们之间有啥区别

Java中啥是可调用的?

Java中的DAO模式啥是业务对象

java中啥是EJB?