一、概念

Java 注解是在 JDK5 时引入的新特性,注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。注解类型定义指定了一种新的类型,一种特殊的接口类型。 在关键词 interface 前加 @ 符号也就是用 @interface 来区分注解的定义和普通的接口声明。目前大部分框架(如 Spring Boot 等)都通过使用注解简化了代码并提高的编码效率。

二、作用

  • 提供信息给编译器: 编译器可以利用注解来探测错误和警告信息,如 @Override、@Deprecated。

  • 编译阶段时的处理: 软件工具可以用来利用注解信息来生成代码、Html 文档或者做其它相应处理,如 @Param、@Return、@See、@Author 用于生成 Javadoc 文档。

  • 运行时的处理: 某些注解可以在程序运行的时候接受代码的提取,值得注意的是,注解不是代码本身的一部分。如Spring 2.5 开始注解配置,减少了配置。

三、定义

2.1 注解的本质

所有的注解本质上都是继承自 Annotation 接口。但是,手动定义一个接口继承 Annotation 接口无效的,需要通过 @interface 声明注解,Annotation 接口本身也不定义注解类型,只是一个普通的接口。

public interface Annotation {boolean equals(Object obj);int hashCode();String toString();/***获取注解类型 */Class<? extends Annotation> annotationType();
}

来对比下 @interface 定义注解和继承 Annotation 接口

public @interface TestAnnotation1 {
}
​
public interface TestAnnotation2 extends Annotation  {
}

通过使用 javap 指令对比两个文件的字节码,发现通过 @interface 定义注解,本质上就是继承 Annotation 接口。

// javap -c TestAnnotation1.class
Compiled from "TestAnnotation1.java"                                                                 
public interface com.hncboy.corejava.annotation.TestAnnotation1 extends java.lang.annotation.Annotation {}
​
// javap -c TestAnnotation2.class
Compiled from "TestAnnotation2.java"                                                                 
public interface com.hncboy.corejava.annotation.TestAnnotation2 extends java.lang.annotation.Annotation {}

虽然本质上都是继承 Annotation 接口,但即使接口可以实现多继承,注解的定义仍然无法使用继承关键字来实现。

通过 @interface 定义注解后,该注解也不能继承其他的注解或接口,注解是不支持继承的,如下代码就会报错。

public @interface TestAnnotation1 {
}
/** 错误的定义,注解不能继承注解 */
@interface TestAnnotation2 extends TestAnnotation1 {
}
/** 错误的定义,注解不能继承接口 */
@interface TestAnnotation3 extends Annotation {
}

虽然注解不支持继承其他注解或接口,但可以使用组合注解的方式来解决这个问题。如 @SpringBootApplication 就采用了组合注解的方式。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {}

2.2 注解的架构

www.wityx.com

注解的基本架构如图所示,先简单了解下该架构,后面会详细讲解。

该架构的左半部分为基本注解的组成,一个基本的注解包含了 @interface 以及 ElementType 和 RententionPolicy 这两个枚举类。

  • Annotation 和 ElementType 是一对多的关系

  • Annotation 和 RetentionPolicy 是一对一的关系

该架构的右半部分为 JDK 部分内置的标准注解及元注解。

  • 标准注解:@Override、@Deprecated 等

  • 元注解:@Documented、@Retention、@Target、@Inherited 等

2.3 注解的属性

注解的属性也称为成员变量,注解只有成员变量,没有方法。注解的成员变量在注解的定义中以“无形参的方法”形式来声明,其方法名定义了该成员变量的名字,其返回值定义了该成员变量的类型。

注解内的可使用的数据类型是有限制的,类型如下:

  • 所有的基本类型(int,float,boolean 等)

  • String

  • Class

  • enum(@Retention 中属性的类型为枚举)

  • Annotation

  • 以上类型的数组(@Target 中属性类型为枚举类型的数组)

编译器对属性的默认值也有约束。首先,属性不能有不确定的的值。也就是说,属性要么具有默认值,要么在使用注解时提供属性的值。对于非基本类型的属性,无论是在源代码中声明时,或是在注解接口中定义默认值时,都不能使用 null 为其值。因此,为了绕开这个约束,我们需要自己定义一些特殊的值,例如空字符串或负数,来表示某个属性不存在。

通过一个案例来演示下注解可使用的数据类型及默认值。

