毫无疑问,Kotlin 目前很受欢迎,业界甚至有人认为其将取代 Java 的霸主地位。它提供了 Null 安全性,从这一点来说它确实比 Java 更好。那么是不是这就意味着开发者应该毫不犹豫地拥抱 Kotlin,否则就落伍了?
在这里插入图片描述
等等,或许事情并非如此。

在开始使用 Kotlin 编程之前,本文想要分享个故事给你。在这个故事中,作者最早使用 Kotlin 来编写一个项目,后来 Kotlin 的各种怪异模式以及一些其他障碍越来越让人厌烦,最终,他们决定重写这个项目。

以下为译文:

一直以来,我对基于 JVM 的语言都非常情有独钟。我通常会用 Java 来编写主程序,再用 Groovy 编写测试代码,两者配合使用得心应手。

2017年夏天,团队发起了一个新的微服务项目,和往常一样,我们需要对编程语言和技术进行选型。部分团队成员是 Kotlin 的拥护者,再加上我们都想尝试一下新的东西,于是我们决定用 Kotlin 来开发这个项目。由于 Spock 测试框架不支持 Kotlin,因此我们决定坚持使用 Groovy 来测试。

2018年春天,使用 Kotlin 开发几个月之后,我们总结了 Kotlin 的优缺点,最终结论表明 Kotlin 降低了我们的生产力。

于是我们使用 Java 来重写这个微服务项目。

那么 Kotlin 主要存在哪些弊端?下面来一一解释。

名称遮蔽

这是 Kotlin 最让我震惊的地方。看看下面这个方法:

fun inc(num : Int) {val num = 2if (num > 0) {val num = 3}println ("num: " + num)
}

当你调用 inc(1) 会输出什么呢?在 Kotlin 中, 方法的参数无法修改,因此在本例中你不能改变 num。这个设计很好,因为你不应该改变方法的输入参数。但是你可以用相同的名称定义另一个变量并对其进行初始化。

这样一来,这个方法作用域中就有两个名为 num 的变量。当然,你一次只能访问其中一个 num,但是 num 值会被改变。

在 if 语句中再添加另一个 num,因为作用域的原因 num 并不会被修改。

于是,在 Kotlin 中,inc(1) 会输出 2。同样效果的 Java 代码如下所示,不过无法通过编译:

void inc(int num) {int num = 2; //error: variable 'num' is already defined in the scopeif (num > 0) {int num = 3; //error: variable 'num' is already defined in the scope}System.out.println ("num: " + num);
}

名字遮蔽并不是 Kotlin 发明的,这在编程语言中很常见。在 Java 中我们习惯用方法参数来映射类字段:

public class Shadow {int val;public Shadow(int val) {this.val = val;}
}

在 Kotlin 中名称遮蔽有些严重,这是 Kotlin 团队的一个设计缺陷。

IDEA 团队试图通过向每个遮蔽变量显示警告信息来解决这个问题。两个团队在同一家公司工作,或许他们可以互相交流并就遮蔽问题达成共识。我从个人角度赞成 IDEA 的做法因为我想不到有哪些应用场景需要遮蔽方法参数。

类型推断

在Kotlin中,当你声明一个var或是val,你通常会让编译器从右边的表达式类型中猜测变量类型。我们称之为局部变量类型推断,这对程序员来说是一个很大的改进。它允许我们在不影响静态类型检查的情况下简化代码。

例如,这个Kotlin代码:

var a = "10"

Kotlin 编译器会将其翻译成:

var a : String = "10"

Java 同样具备这个特性,Java 10中的类型推断示例如下:

var a = "10";

实话实说,Kotlin 在这一点上确实更胜一筹。当然,类型推断还可应用在多个场景。关于 Java 10中的局部变量类型推断,点击以下链接了解更多:

https://medium.com/@afinlay/java-10-sneak-peek-local-variable-type-inference-var-3022016e1a2b

Null 安全类型

Null 安全类型是 Kotlin 的杀手级功能。

这个想法很好,在 Kotlin 中,类型默认不可为空。如果你需要添加一个可为空的类型,可以像下列代码这样:

val a: String? = null      // ok
val b: String = null       // compilation error