@interface Reference {boolean contain() default false;
}
​
enum Week {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
​
public @interface TestAnnotation {
​/*** int 基本数据类型* @return*/int type() default -1;
​/*** boolean 基本数据类型* @return*/boolean status() default false;
​/*** String 类型* @return*/String name() default "";
​/*** Class 类型* @return*/Class<?> loadClass() default String.class;
​/*** 枚举类型* @return*/Week today() default Week.Sunday;
​/*** 注解类型* @return*/Reference reference() default @Reference(contain = true);
​/*** 枚举数组类型* @return*/Week[] value();
}

四、组成

我们已经了解了注解的架构,先来定义一个简单的注解。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation {
}

3.1 ElementType

ElementType 枚举类型的常量为 Java 程序中可能出现注解的声明位置提供了简单的分类。这些常量用于 @Target 注解中。@Target 用于描述注解适用的范围,即注解能修饰的对象范围,通过 ElementType 的枚举常量表示。

先来看下 ElementType 该枚举类的代码。

public enum ElementType {/*** 用于描述类、接口(包括注解类型)、枚举的定义*/TYPE,
​/*** 用于描述成员变量、对象、属性(包括枚举常量)*/FIELD,
​/*** 用户描述方法*/METHOD,
​/*** 用于描述参数*/PARAMETER,
​/*** 用于描述构造器*/CONSTRUCTOR,
​/*** 用于描述局部变量*/LOCAL_VARIABLE,
​/*** 用于描述注解的(元注解)*/ANNOTATION_TYPE,
​/*** 用于描述包*/PACKAGE,
​/** 表示该注解能写在类型变量的声明语句中* @since 1.8*/TYPE_PARAMETER,
​/*** 表示该注解能写在使用类型的任何语句中(声明语句、泛型和强制转换语句中的类型)* @since 1.8*/TYPE_USE
}

因为 Annotation 和 ElementType 是一对多的关系,所以 @Target 中可以存放数组,表示多个范围,默认所有范围。

JDK8 之前,注解只能用于声明的地方,JDK8 中添加了 TYPE_PARAMETER 和 TYPE_USE 类型注解,可以应用于所有地方:泛型、父类、接口,异常、局部变量等。举个例子,定义一个 @AnyWhere 注解,Boy 接口和 Test 类。

@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface AnyWhere {
}
​
public interface Boy {
}
​
public class Test<@AnyWhere T> extends @AnyWhere Object implements @AnyWhere Boy {
​private @AnyWhere T test1(@AnyWhere T t) throws @AnyWhere Exception {return t;}private void test2() {Test<Integer> test = new @AnyWhere Test<>();@AnyWhere List<@AnyWhere Integer> list = new ArrayList<>();}
}

3.2 RetentionPolicy

RetentionPolicy 枚举类型的常量用于保留注解的各种策略,即该注解的有效期。它们与 @Retention 注解类型一起使用,以指定保留注解的时间。RetentionPolicy 枚举的代码如下。

public enum RetentionPolicy {/*** 表示该注解只存在于源码阶段,*/SOURCE,
​/*** 表示该注解存在于源码阶段和编译后的字节码文件里*/CLASS,
​/*** 表示该注解存在于源码阶段、编译后的字节码文件和运行时期,且注解的内容将会被 JVM 解释执行* 该范围的注解可通过反射获取到*/RUNTIME
}

Annotation 和 RetentionPolicy 是一对一的关系,即每个注解只能有一种保留策略。

这三个枚举值是有等级关系的,SOURCE < CLASS < RUNTIME,即 RUNTIME 的有效范围是最大的,其次的是 CLASS,最小的范围是 SOURCE,默认的保留范围为 CLASS。

  • RUNTIME 范围使用于在运行期间通过反射的方式去获取注解。

  • CLASS 适用于编译时进行一些预处理操作。

  • SOURCE 适用于一些检查性的工作,或者生成一些辅助的代码,如 @Override 检查重写的方法,Lombok 中的 @Date、@Getter、@Setter 注解。

3.3 注解与反射

通过前面我们了解到,注解本质上继承 Annotation 接口,也就是说,Annotation 接口是所有注解的父接口。@Retention 的保留策略为 RetentionPolicy.RUNTIME 的情况下,我们可以通过反射获取注解的相关信息。Java 在 java.lang.reflect 包下也提供了对注解支持的接口。

www.wityx.com

主要来了解下 AnnotationElement 这个接口,其他接口都为该接口的子接口。该接口的对象代表 JVM 运行期间使用注解的类型(Class,Method,Field 等)。该包下的 Constructor 类、Method 类、Package 类和 Class 类等都实现了该接口。简单了解下该接口的部分函数。

public interface AnnotatedElement {/*** default 方法是 Java8 新增的* 如果指定类型的注解存在该类型上,则返回 true,否则返回 false。此方法的主要目的是方便访问一些已知的注解** @param annotationClass 该泛型参数表示所有继承了Annotation 接口的接口,也就是注解* @return 返回该类型上是否有指定的注解*/default boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) {return getAnnotation(annotationClass) != null;}/*** 根据注解的 Class 查询注解*/<T extends Annotation> T getAnnotation(Class<T> annotationClass);/*** 返回该类型上的所有注解,包含继承的*/Annotation[] getAnnotations();/*** 返回该类型上的所有注解,不包含继承的*/Annotation[] getDeclaredAnnotations();
}

我们使用代码来测试下反射获取注解。定义两个注解,一个保留策略为 RetentionPolicy.RUNTIME,另一个为 RetentionPolicy.CLASS。创建 TestAnnotation 类测试注解,该类上使用了这两个注解。

@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation1 {String status() default "hncboy";
}
​
@Retention(RetentionPolicy.CLASS)
public @interface TestAnnotation2 {String value() default "hncboy";
}
​
@TestAnnotation1(status = "hncboy2")
@TestAnnotation2("hncboy2")
public class TestAnnotation {
​public static void main(String[] args) throws ClassNotFoundException {Class<?> clazz = Class.forName("com.hncboy.corejava.annotation.TestAnnotation");// 获取该类的所有注解Annotation[] annotations = clazz.getAnnotations();for (Annotation annotation : annotations) {System.out.println(annotation.annotationType());System.out.println(annotation.toString());}}
}

输出结果如下,可见 TestAnnotation2 注解没有输出,因为 TestAnnotation2 注解类型是 RetentionPolicy.CLASS 的,所以用反射方法获取不到。这里还涉及到了注解的一个快捷方法,就是当注解里的属性名字定义为 value 时,可以在使用该注解时不指定属性名,上面的 @Target 注解和 @Retention 注解都属于这种情况,不过当注解里有多个属性时,那就必须指定属性名了。

interface com.hncboy.corejava.annotation.TestAnnotation1
@com.hncboy.corejava.annotation.TestAnnotation1()(status=hncboy2)

五、元注解

元注解即注解的注解且只能作用于注解上的注解,也就是说元注解负责其他注解的注解,而且只能用在注解上面。

JDK8 以前内置的元注解有 @Documented、@Retention、@Target、@Inherited 这四个,JDK 8 引入了 @Repeatable, 前面已经了解过了 @Target 和 @Retention,下面做一些简单的补充。

元注解的 @Target 都为 ElementType.ANNOTATION_TYPE,因为元注解只能应用于注解的注解。元注解在定义该注解的同时也可以直接使用该注解。

5.1 @Target

该注解用于定义注解能使用的范围,取值为 ElementType 枚举。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {/*** 返回可以应用注解类型的各种范围的枚举数组* 名字为 value 时可以省略属性名* @return*/ElementType[] value();
}

使用方式:

@Target(ElementType.METHOD)
@Target(value = ElementType.METHOD)
@Target({ElementType.METHOD, ElementType.TYPE})
@Target(value = {ElementType.METHOD, ElementType.TYPE})

5.2 @Retention

该注解定义注解的保留策略或者说定义注解的有效期,取值范围为 RetationPolicy 枚举。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {/*** 返回保留策略* @return*/RetentionPolicy value();
}

使用方式:

@Retention(RetentionPolicy.RUNTIME)
@Retention(value = RetentionPolicy.RUNTIME)

5.3 @Documented

该注解的使用表示是否包含在生成的 javadoc 文档中。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {
}

举个例子,定义一个 @TestAnnotation 注解和 Test 类。

@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface TestAnnotation {}@TestAnnotation
public class Test {}

通过 javadoc -d doc *.java 命令将该目录下的这两个类生成文档并放在 doc 目录下。生成的文件如下,点击 index.html。

www.wityx.com

看到如图所示的样子,Test 类中包含 @TestAnnotation。

www.wityx.com

我们再把 @TestAnnotation 注解上的 @Documenet 注解注释掉再来生成下文档。此时发现 Test 类中没有 @TestAnnotation 注解了。

www.wityx.com

5.4 @Inherited

该注解表示注解是否具有继承的特性。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}