假设你使用了可为空的变量但是并未进行空值检查,这在 Kotlin 将无法通过编译,比如:

println (a.length)          // compilation error
println (a?.length)         // fine, prints null
println (a?.length ?: 0)    // fine, prints 0

那么是不是如果你同时拥有不可为空和可为空的变量,就可以避免 Java 中最常见的 NullPointerException 异常吗?事实并没有想象的简单。

当 Kotlin 代码必须调用 Java 代码时,事情会变得很糟糕,比如库是用 Java 编写的,我相信这种情况很常见。于是第三种类型产生了,它被称为平台类型。Kotlin 无法表示这种奇怪的类型,它只能从 Java 类型推断出来。它可能会误导你,因为它对空值很宽松,并且会禁用 Kotlin 的 NULL 安全机制。

看看下面这个 Java 方法:

public class Utils {static String format(String text) {return text.isEmpty() ? null : text;}
}

假如你想调用 format(String)。应该使用哪种类型来获得这个 Java 方法的结果呢?你有三个选择。

第一种方法:你可以使用 String,代码看起来很安全,但是会抛出 NullPointerException 异常。

fun doSth(text: String) {val f: String = Utils.format(text)       // compiles but assignment can throw NPE at runtimeprintln ("f.len : " + f.length)
}

那你就需要用 Elvis 来解决这个问题:

fun doSth(text: String) {val f: String = Utils.format(text) ?: ""  // safe with Elvisprintln ("f.len : " + f.length)
}

第二种方法:你可以使用 String,能够保证 Null 安全性。

fun doSth(text: String) {val f: String? = Utils.format(text)   // safeprintln ("f.len : " + f.length)       // compilation error, fineprintln ("f.len : " + f?.length)      // null-safe with ? operator
}

第三种方法:让 Kotlin 做局部变量类型推断如何?

fun doSth(text: String) {val f = Utils.format(text)            // f type inferred as String!println ("f.len : " + f.length)       // compiles but can throw NPE at runtime
}

馊主意!这个 Kotlin 代码看起来很安全、可编译,但是它容忍了空值,就像在 Java 中一样。

除此之外,还有另外一个方法,就是强制将 f 类型推断为 String:

fun doSth(text: String) {val f = Utils.format(text)!!          // throws NPE when format() returns nullprintln ("f.len : " + f.length)
}

在我看来,Kotlin 的所有这些类似 scala 的类型系统过于复杂。Java 互操作性似乎损害了 Kotlin 类型推断这个重量级功能。

类名称字面常量

使用类似 Log4j 或者 Gson 的 Java 库时,类文字很常见。

Java 使用 .class 后缀编写类名:

Gson gson = new GsonBuilder().registerTypeAdapter(LocalDate.class, new LocalDateAdapter()).create();

Groovy 把类进行了进一步的简化。你可以忽略 .class,它是 Groovy 或者 Java 类并不重要。

def gson = new GsonBuilder().registerTypeAdapter(LocalDate, new LocalDateAdapter()).create()

Kotlin 把 Kotlin 类和 Java 类进行了区分,并为其提供了语法规范:

val kotlinClass : KClass<LocalDate> = LocalDate::class
val javaClass : Class<LocalDate> = LocalDate::class.java

因此在 Kotlin 中,你必须写成如下形式:

val gson = GsonBuilder().registerTypeAdapter(LocalDate::class.java, LocalDateAdapter()).create()

这看起来非常丑陋。

反向类型声明

C 系列的编程语言有标准的声明类型的方法。简而言之,首先指定一个类型,然后是该符合类型的东西,比如变量、字段、方法等等。

Java 中的表示方法是:

int inc(int i) {return i + 1;
}

Kotlin 中则是:

fun inc(i: Int): Int {return i + 1
}

这种方法有几个原因令人讨厌。

首先,你需要在名称和类型之间加入这个多余的冒号。这个额外角色的目的是什么?为什么名称与其类型要分离?我不知道。可悲的是,这让你在 Kotlin 的工作变得更加困难。

第二个问题,当你读取一个方法声明时,你首先看到的是名字和返回类型,然后才是参数。