举个例子来测试下。新建 TestAnnotation 注解,Father 类,Son 类,Father 类使用了该注解,Son 类继承 Father 类。

@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface TestAnnotation {
}@TestAnnotation
public class Father {
}public class Son extends Father {
}

新建一个测试类,测试 Father 和 Son 这两个类是否包这两个注解。

public class Test {public static void main(String[] args) {System.out.println(Father.class.isAnnotationPresent(TestAnnotation.class));System.out.println(Son.class.isAnnotationPresent(TestAnnotation.class));}
}

输出为 true true,当把 @TestAnnotation 注解上的 @Inherited 注解注释掉时,输出 true false,如此可见该注解的作用。

5.5 @Repeatable

JDK8 以前是不支持重复注解的,同一个地方只能使用同一个注解一次。 该注解从 JDK8 引入,该注解类型用于表示其声明注解的注解类型为可重复时。 value() 的值表示可重复注解的类型,包含注解类型。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Repeatable {/*** 指可重复注解的类型,包含注解类型* @return*/Class<? extends Annotation> value();
}

举个例子,定义 @Activity 和 @Activities 注解,定义 Hncboy 类测试重复注解。@Activity 注解被 @Repeatable(Activities.class) 注解,@Activities 相当于一个容器注解,属性为 Activity 类型的数组,通过这样的方式,使得 @Activity 注解可以被重复使用。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Activities {Activity[] value();
}@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Activities.class)
public @interface Activity {String value();
}@Activity("打代码")
@Activity("吃饭")
@Activity("睡觉")
public class Hncboy {
}@Activities({@Activity("打代码"), @Activity("吃饭"), @Activity("睡觉")})
public class Hncboy {
}

六、标准注解

JDK 内置的注解有 @Deprecated、@Override、@SuppressWarnnings、@SafeVarargs(JDK 7 引入)、@FunctionalInterface(JDK 引入)等。接下来介绍下 3 中常用的内置注解。

6.1 @Deprecated

注解为 @Deprecated 的类型是不鼓励程序员使用的元素,通常是因为这样做很危险,或者是因为存在更好的替代方法。当在不推荐使用的代码中使用或覆盖不推荐使用的程序元素时,编译器会发出警告。该注解可以用来修饰构造器、字段、局部变量、方法等类型。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

举个例子,使用 @Deprecated 修饰的元素是不推荐使用的,编译器会帮我们将这些类和方法用删除线标记。直接声明在包上会报 Package annotations should be in file package-info.java 错误。

@Deprecated
public class TestDeprecated {@DeprecatedString s = "hncboy";@Deprecatedpublic void test() {}
}
www.wityx.com

6.2 @Override

@Override 注解我们经常用到,提示子类需要重写父类的方法。方法重写或实现了在父类中声明的方法时需要加上该注解,该注解用于编译器检查重写的操作是否正确,保留策略为 RetentionPolicy.SOURCE。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

6.3 @SuppressWarnings

用来关闭编译器生成警告信息,可以用来修饰类、方法、成员变量等,在使用该注解时,应采用就近原则,如方法产生警告是,应该针对方法声明该注解,而不是对类声明,有利于发现该类的其他警告信息。

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {/*** 带有注解的元素中的编译器将禁止的警告集。* 使用 unchecked 忽略无法识别的警告*/String[] value();
}

举个例子,rawtypes 用于使用泛型时忽略没有指定相应的类型,unused 用于没有使用过的代码。

public class Test {@SuppressWarnings({"rawtypes", "unused"})private List test() {return new ArrayList();}
}

七、自定义注解

自定义注解实现 Spring IOC Bean 实例创建,自定义简单的注解: @Component、@Bean 和 @ComponentScan。

通过什么是反射?这篇文章我们已经学习到通过反射实现 Spring IOC Bean 实例的三种创建方式,不清楚的可以去看下那篇文章。

7.1 新建 @MyComponent、@MyBean、 @MyComponentScan

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface MyBean {String value() default "";
}@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyComponent {String value() default "";
}@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyComponentScan {String value() default "";
}