在 Kotlin 中,方法的返回类型可能远在行尾,所以需要浏览很多代码才能看到:

private fun getMetricValue(kafkaTemplate : KafkaTemplate<String, ByteArray>, metricName : String) : Double {...
}

或者,如果参数是逐行格式的,则需要搜索。那么我们需要多少时间才能找到此方法的返回类型呢?

@Bean
fun kafkaTemplate(@Value("\${interactions.kafka.bootstrap-servers-dc1}") bootstrapServersDc1: String,@Value("\${interactions.kafka.bootstrap-servers-dc2}") bootstrapServersDc2: String,cloudMetadata: CloudMetadata,@Value("\${interactions.kafka.batch-size}") batchSize: Int,@Value("\${interactions.kafka.linger-ms}") lingerMs: Int,metricRegistry : MetricRegistry
): KafkaTemplate<String, ByteArray> {val bootstrapServer = if (cloudMetadata.datacenter == "dc1") {bootstrapServersDc1}...
}

第三个问题是 IDE 中的自动化支持不够好。标准做法从类型名称开始,并且很容易找到类型。一旦选择一个类型,IDE 会提供一些关于变量名的建议,这些变量名是从选定的类型派生的,因此你可以快速输入这样的变量:

MongoExperimentsRepository repository

Kotlin 尽管有 IntelliJ 这样强大的 IDE,输入变量仍然是很难的。如果你有多个存储库,在列表中很难实现正确的自动补全,这意味着你不得不手动输入完整的变量名称。

repository : MongoExperimentsRepository

伴生对象

一位 Java 程序员来到 Kotlin 面前。

“嗨,Kotlin。我是新来的,我可以使用静态成员吗?"他问。

“不行。我是面向对象的,静态成员不是面向对象的。” Kotlin 回答。

“好吧,但我需要 MyClass 的 logger,我该怎么办?”

“这个没问题,使用伴生对象即可。”

“那是什么东西?” “这是局限到你的类的单独对象。把你的 logger 放在伴生对象中。”Kotlin解释说。

“我懂了。这样对吗?”

class MyClass {companion object {val logger = LoggerFactory.getLogger(MyClass::class.java)}
}

“正确!”

“很详细的语法,”程序员看起来很疑惑,“但是没关系,现在我可以像 MyClass.logger 这样调用我的 logger,就像 Java 中的一个静态成员?”

“嗯…是的,但它不是静态成员!这里只有对象。把它看作是已经实例化为单例的匿名内部类。事实上,这个类并不是匿名的,它的名字是 Companion,但你可以省略这个名字。看到了吗?这很简单。"

我很欣赏对象声明的概念——单例很有用。但从语言中删除静态成员是不切实际的。在 Java 中我们使用静态 Logger 很经典,它只是一个 Logger,所以我们不关心面向对象的纯度。它能够工作,从来没有任何坏处。

因为有时候你必须使用静态。旧版本 public static void main() 仍然是启动 Java 应用程序的唯一方式。

class AppRunner {companion object {@JvmStatic fun main(args: Array<String>) {SpringApplication.run(AppRunner::class.java, *args)}}
}

集合字面量

在Java中,初始化列表非常繁琐:

import java.util.Arrays;
...
List<String> strings = Arrays.asList("Saab", "Volvo");

初始化地图非常冗长,很多人使用 Guava:

import com.google.common.collect.ImmutableMap;
...
Map<String, String> string = ImmutableMap.of("firstName", "John", "lastName", "Doe");

在 Java 中,我们仍然在等待新的语法来表达集合和映射。语法在许多语言中非常自然和方便。

JavaScript:

const list = ['Saab', 'Volvo']
const map = {'firstName': 'John', 'lastName' : 'Doe'}
Python:list = ['Saab', 'Volvo']
map = {'firstName': 'John', 'lastName': 'Doe'}
Groovy:def list = ['Saab', 'Volvo']
def map = ['firstName': 'John', 'lastName': 'Doe']

简单来说,集合字面量的整齐语法就是你对现代编程语言的期望,特别是如果它是从头开始创建的。Kotlin 提供了一系列内置函数,比如 listOf()、mutableListOf()、mapOf()、hashMapOf() 等等。