7.2 新建 A、B、C 三个类

@MyComponent("a")
public class A {public A() {System.out.println("调用 A 的无参构造器");}@MyBean("b")public static B createBInstance() {System.out.println("调用 A 的静态方法 createBInstance");return new B();}@MyBean("c")public C createCInstance() {System.out.println("调用 A 的实例方法 createCInstance");return new C();}
}class B {}
class C {}

7.3 新建 IOCContainer 类

/*** 定义 map 存放 bean*/
public class IOCContainer {private static HashMap<String, Object> container = new HashMap<>();public static void putBean(String id, Object object) {container.put(id, object);}public static Object getBean(String id) {return container.get(id);}
}

7.4 新建 Test 类

  • 先获取 @MyComponentScan 注解中的包名

  • 然后扫描该包下所有类的全限定名

  • 遍历类名,判断改类是否实现 @MyComponent 注解

  • 遍历方法,判断该方法是否实现 @MyBean 注解

大致过程是这样,具体的可以见代码的注释。

@MyComponentScan("com.hncboy.corejava.annotation.spring")
public class Test {public static void main(String[] args) throws Exception {Test test = new Test();// 获取 MyComponentScan 注解中的包名String scanPackage = test.getScanPackage();HashSet<String> classPathSet = new HashSet<>();// 扫描包下的所有类并将类的全限定名放进 classPathSet
        test.doScanPackage(classPathSet, scanPackage);// 遍历扫描包下的所有类for (String className : classPathSet) {// 通过类的全限定名获取 ClassClass<?> clazz = Class.forName(className);// 判断该类是否实现了 MyComponent 注解if (clazz.isAnnotationPresent(MyComponent.class)) {// 方式1:通过构造器实例化
                IOCContainer.putBean(className, clazz.newInstance());}Method[] methods = clazz.getDeclaredMethods();for (Method method : methods) {// 判断方法是否有 MyBean 注解if (method.isAnnotationPresent(MyBean.class)) {// 获取 bean 值String beanName = method.getAnnotation(MyBean.class).value();// 判断该方法是否是静态方法或实例方法if (Modifier.isStatic(method.getModifiers())) {// 方式2:通过静态工厂实例化IOCContainer.putBean(beanName, method.invoke(null));} else {// 方式3:通过实例工厂实例化// 首先获取该类的实例对象,再调用实例方法进行实例化
                        IOCContainer.putBean(beanName, method.invoke(IOCContainer.getBean(className)));}}}}}/*** 获取 MyComponentScan 注解中的包名** @return*/private String getScanPackage() {Class<?> clazz = this.getClass();if (!clazz.isAnnotationPresent(MyComponentScan.class)) {return "";}MyComponentScan scanPackage = clazz.getDeclaredAnnotation(MyComponentScan.class);return scanPackage.value();}/*** 扫描该包下的类** @param classPathSet* @param scanPackage*/private void doScanPackage(HashSet<String> classPathSet, String scanPackage) {// 通过正则表达式将包名中的 . 替代为 /,并获取到该路径的 class urlURL url = this.getClass().getResource("/" + scanPackage.replaceAll("\\.", "/"));// 获取该 url 下的所有 File(目录/文件)File classDir = new File(url.getFile());// 遍历所有 Filefor (File file : classDir.listFiles()) {// 判断该 file 如果是目录的话if (file.isDirectory()) {// 拼接该目录的名字并递归遍历该目录doScanPackage(classPathSet, scanPackage + "." + file.getName());} else {// 如果文件不是以 .class 结尾if (!file.getName().endsWith(".class")) {continue;}// 通过 包名+目录名+除去.class的类名 拼接该类的全限定名String clazzName = (scanPackage + "." + file.getName().replace(".class", ""));// 将该类的全限定名放入 classPathSet
                classPathSet.add(clazzName);}}}
}

输出如下:

调用 A 的无参构造器
调用 A 的静态方法 createBInstance
调用 A 的实例方法 createCInstance

注:APT——这些处理提取和处理 Annotation 的代码统称为 APT(Annotation Processing Tool)。

Java 编程思想

Java Annotation认知

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

相关文章

  1. JAVA之迷--深入理解Spring MVC 思想

    参考:https://www.cnblogs.com/baiduligang/p/4247164.html...

    2024/4/28 7:00:09
  2. Node.JS实战48:捕获错误之显示异常。

    如果没有正确的捕获错误、处理错误。代码执行时,可能会发生各种异常:崩溃、内存占用巨大、CPU使用率100%!那么,Node中有哪些错误种类?又如何捕获错误呢?显式异常 由throw抛出的异常,我们称之为显式异常。显式异常抛出例程:function format_name(name){if(!name){throw …...

    2024/4/28 6:37:26
  3. 一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)

    本文介绍Spring Boot、Vue 、Vue Element编写的项目,在Linux下的部署,系统采用Mysql数据库。按照本文进行项目部署,不迷路。 1. 前言 典型的软件开发,经过“需求分析”,“概要设计”,“详细设计”,“开发及单元测试”,“前后端联调”,“生产环境上线”。到了发布到生…...

    2024/4/28 23:26:31
  4. 2020.01.18【NOIP提高组】模拟B 组——总结——原子核研究

    Description 最近科学家们在研究一个很庞大的原子核家族——“X家族”。他们发现这个家族中的所有原子核都非常相似,只能通过质量来区分它们。质量相差越小,它们之间相互转化的可能性就越大。为了深入研究这个X家族,科学家们设计了一系列的实验。其中,作为一项重要的基础设…...

    2024/4/28 13:12:43
  5. 练习打字的网站

    练习打字的网站https://www.nitrotype.com/race...

    2024/3/29 7:11:46
  6. JSOUP

    很多人在看到这个词的时候会感觉到陌生,不知道这个词到底是干什么的,jsoup网页爬虫框架 jsoup 是一款Java 的HTML解析器。可直接解析某个URL地址、HTML文本内容。它提供了一套很省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 jsoup主要功能从一个U…...

    2024/4/28 2:06:35
  7. C 理论知识

    “ << ” 运算符 例如: 1324<<1,相当于1324 % 2^1 1324<<2,相当于1324 % 2^1 1324<<3,相当于1324 % 2^1(有余取整)...

    2024/4/28 5:28:54
  8. JDK环境配置

    【Java入门】JDK安装和环境变量配置(Win7版)系统环境:Windows7 x64安装JDK和JRE版本:1.8.0_1911、下载JDK安装包Oracle官网下载网址:https://www.oracle.com/technetwork/java/javase/downloads/index.html选择需要下载的JDK版本,本人下载的是JDK8u191,等同于JDK1.8版本…...

    2024/3/29 7:11:41
  9. 取余%运算符

    结果符号和左边的数相同: int a=7%3; //1 int c=7%-3; //1 int b=-7%3; //-1 int d=-7%-3; //-1...

    2024/4/28 22:03:14
  10. 两种方法动态获得ABAP类的class attribute的值

    DATA: lo_node TYPE REF TO object." 方法1 cl_crm_order_timer=>start( ). DO 1000 TIMES.CREATE OBJECT lo_node TYPE (CL_PRD01OV_MATERIALOV_CN00).ASSIGN lo_node->(BASE_ENTITY_NAME) TO FIELD-SYMBOL(<name>). ENDDO. cl_crm_order_timer=>stop( Fi…...

    2024/4/28 17:17:18
  11. 原生js添加类名,删除类名

    1.添加类名:document.getElementById("myDiv").classList.add(mystyle);2.删除类名:document.getElementById("myDiv").classList.remove(mystyle);3.检查是否含有某个css类:myDiv.classList.contains(myCssClass); //return true or flase;注意:类名…...

    2024/4/27 23:02:04
  12. 集训2020.01.18【NOIP提高组】模拟B 组分析反思(【东莞市选2009】9数字 原子核研究 探险者拉罗 【NOIP2014八校联考第3场第1试10.4】选择困难症)

    这次比赛打炸了,67.5分,36名,垫底~~~最近我变水了,突然智商下降,再也找不到以前的感觉,陷入小低谷……T1:【东莞市选2009】9数字,很简单的一道搜索题目。没想到比赛时居然打崩了,把枚举的范围打小了,答案错误37.5。比赛时没来得及检查,也促成了这一事故。总结:以…...

    2024/4/28 7:37:41
  13. 深入理解协程(四):async/await异步爬虫实战

    本文目录: 同步方式爬取博客标题 async/await异步爬取博客标题 本片为深入理解协程系列文章的补充。 你将会在从本文中了解到:async/await如何运用的实际的爬虫中。 案例 从CSDN上批量爬取指定文章的标题。文章列表如下: urls = [https://blog.csdn.net/Jmilk/article…...

    2024/4/28 21:00:57
  14. 【小记】医学四大期刊(NEJM,Lancet,JAMA,BMJ)

    新英格兰医学杂志(NEJM) 官方网站:http://content.nejm.org/ 新英格兰医学期刊(The New England Journal of Medicine;简称 NEJM) 是由美国麻州医学协会(Massachusetts Medical Society)所出版的同行评审性质全科医学周刊。其在 2015 年的影响因子(IF)为 55.873。期刊…...

    2024/4/28 9:02:44
  15. springboot2.2.2集成dubbo

    springboot2.2.2集成dubbo一、创建父工程二、创建提供者与消费者共用的api三、创建提供者四、创建消费者五、启动并访问 最近在学习dubbo,想着作一些笔记,从来没有在csnd上面写过博客,今天献出第一次,哈哈,直接上代码 一、创建父工程 <?xml version="1.0" e…...

    2024/4/28 11:34:41
  16. 学生留言

    ...

    2024/4/28 22:05:37
  17. uboot顶层makefile部分解析

    VERSION = 2016 #版本号 PATCHLEVEL = 03 #补丁版本号 SUBLEVEL = #次版本号 EXTRAVERSION = #附加版本信息 NAME = #名字MAKEFLAGS += -rR --include-dir=$(CURDIR) #“+=”来给变量 MAKEFLAGS 追加了一些值,“…...

    2024/4/28 2:01:07
  18. 并发到底带来什么问题

    并发到底带来了什么问题?说在前面我曾不止一次听说过这句话:“十个女人无法在一个月内生出孩子”我明白这句话的意思,用来形容我们的开发工作需要循序渐进,没有办法简单的增加人员就能加快研发速度。这句话也经常被用于反驳产品经理或者老板,试图让他们明白我们内心所表达…...

    2024/3/29 7:13:32
  19. python实战之百度新闻爬取

    python实战之百度新闻爬取.md通过对百度新闻标题、链接、日期及来源的爬取,了解使用python语言爬取少量数据的基本方法,让网友老爷们得到真正的免费技术,扩充代码方面的知识。立即下载百度新闻信息爬取 目录百度新闻信息爬取序言获取在百度新闻中搜索“阿里巴巴”的网页源代…...

    2024/4/21 1:12:08
  20. 班级情况分析

    ...

    2024/4/25 8:01:09

最新文章

  1. Java基础知识总结(78)

    /** * 线程加锁 */ public class SynchronizedDemo2 { //静态成员变量 在主内存中 static int i; //静态成员方法 public static void add(){ synchronized (SynchronizedDemo2.class){ i; } } public static void main(String[] args) throws InterruptedException { Thread t…...

    2024/4/29 0:58:34
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 【Ubuntu】在 Windows 和 Ubuntu 之间传输文件

    在 Ubuntu 上安装 Samba&#xff1a; sudo apt-get update sudo apt-get install samba在 Ubuntu 上创建一个共享文件夹并设置权限&#xff1a; mkdir /home/your_username/shared sudo chown nobody:nogroup /home/your_username/shared sudo chmod 0777 /home/your_username/…...

    2024/4/27 8:49:42
  4. java的gradle,maven工程中使用selenium

    一、下载selenium库 &#xff08;1&#xff09;gradle工程 工程中会有一个build.gradle.kts的文件&#xff0c;这个文件可以定制 Gradle 的行为 在文件中添加下面代码&#xff0c;然后sync // implementation ("org.seleniumhq.selenium:selenium-java:4.19.1") …...

    2024/4/24 9:20:47
  5. ChatGPT 初学者指南

    原文&#xff1a;ChatGPT for Beginners 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 介绍 如果您一直关注新闻和趋势&#xff0c;您可能已经在某个地方读到或听到过&#xff0c;Sam Altman 的生成式人工智能平台 ChatGPT 已经将人工智能推向了一个新的高度 - 许多…...

    2024/4/27 12:58:33
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/28 13:52:11
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/28 13:51:37
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/28 15:57:13
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

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

    2022/11/19 21:17:18
  27. 错误使用 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,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
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  45. 如何在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