Kotlin:

val list = listOf("Saab", "Volvo")
val map = mapOf("firstName" to "John", "lastName" to "Doe")

在地图中,键和值与 to 运算符配对,这很好。但为什么一直没有得到广泛使用呢?令人失望。

Maybe

函数式语言(比如 Haskell)没有空值。相反,他们提供 Maybe monad(如果你不熟悉monad,请阅读 Tomasz Nurkiewicz 的这篇文章:http://www.nurkiewicz.com/2016/06/functor-and-monad-examples-in-plain-java.html)。

Maybe 很久以前就被 Scala 以 Option 引入到 JVM 世界,然后在 Java 8 中被采用为 Optional。如今,Optional 是在 API 边界处理返回类型中的空值的非常流行的方式。

Kotlin 中没有 Optional 的等价物,所以你大概应该使用 Kotlin 的可空类型。让我们来调查一下这个问题。

通常情况下,当你有一个 Optional 的时候,你想要应用一系列无效的转换。

例如,在 Java 中:

public int parseAndInc(String number) {return Optional.ofNullable(number).map(Integer::parseInt).map(it -> it + 1).orElse(0);
}

在 Kotlin 中,为了映射你可以使用 let 函数:

fun parseAndInc(number: String?): Int {return number.let { Integer.parseInt(it) }.let { it -> it + 1 } ?: 0
}

上面的代码是错误的,parseInt() 会抛出 NPE 。map() 仅在有值时执行。否则,Null 就会跳过,这就是为什么 map() 如此方便。不幸的是,Kotlin 的 let 不会那样工作。它从左侧的所有内容中调用,包括空值。

为了保证这个代码 Null 安全,你必须在每个代码之前添加 let:

fun parseAndInc(number: String?): Int {return number?.let { Integer.parseInt(it) }?.let { it -> it + 1 } ?: 0
}

现在,比较 Java 和 Kotlin 版本的可读性。你更倾向哪个?

数据类

数据类是 Kotlin 在实现 Value Objects 时使用的方法,以减少 Java 中不可避免的样板问题。

例如,在 Kotlin 中,你只写一个 Value Object :

data class User(val name: String, val age: Int)

Kotlin 对 equals()、hashCode()、toString() 以及 copy() 有很好的实现。在实现简单的DTO 时它非常有用。但请记住,数据类带有严重的局限性。你无法扩展数据类或者将其抽象化,所以你可能不会在核心模型中使用它们。

这个限制不是 Kotlin 的错。在 equals() 没有违反 Liskov 原则的情况下,没有办法产生正确的基于价值的数据。

这也是为什么 Kotlin 不允许数据类继承的原因。

开放类

Kotlin 类默认为 final。如果你想扩展一个类,必须添加 open 修饰符。

继承语法如下所示:

open class Base
class Derived : Base()

Kotlin 将 extends 关键字更改为: 运算符,该运算符用于将变量名称与其类型分开。那么再回到 C ++语法?对我来说这很混乱。

这里有争议的是,默认情况下类是 final。也许 Java 程序员过度使用继承,也许应该在考虑扩展类之前考虑三次。但我们生活在框架世界,Spring 使用 cglib、jassist 库为你的 bean 生成动态代理。Hibernate 扩展你的实体以启用延迟加载。

如果你使用 Spring,你有两种选择。你可以在所有 bean 类的前面添加 open,或者使用这个编译器插件:

buildscript {dependencies {classpath group: 'org.jetbrains.kotlin', name: 'kotlin-allopen', version: "$versions.kotlin"}
}

陡峭的学习曲线

如果你认为自己有 Java 基础就可以快速学习 Kotlin,那你就错了。Kotlin 会让你陷入深渊,事实上,Kotlin 的语法更接近 Scala。这是一项赌注,你将不得不忘记 Java 并切换到完全不同的语言。

相反,学习 Groovy 是一个愉快的过程。Java 代码是正确的 Groovy 代码,因此你可以通过将文件扩展名从 .java 更改为 .groovy。

最后的想法

学习新技术就像一项投资。我们投入时间,新技术让我们得到回报。但我并不是说 Kotlin 是一种糟糕的语言,只是在我们的案例中,成本远超收益。

以上内容编译自 From Java to Kotlin and Back Again,作者 Kotlin ketckup。

他是一名具有15年以上专业经验的软件工程师,专注于JVM 。在 Allegro,他是一名开发团队负责人,JaVers 项目负责人,Spock 倡导者。此外,他还是 allegro.tech/blog 的主编。

本文一出就引发了业内的广泛争议,Kotlin 语言拥护者 Márton Braun 就表示了强烈的反对。

Márton Braun 十分喜欢 Kotlin 编程,目前他在 StackOverflow 上 Kotlin 标签的最高用户列表中排名第三,并且是两个开源 Kotlin 库的创建者,最著名的是 MaterialDrawerKt。此外他还是 Autosoft 的 Android 开发人员,目前正在布达佩斯技术经济大学攻读计算机工程硕士学位。

以下就是他针对上文的反驳:

当我第一次看到这篇文章时,我就想把它转发出来看看大家会怎么想,我肯定它会是一个有争议的话题。后来我读了这篇文章,果然证明了它是一种主观的、不真实的、甚至有些居高临下的偏见。

有些人已经在原贴下进行了合理的批评,对此我也想表达一下自己的看法。

名称遮蔽

“IDEA 团队”(或者 Kotlin 插件团队)和“Kotlin 团队”肯定是同样的人,我从不认为内部冲突会是个好事。语言提供这个功能给你,你需要的话就使用,如果讨厌,调整检查设置就是了。

类型推断

Kotlin 的类型推断无处不在,作者说的 Java 10 同样可以简直是在开玩笑。

Kotlin 的方式超越了推断局部变量类型或返回表达式体的函数类型。这里介绍的这两个例子是那些刚刚看过关于 Kotlin 的第一次介绍性讲话的人会提到的,而不是那些花了半年学习该语言的人。

例如,你怎么能不提 Kotlin 推断泛型类型参数的方式?这不是 Kotlin 的一次性功能,它深深融入了整个语言。

编译时 Null 安全

这个批评是对的,当你与 Java 代码进行互操作时,Null 安全性确实被破坏了。该语言背后的团队曾多次声明,他们最初试图使 Java 可为空的每种类型,但他们发现它实际上让代码变得更糟糕。

Kotlin 不比 Java 更差,你只需要注意使用给定库的方式,就像在 Java 中使用它一样,因为它并没有不去考虑 Null 安全。如果 Java 库关心 Null 安全性,则它们会有许多支持注释可供添加。

也许可以添加一个编译器标志,使每种 Java 类型都可以为空,但这对 Kotlin 团队来说不得不花费大量额外资源。

类名称字面常量

:: class 为你提供了一个 KClass 实例,以便与 Kotlin 自己的反射 API 一起使用,而:: class.java为你提供了用于 Java 反射的常规 Java 类实例。

反向类型声明

为了清楚起见,颠倒的顺序是存在的,这样你就可以以合理的方式省略显式类型。冒号只是语法,这在现代语言中是相当普遍的一种,比如 Scala、Swift 等。

我不知道作者在使用什么 IntelliJ,但我使用的变量名称和类型都能够自动补全。对于参数,IntelliJ 甚至会给你提供相同类型的名称和类型的建议,这实际上比 Java 更好。

伴生对象

原文中说:

有时候你必须使用静态。旧版本 public static void main() 仍然是启动 Java 应用程序的唯一方式。

class AppRunner {companion object {@JvmStatic fun main(args: Array<String>) {SpringApplication.run(AppRunner::class.java, *args)}}
}

实际上,这不是启动 Java 应用程序的唯一方式。你可以这样做:

 fun main(args:Array <String>){ SpringApplication.run(AppRunner :: class.java,* args)} 

或者这样:

 fun main(args:Array <String>){ runApplication <AppRunner>(* args)}

集合字面量

你可以在注释中使用数组文字。但是,除此之外,这些集合工厂的功能非常简洁,而且它们是另一种“内置”到该语言的东西,而它们实际上只是库函数。

你只是抱怨使用:进行类型声明。而且,为了获得它不必是单独的语言结构的好处,它只是一个任何人都可以实现的功能。

Maybe

如果你喜欢 Optional ,你可以使用它。Kotlin 在 JVM 上运行。

对于代码确实这有些难看。但是你不应该在 Kotlin 代码中使用 parseInt,而应该这样做(我不知道你使用该语言的 6 个月中为何错过这个)。你为什么要明确地命名一个 Lambda 参数呢?

数据类

原文中说:

这个限制不是 Kotlin 的错。在 equals() 没有违反 Liskov 原则的情况下,没有办法产生正确的基于价值的数据。

这就是为什么 Kotlin 不允许数据类继承的原因。

我不知道你为什么提出这个问题。如果你需要更复杂的类,你仍然可以创建它们并手动维护它们的 equals、hashCode 等方法。数据类仅仅是一个简单用例的便捷方式,对于很多人来说这很常见。

公开类

作者再次鄙视了,对此我实在无话可说。

陡峭的学习曲线

作者认为学习 Kotlin 很难, 但是我个人并不这么认为。

最后的想法

从作者列举的例子中,我感觉他只是了解语言的表面。

很难想象他对此有投入很多时间。

译者:安翔,责编:郭芮

原文l链接:
https://allegro.tech/2018/05/From-Java-to-Kotlin-and-Back-Again.html
https://zsmb.co/on-from-java-to-kotlin-and-back-again/
在这里插入图片描述

欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万+码农成长充电第一站,陪有梦想的你一起成长

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 菜鸡程序媛,又开始了新的一轮代码学习之路!!!(JAVA真香)

    菜鸡程序媛&#xff0c;又开始了新的一轮代码学习之路&#xff01;&#xff01;&#xff01; 我打开java入门视频已经第三次了&#xff0c;&#xff08;事不过三&#xff0c;这次&#xff0c;姐妹一定要看完&#xff01;&#xff09; 第一次入门&#xff0c;我要讨口饭吃 19年…...

    2024/4/9 4:40:27
  2. Leetcode刷题之 【215. 数组中的第K个最大元素】

    1 题目 在未排序的数组中找到第 k 个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k 4 输出: 4 说明: 你可以假…...

    2024/5/8 2:11:51
  3. CSDN各位大牛齐聚一堂分享经验-1024

    14:00-14:25主持人开场及领导致辞 14:25-14:30致辞倪光南中国工程院院士 14:30-14:40CSDN 2.0 新规划蒋 涛CSDN 创始人&董事长、极客帮创投创始合伙人 14:40-16:40九大操作系统掌门人对话&#xff1a;九问操作系统主持人&#xff1a;陈 渝清华大学长聘副教授 王成录华为消…...

    2024/4/28 11:45:07
  4. linux高级IO

    高级IO包括IO概念&#xff0c;类型&#xff0c;处理流程&#xff0c;多路转接IO的实现模型 四种典型的IO&#xff1a;阻塞&#xff0c;非阻塞&#xff0c;信号驱动&#xff0c;异步 IO过程&#xff1a;发起IO调用&#xff0c;等待IO条件就绪&#xff0c;进行数据拷贝。 阻塞…...

    2024/4/9 4:40:24
  5. 跟着团子学SAP:项目物料的需求汇总-Grouping WBS

    官方定义&#xff1a; SAP官方文档中对Grouping WBSE的定义是&#xff1a;A Grouping WBS element is a WBS element that has valuated project stock on which the requirements from several WBS elements are grouped together for materials requirement planning (MRP).…...

    2024/5/7 13:17:37
  6. 单点登录协议有哪些?CAS、OAuth、OIDC、SAML有何异同?

    单点登录实现中&#xff0c;系统之间的协议对接是非常重要的一环&#xff0c;一般涉及的标准协议类型有 CAS、OAuth、OpenID Connect、SAML&#xff0c;本文将对四种主流 SSO协议进行概述性的介绍&#xff0c;并比较其异同&#xff0c;读者亦可按图索骥、厘清关键概念。 一、认…...

    2024/4/19 14:40:40
  7. 初等数论 课堂笔记 第三章 -- 保密通讯与公开密钥

    索引保密通讯仿射密码例子指数密码 ( Pohlig, Hellman, 1978 )例子RSA公开密钥体制( Rivest, Shamir, Adleman, 1977; 英国情报部门的Cocks 1973年已发明 )例子保密通讯 保密通讯分为3步&#xff1a; 发送方使用密钥把明码转换成密码&#xff1b;密码的传输&#xff1b;接收方…...

    2024/4/9 4:40:21
  8. 入驻京东淘宝CNAS CMA质量检测报告

    一、电商检测报告要求有哪些? 入驻电商检测报告旗舰店、专卖店、专营店检测报告要求&#xff1a;质量监督检验所、质量检验中心或其它具备CNAS和CMA资质的第三方权威检测机构&#xff08;具有CNAS及CMA&#xff09;认证也可以&#xff0c;商家每款产品均可以出具质检报告&…...

    2024/5/7 15:27:22
  9. Windows10环境下,基于VS2019的WebRTC编译环境搭建

    一、系统需求 1、64位机&#xff0c;最少8GB内存&#xff0c;16GB以上内存更佳。 2、至少100GB的剩余磁盘空间&#xff0c;且磁盘格式为NTFS。 3、Win7及以上系统 4、具备访问外网的vpn 二、软件准备 1、先确保os的版本> 10.0.19041 (我最开始用10.0.18363版本&…...

    2024/4/9 3:49:21
  10. WebRTC 基础 TURN的工作过程和原理

    参考文档&#xff1a; https://www.jianshu.com/p/4a15556c6318 https://www.cnblogs.com/pannengzhi/p/5048965.html 我们在STUN工作过程介绍的文章中提到过&#xff0c;STUN能够处理Cone NAT&#xff0c;但是没有处理对称NAT的能力&#xff0c;也就是说位于对称NAT后面的2台…...

    2024/5/8 0:31:39
  11. 一文纵览大数据计算生态

    欢迎关注wx公众号&#xff1a;DLab数据实验室 关注更多知识干货&#xff5e; ​​​​ 概述 大数据计算发展至今&#xff0c;已经形成了一个百花齐放的大数据生态&#xff0c;通用的、定制的&#xff0c;批量的、实时的&#xff0c;关系的、图的、非结构的&#xff0c;数据计算…...

    2024/4/9 3:49:19
  12. Filecion值不值得参与?看它的技术应用实景落地和前景

    一&#xff1a;IPFS/Filecion生态目前现状 IPFS/Filecion上线了&#xff0c;这个沉淀了好几年&#xff0c;鸽了一次又一次。修复了一个又一个BUG的万年鸽王终于上线了。从15号夜晚高兴得睡不着&#xff0c;到目前生态流言飞起。对区块链以及IPFS/Filecion生态深入研究的我。也…...

    2024/4/20 15:26:04
  13. Filecoin值不值得投资?FIL期货何去何从?

    Filecoin值不值得投资&#xff1f;FIL期货何去何从&#xff1f; 自从 Filecoin 在周四推出以来&#xff0c;Filecoin一直不太平。并且有消息称&#xff0c;五个大的采矿池已经开始罢工&#xff0c;有传言称他们可能会分叉 Filecoin。 Filecoin 的创始人胡安&#xff08; Juan…...

    2024/4/12 22:22:36
  14. 以太坊的问题能解决?|比特币、以太坊年底将创新高

    最近整个币圈都很热闹&#xff0c;不说大概也都知道&#xff0c;比特币突破12000点&#xff0c;直接带动的整个数字货币币种的不断上升&#xff0c;成为太子的以太坊也同样上升到了一个高位。而因为以太坊的分流币的数量巨大&#xff0c;有人便对以太坊看好&#xff0c;因为以太…...

    2024/4/26 1:51:12
  15. filecoin官方资讯、太空竞赛细则、fil期货与矿池挖矿对比分析、与云算力有什么区别

    恒讯云在filecoin官网中看到&#xff0c;协议实验室的150万 FIL砸盘&#xff0c;矿工反对 Filecoin经济模型的集体罢工。 突然之间&#xff0c;协议实验室从“万众期待”变成了“万人唾骂”。    如果给你10万人民币&#xff0c;参与Filecoin挖矿多久能回本? 目前对于Fil…...

    2024/5/8 2:59:18
  16. 6种负载均衡算法

    1、轮询法 将请求按顺序轮流地分配到后端服务器上&#xff0c;它均衡地对待后端的每一台服务器&#xff0c;而不关心服务器实际的连接数和当前的系统负载。 2、随机法 通过系统的随机算法&#xff0c;根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统…...

    2024/4/23 11:12:15
  17. webpack从入门及实战(二)webpack核心概念

    Loaders 说到webpack&#xff0c;自然离不开他的一大堆loaders&#xff0c;没有loaders的webpack只能打包js文件&#xff0c;得益于众多的loaders&#xff0c;我们可以打包各种类型的文件。 loaders实际上可以理解为一种打包方案&#xff0c;webpack本身碰到除了js文件之外的其…...

    2024/4/17 7:17:41
  18. 3000个楼盘、80万套特价房上线天猫双11!

    今年的双11&#xff0c;还可以在天猫上买到房子。 双十一红包领取地址&#xff1a;http://1111.tmall.com 10月22日&#xff0c;天猫双11组委会宣布100多家房企带着3000个楼盘、共计80万房源集体参加天猫双11&#xff0c;特价房范围覆盖近300城市&#xff0c;目前在售的主流楼…...

    2024/4/21 5:00:39
  19. JavaWeb及项目部署

    一、JSTL标签和EL表达式 1.EL表达式 &#xff08;一&#xff09;主要功能 EL表达式简化了JSP的表达式写法&#xff0c;可以使得我们更方便地去访问和获取各种数据。 主要功能有&#xff1a; 依次访问&#xff08;依次尝试获取&#xff09;pageContext、request、session和a…...

    2024/4/28 23:34:04
  20. 鲲鹏 ARM 架构编译 ClickHouse 记录(最全)

    鲲鹏 ARM 架构编译 ClickHouse 记录目录环境要求Yum 安装相关依赖升级 GCC 到 9.3.0坑 1&#xff1a;GCC 更新后&#xff0c;系统库也要更新编译安装 CMake编译安装 Git编译安装 ClickHouse从 GitHub 克隆准备编译操作坑2&#xff1a;修改 ClickHouse/contrib/zlib-ng/CMakeLis…...

    2024/5/2 23:37:40

最新文章

  1. 值得收藏!修复Windows 10/11中找不到输出或输入设备的五种方法

    序言 这篇文章主要关注处理声音输出/输入设备未发现的问题。它提供了许多可行的方法,帮助了许多Windows用户。阅读以下内容以找到你的解决方案。 最近,我将Windows 10更新到21H2,发现我的音频无法工作。当我把鼠标放在任务栏上的声音图标(上面有一个十字图标)上时,它会…...

    2024/5/8 3:03:31
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 腾讯云轻量服务器流量不够用了会怎么样?

    腾讯云轻量应用服务器是限制月流量的&#xff0c;如果当月流量不够用了&#xff0c;流量超额了怎么办&#xff1f;流量超额后&#xff0c;需要另外支付流量费&#xff0c;如果你的腾讯云账号余额&#xff0c;就会自动扣除对应的流量费&#xff0c;如果余额不足&#xff0c;轻量…...

    2024/5/1 13:01:36
  4. 【python】Flask Web框架

    文章目录 WSGI(Web服务器网关接口)示例Web应用程序Web框架Flask框架创建项目安装Flask创建一个基本的 Flask 应用程序调试模式路由添加变量构造URLHTTP方法静态文件模板—— Jinja2模板文件(Template File)<...

    2024/5/8 1:34:38
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/7 19:05:20
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/7 22:31:36
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/8 1:37:40
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/7 14:19:30
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/8 1:37:39
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/7 16:57:02
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/7 14:58:59
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/7 1:54:46
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/7 21:15:55
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/8 1:37:35
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/7 16:05:05
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/7 16:04:58
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/8 1:37:32
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/7 16:05:05
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/8 1:37:31
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/8 1:37:31
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/7 11:08:22
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/7 7:26:29
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/8 1:37:29
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/7 17:09:45
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57