Scala面向对象编程
Scala面向对象编程
- 1.课程目标
- 2.面向对象
- 2.1 类
- 2.2 setter getter
- 2.3 方法的调用原则
- 2.4 Scala构造器
- 2.5 Scala中单例对象
- 2.6 伴生对象
- 2.7 main函数
- 2.8 继承
- 2.9 子类调用父类的构造器
- 2.10 抽象类
- 2.11匿名内部类
- 2.12 超级父类
- 2.13 类型转换和类型判断
- 2.14特质
- 3. 模式匹配
- 4. 偏函数
- 5.逆变协变非变
- 6.上下界
- 7.Scala并发操作
1.课程目标
- 掌握Scala中面向对象编程
- 掌握Scala模式匹配
- 掌握Scala泛型高级内容
- 熟悉Scala中多线程编程模型
2.面向对象
2.1 类
-
定义: class 类名{成员变量val/var 名称=值成员方法def 方法名称(参数列表):返回值={方法体}} 创建对象:val 对象名称=new 类名() //() 可写可不写 ()没有参数的时候可以省略/*** Person* name 不可变* age 可变* skill 数组* 方法:* def addSkill* def scanSkill*/ class Person {val name = "itcast" //不可变 不需要setter var age = 13 //可变 需要setter getterval skill = new ArrayBuffer[String]()// def addSkilldef addSkill(subject: String): Unit = {skill += subject}def scanSkill(): Unit = {skill.foreach((x: String) => println(x))} }
-
object Scala_01_class {def main(args: Array[String]): Unit = {val person = new Personprintln(person.name)person.age=14println(person.age)person.addSkill("scala")person.addSkill("spark")person.scanSkill()} }
2.2 setter getter
-
/*** Student类* name 不可变* age 可变** 注意:* 1.如果一个方法 只返回结果 在方法内部不进行任何业务逻辑处理的话,就可以省略方法名称后边的小括号“()”* 2.通过def 定义属性*/class Student {val name = "itcast" //不需要提供setter 和getterprivate var _age = 10 //可变变量定义格式 : _名称//setterdef age_(age: Int) = this._age = age//getterdef age=this._age }object Scala_02_class {def main(args: Array[String]): Unit = {val student = new Studentstudent.age_(10)println(student.age)} }
2.3 方法的调用原则
-
/*** Teacher 类* teach方法** 注意:teacher teach "spark" 这种调用方式只适用于一个参数的方法*/ class Teacher{def teach(suject:String): Unit ={println(s"教学:$suject")} }object Scala_03_class {def main(args: Array[String]): Unit = {val teacher = new Teacherteacher.teach("hadoop")teacher teach("scala")teacher teach "spark"0 to 100 until 101 + 2} }
2.4 Scala构造器
-
两种构造器方式主构造器class 类名(参数*)辅助构造器定义在类当中def this(参数*){//第一行代码必须代用主构造this(参数)} /*** 定义: Animal* 主构造器 (name)* 辅助构造(color,legs)*/ class Animal(val name: String) {var _color = "red"var _legs = 2//辅助构造(name,color,legs)def this(name: String, color: String, legs: Int) {this(name) //调用主构造器this._color = colorthis._legs = legs} }object Scala_04_class {def main(args: Array[String]): Unit = {val a=new Animal("dog")val b=new Animal("cat","white",2)println(a.name)println(b._legs)} }
2.5 Scala中单例对象
-
创建方式:object 名称{成员变量成员方法} 使用方式:可以通过 名称.成员变量/成员方法 形式使用。相当于java中static修饰变量和方法的调用应用场景:单例对象多应用于工具类或者工具对象 //创建工具对象 object CommonUtil {val PI = 3.14def getDate = new Date }object Scala_05_object {def main(args: Array[String]): Unit = {println(CommonUtil.PI)println(CommonUtil.getDate)} }
2.6 伴生对象
-
当单例对象的名称跟类名相同的时候,并且单例对象和类同时存在于同一个文件中, 这里这个对象就称之为类的伴生对象。类是对象的伴生类/*** SoftEngineer 类* SoftEngineer object* 1.伴生类和伴生对象之间可以互相访问 private属性和方法* 2.apply存于伴生对象中 能够实现伴生类创建对象的功能 ,相当于java中的工厂模式的定义*/ class SoftEngineer(val exp:Int){private var salary=1000def getHasGF()={SoftEngineer.hasGF //访问伴生对象中私有变量}val hasHair=SoftEngineer.hasHair()}object SoftEngineer{private var hasGF=false//定义方法 访问伴生类的私有变量def getSalary()={val engineer = new SoftEngineer(10)engineer.salary //访问私有变量}private def hasHair()={true}def apply(exp:Int): SoftEngineer = new SoftEngineer(exp) }
-
object Scala_06_object {def main(args: Array[String]): Unit = {val engineer = new SoftEngineer(10)println(engineer.getHasGF())println(engineer.hasHair)println( SoftEngineer.getSalary())val engineer2 = SoftEngineer(10) //Array(“dd”) List("ddd")}}
2.7 main函数
-
//通过继承App的方式可以省略掉main //本质上 还是没有省略 App中包含main函数 object Scala_07_object extends App {println("hello app")println(args(0)) }
2.8 继承
-
格式:class 类名 extends 父类 1.scala单继承 2.子类可以继承父类的非私有的属性和方法 3.子类可以重写父类的方法和属性 4.子类可以通过super关键词调用父类的属性和方法/*** 父类 BigDataEngineer* 不可变 name* 可变 age* 方法 study* 子类 HadoopEngineer**/ class BigDataEngineer{val name="BigData"var age=10def study():Unit={println("学习和开发")} } class HadoopEngineer extends BigDataEngineer{//子类覆盖父类中的study方法 overrideoverride def study(): Unit = {age=12super.study()println("开发hadoop")} } object Scala_08_extends extends App{val engineer = new HadoopEngineerprintln(engineer.name)engineer.study() } 问题:子类在创建对象的时候,是否调用了父类的构造器? scala中子类创建对象的时候也同样调用了父类的构造器
-
Scala中构造机制
-
/*** 类 Person_09* 子类 Sun_09*/ class Person_09{println("Person_09") //主构造器调用完成之后直接调用 }class Sun_09 extends Person_09{println("Sun_09") }object Scala_09_extends extends App {val sun_0 = new Sun_09//根据打印结果//在子类创建对象的过程中,调用了父类的构造器的 }
-
2.9 子类调用父类的构造器
-
子类主构造参数,父类主构造器有参数 子类主构造器有参数,父类主构造器也有参数/*** 父类PC 电脑(cup memory)* 子类 NotePC* 台式机:DeskPC(cup memory)*/ class PC(val cpu:Int,val memory:Int)class NotePC extends PC(cpu = 10,memory = 20)class DeskPC(cpu:Int,memory:Int) extends PC(cpu,memory)object Scala_10_extends {def main(args: Array[String]): Unit = {val n = new NotePCprintln(n.cpu)println(n.memory)println("----------------------")val deskPC=new DeskPC(30,60)println(deskPC.cpu)println(deskPC.memory)} }
2.10 抽象类
-
定义: abstract class 类名 1.可以定义抽象方法和抽象属性(没有初始化的属性) 2.可以非抽象的方法和非抽象属性 3.如果方法或者属性被final修饰,不能够被覆盖/*** Employee 员工* val name 抽象* var age 非抽象的* 抽象方法 work* 非抽象方法 study* final 方法:sleep*/ abstract class Employee {val name: String //抽象属性 数据类型不能够省略var age = 25def work(): Unit //抽象方法返回值类型不能够省略def study(): Unit = {println("学习公司文化")}final def sleep(): Unit = {println("休息")} }class ScalaEmployee extends Employee {/*** override 如果覆盖的是非抽象的方法或者属性 这里不能够省略* 如果覆盖的是抽象方法或者属性 这里可以省略*/override val name: String = "scala"override def work(): Unit = {println("开发scala应用程序")}}object Scala_11_extends extends App {private val employee = new ScalaEmployeeprintln(employee.name)employee.work()employee.study() }
2.11匿名内部类
-
应用场景:ScalaProgramer 只会开发scala应用程序。python class ScalaProgrammer {def workerByScala(): Unit = {println("开发scala应用程序")} } object Scala_12_innerclass {def main(args: Array[String]): Unit = {//python项目 临时性需求val scala= new ScalaProgrammer {def workerByPython(): Unit = {println("学习并开发python")}}scala.workerByPython()scala.workerByScala()println(scala.getClass)} }
2.12 超级父类
-
Any 超级分类AnyRef 所有引用类型对象的超级父类 ScalaProgrammerAnyVal 所有值类型对象的超级父类 Int Double...
2.13 类型转换和类型判断
-
子类继承父类,父类的引用可以指向子类对象。父类的引用是多态的。多态的问题 :类型转换异常* val worker = w.asInstanceOf[Worker]1. 对象.isInstanceOf[类型] 模糊判断 不精准* 2. 对象.getClass=classOf[类型] class Worker {def work(): Unit = {println("工作")} }class JavaWorker extends Worker {def workByJava(): Unit = {println("开发java项目")} }object Scala_13_change {def boss(w: Any): Unit = {//将any对象转换成 worker对象//判断对象的类型/*** 1. 对象.isInstanceOf[类型] 模糊判断 不精准* 2. 对象.getClass=classOf[类型]*/if (w.isInstanceOf[Worker]) {val worker = w.asInstanceOf[Worker]worker.work()} else {println("回家等消息")}}def boss2(w: Any): Unit = {//将any对象转换成 worker对象//判断对象的类型/*** 1. 对象.isInstanceOf[类型] 模糊判断 不精准* 2. 对象.getClass=classOf[类型]*/if (w.getClass()==classOf[JavaWorker]) {val worker = w.asInstanceOf[JavaWorker]worker.workByJava()} else {println("回家等消息")}}def main(args: Array[String]): Unit = {val worker = new Worker/*boss(worker)boss(new Student)*/val javaWorker = new JavaWorkerboss2(worker)} }
2.14特质
-
特质的功能
- 格式:trait 名称
- 功能:
- 特质可以作为java中的接口使用
- 特质可以作为抽象类使用
- 特质可以扩展对象的方法(1 个方法 --》多个方法)
- 特质可以扩展特定方法的功能
-
特质作为接口使用
-
/*** 定义* trait 名称* 可以作为接口使用* 1.可以定抽象方法* 2.接口可以多实现*/ 格式:类 extends Tarit名称 with Tarit名称2 with Tarit名称3trait HelloTrait {def sayHellByChina(): Unit }trait HelloTraitHanguo {def sayHellByHanguo(): Unit }trait HelloTraitTaiguo {def sayHellByTaiguo(): Unit }class HelloTraitImpl extends HelloTrait with HelloTraitHanguo with HelloTraitTaiguo {override def sayHellByChina(): Unit = {println("你好")}override def sayHellByHanguo(): Unit = {println("阿尼哈沙有")}override def sayHellByTaiguo(): Unit = {println("萨瓦迪卡")} }object Scala_14_trait {def main(args: Array[String]): Unit = {val impl = new HelloTraitImplimpl.sayHellByChina()impl.sayHellByHanguo()impl.sayHellByTaiguo()} }
-
-
特质作为抽象类使用
-
trait AbstractTrait {//非抽象属性和方法val name = "itcast"def study(): Unit = {println("学习")}//抽象属性和方法val age: Intdef work(): Unit}class AbstractTraitImpl extends AbstractTrait {override val age: Int = 10override def work(): Unit = {println("工作")} }object Scala_15_trait extends App {private val impl = new AbstractTraitImplprintln(impl.age)println(impl.name)impl.work()impl.study() } 特质和抽象类的区别1.抽象类可以有自己的主构造器以及初始化参数2.特质可以多实现但是抽象类只能进行单继承或者多重继承
-
-
特质扩展对象的功能
-
package cn.itcast.day02class Tank {def shoot(): Unit = {println("发射子弹")} }trait Aim {def aim(): Unit = {println("瞄准")} }trait Scan {def scan(): Unit = {println("扫描")} }trait Fly{def fly():Unit }object Scala_16_trait {def main(args: Array[String]): Unit = {val tank = new Tank with Aim with Scan with Fly{override def fly(): Unit = {println("飞上天")}}tank.scan()tank.aim()tank.shoot()tank.fly()} }
-
-
特质扩展特定方法的功能
-
super: 线性调用的标志符,线性是动态过程 是根据特质的混入顺序有关的 线性执行顺序:自右向左的过程class Tank2 {def shoot(): Unit = {println("发射")} }trait Aim2 extends Tank2 {override def shoot(): Unit = {println("瞄准")super.shoot()} }trait Scan2 extends Tank2 {override def shoot(): Unit = {println("扫描")super.shoot()} } class SuperTank extends Tank2 with Aim2 with Scan2object Scala_17_trait {def main(args: Array[String]): Unit = {val tank = new SuperTanktank.shoot()} }
-
-
特质构造机制
-
构造机制的执行原则: 从左往右 自上而下trait T0{println(0) } trait T1{println(1) } trait T2{println(2) } trait T3 extends T1{println(3) } class Timpl extends T0 with T3 with T2 with T1{println("Timpl") }object Scala_18_trait extends App {//1 2 1 3 0// Timpl 1 2 1 3 0new Timpl // 从左往右 自上而下 }
-
3. 模式匹配
-
功能类似于java中switch结构,但是要比swith强大的多
- 数值
- 数据类型
- Array
- List
- Tuple
- Map
- 自定义数据类型
-
结构:value match {case 需要匹配值或者类型 =>{ 执行逻辑}case _ => {执行逻辑} //默认的匹配}
-
模式匹配值匹配
-
//值匹配 val arr = Array("hadoop", "scala", "spark") var value = arr((math.random * arr.size).toInt) //println("value:" + value) value="java"/*** value match {* case 需要匹配值或者类型 =>{ 执行逻辑}* case _ => {执行逻辑} //默认的匹配* }*/ value match {case "hadoop" => println("匹配Hadoop")case "scala" => println("匹配scala")case "spark" => println("匹配spark")case _ =>println("默认匹配") }
-
-
数据类型匹配
-
object DataType {def main(args: Array[String]): Unit = {val arr=Array("hadoop",1.34,10,true)var value = arr((math.random * arr.size).toInt)println("value:"+value)value match {case s:String => println(s+"-------------")case d:Double => println(d+"-------------")case i:Int => println(i+"-------------")case b:Boolean =>println(b+"-------------------")}} }
-
-
模式匹配数组
-
object MatchArray{def main(args: Array[String]): Unit = {val arr=Array("hadoop",1.34,10,true)arr match {//能否有个配所有arraycase Array(_*) =>println("4444444")//非精确匹配case Array("hadoop",_*) =>println("333333")//占位符匹配case Array("hadoop",1.34,_,_) =>println("222222222")//精确匹配case Array("hadoop",1.34,10,true) =>println("111111")}} }
-
-
模式匹配列表
-
object MatchList{def main(args: Array[String]): Unit = {val list=List("hadoop","spark","scala")list match {case "hadoop"::"spark"::"scala"::Nil =>println("sfsfsfdsfsdsdfd")//模糊匹配case List(x,_*) =>println(x)case List(x,y,_) =>println(x+"\t"+y)//精确匹配case List(x,y,z) =>println(x+"\t"+y+"\t"+z)case List("hadoop","spark","scala") => println("精确匹配list")}} }
-
-
模式匹配Tuple
-
object MatchTuple {def main(args: Array[String]): Unit = {val t = ("hadoop", 1.23, 10, true)t match {case (x,_,_,_) =>println("sdfdsfds")case _ =>println("默认匹配。。。。")//case ("hadoop",_*) =>println("")case ("hadoop",_,_,_) =>println("匹配占位符tuple")case ("hadoop", 1.23, 10, true) =>println("精确匹配tuple")}} }
-
-
模式匹配Map
-
object MatchMap{def main(args: Array[String]): Unit = {val map=Map("hadoop"->100,"scala"->50)val value=map.get("java")value match {case Some(x) =>println(x)case None =>println("没有值")}} }
-
-
模式匹配自定数据类型
-
样例类 case class 名称
- 样例类跟普通类区别:样例类能够自动构建apply方法
-
样例对象
- case object 名称 :应用场景 只是作为标志
-
case class Task(name: String)case object TaskObjectobject MatchCaseClass {def main(args: Array[String]): Unit = {val arr = Array(Task("itcast"), TaskObject)val value = arr((math.random * arr.size).toInt)println("value:" + value)value match {case Task(name) => println("name:" + name)case TaskObject => println("匹配样例对象")}} }
-
4. 偏函数
-
把模式匹配这种形式 放在一个方法或者一个函数中,就构成一种新的函数,偏函数 //方法 def 名称(参数)= value math{case 操作 } //函数 val 名称:PartialFunction[输入数据类型,返回值数据类型] ={case 操作 }object Scala_20_pianhanshu {def intMatch(x: Int) = x match {case 10 => println("10")case 100 => 100}def main(args: Array[String]): Unit = {intMatch(10)println(intMatch(100))val matchFuncion: PartialFunction[Int, String] = {case x:Int => x + " is even"}println(matchFuncion(10))} }
5.逆变协变非变
-
class Apple class RedApple extends Apple class Box[T] 问题:RedApple 是 Apple 子类, Box[RedApple] 是不是 Box[Apple]子类? 假如 Box[RedApple] 是 Box[Apple]子类val box:Box[Apple] =new Box[RedApple] 则成立 ,反之则不成立 答案 :以上假设不成立要想让以上操作成立 需要协变操作 class Box[+T] 逆变:class Box[-T] val box:Box[RedApple] =new Box[Apple]
class RedApple extends Apple
class Box[+T] //协变
class Box2[-T]
object Scala_21_fanxin {
def main(args: Array[String]): Unit = {
val box: Box[Apple] = new Box[RedApple]val box2:Box2[RedApple] =new Box2[Apple]
}
}
总结:
C[T]: A是B的子类 C[A]与C[B]之间没有任何关系 非变操作
C[+T]: A是B的子类 C[A]是C[B]的子类 协变操作
C[-T]: A是B的子类 C[A]是C[B]的父类 逆变操作
6.上下界
-
上下界 影响的是方法的入参U>:Class U 带表的class本身以及其父类 下界操作 下界限制不住 U<:Class U 代表class 本身以及其子类 上界操作class OldMan extends Manclass OldOldMan extends OldManclass YoungMan extends Manclass ChildMan extends YoungManclass Sport {//添加下界操作 U 代表的是 OldMan 本身 或者是其父类 下界操作 其实是无下界def guangchangwu[U >: OldMan](man: U): Unit = {println("广场舞")}//U 带表示 YoungMan本身以及其子类def qiaodaima[U<:YoungMan](man: U): Unit = {println("敲代码")} }object Scala_22_upanddown {def main(args: Array[String]): Unit = {val sport = new Sportval yman = new YoungManval oman = new OldManval ooman=new OldOldManval cman = new ChildMan/* sport.guangchangwu(yman)sport.guangchangwu(oman)sport.guangchangwu(ooman)*/sport.qiaodaima(cman)} }
7.Scala并发操作
-
格式: class 线程类 extends Actor{def act()} //启动线程actor.start()/*** 创建线程类 MyActor*/ class MyActor(val name: String) extends Actor {override def act(): Unit = {for (i <- 0 to 10) {println(name + ":" + i)}} }object Scala_23_actor {def main(args: Array[String]): Unit = {val itcast = new MyActor("itcast")val tian = new MyActor("Tian")itcast.start()tian.start()} }
-
Actor基于消息机制的并发
-
actor能够发送消息 和接受消息,根据消息的不同,去执行不同的业务逻辑
-
! 发送消息
-
class MyActor2 extends Actor {override def act(): Unit = {var flag = truewhile (flag)receive { //阻塞case "start" => println("启动成功") //执行逻辑完成后自动退出case "test" => println("测试")case "end" => {println("退出")flag = false}}} }object Scala_24_actor {def main(args: Array[String]): Unit = {val actor = new MyActor2()actor.start()actor ! "start"actor!"test"actor ! "end"} }
-
-
loop react
-
class MyActor2 extends Actor {override def act(): Unit = {loop{react{case "start"=>println("启动成功过")case "test" =>println("测试")case "end"=> exit()}}} }object Scala_24_actor {def main(args: Array[String]): Unit = {val actor = new MyActor2()actor.start()actor ! "start"actor!"test"actor ! "end"} }
-
-
Actor发送消息的三种方式
-
! 异步消息 并且无返回值
-
!? 同步消息 有返回值
-
!! 异步消息 有返回值 Future[Any]
-
同步消息和异步消息
- 同步消息:发送消息后,会等待消息执行逻辑完成,再返回
- 异步消息:发送消息后直接返回,返回会在将来的某一时刻返回 Future[Any]
-
总和案例:
- 结合样例类方式 来整同步消息和异步消息以及返回值
- 需要构建3个样例类
-
/*** 消息模型* 同步消息* 异步消息* 返回值消息*/ case class SynMsg(msg: String, time: Long)case class AsynMsg(msg: String, time: Long)case class ReplayMsg(msg: String)class MsgActor extends Actor {override def act(): Unit = {loop {react {case SynMsg(msg, time) => {Thread.sleep(time)println(msg)sender ! ReplayMsg(msg + "---SynMsg-----")}case AsynMsg(msg, time) => {Thread.sleep(time)println(msg)sender ! ReplayMsg(msg + "---AsynMsg-----")}}}} }object Scala_25_actor {def main(args: Array[String]): Unit = {val actor = new MsgActoractor.start()/*val msg1=actor!?SynMsg("itcast",5000)val msg2=actor!?SynMsg("itcast2",1000)println(msg1)println(msg2)*/val msg1 = actor !! AsynMsg("itcast", 5000)val msg2 = actor !! AsynMsg("itcast2", 1000)val list = ListBuffer[Future[Any]]()list += msg1list += msg2while (list.size > 0) {for (msg <- list) { //msg:Future[Any]//判断future是否接收到数据if (msg.isSet) { //ture 代表已经接受到数据val replayMsg = msg.apply().asInstanceOf[ReplayMsg]println(replayMsg.msg)list -= msg}}}} }
-
-
基于Actor的wordcount案例
-
操作步骤:
- 准备文件 a.txt b.txt c.txt
- 构建actor
- 通过样例类 构建消息的载体 case FilePathMsg(path:String)
- actor接受消息 并且处理文件数据
- 接受返回值 并且将返回值放在ListBuffer进行管理
- 对ListBuffer进行循环操作,拿到文件处理数据,把文件处理数据放在一个集合中
- 对集合进行汇总处理
-
package cn.itcast.day02import java.io.Fileimport scala.actors.{Actor, Future} import scala.collection.mutable.{ArrayBuffer, ListBuffer} import scala.io.Source/*** 样例类方式构建消息载体*/ case class FilePathMsg(path: String)//返回值消息 case class FileResultMsg(result: Map[String, Int])class FileActor extends Actor {override def act(): Unit = {loop {react {case FilePathMsg(path) => {//读取文件数据 并且进行处理 Mapval map: Map[String, Int] = Source.fromFile(new File(path)).getLines().mkString(",").split(",").map((x: String) => (x, 1)).groupBy((t: Tuple2[String, Int]) => t._1).mapValues((arr: Array[Tuple2[String, Int]]) => arr.length)sender ! FileResultMsg(map)}}}} }object Scala_26_wordcount {def main(args: Array[String]): Unit = {val arr = Array("d:/a.txt", "d:/b.txt", "d:/c.txt")val list = ListBuffer[Future[Any]]()//数组封装了每个文件处理好的数据val fileDataArray = ArrayBuffer[Map[String, Int]]()for (path <- arr) {val actor = new FileActoractor.start()//发送异步消息 并且接受到每个文件的处理结果val result = actor !! FilePathMsg(path)list += result}while (list.size > 0) {for (f <- list if f.isSet) {val fileResult = f.apply().asInstanceOf[FileResultMsg]fileDataArray += fileResult.resultlist -= f}}val wordcount = fileDataArray.flatten.groupBy((t: Tuple2[String, Int]) => t._1).mapValues((arr: ArrayBuffer[Tuple2[String, Int]]) => {arr.map((t: Tuple2[String, Int]) => t._2).sum})println(wordcount)} }
-
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 摄像头标定原理
摄像头标定原理基本概念 视角 : 视野边界的夹角,即成像范围 图像噪音 : 指的是图像中的杂点干挠。表现为图像中有固定的彩色杂点。 彩色深度 : 反映对色彩的识别能力和成像的色彩表现能力,实际就是A/D转换器的量化精度,是指将信号分成多少个等级。常用色彩位数(bit)表示。…...
2024/4/24 14:21:41 - OpenGL EGL简介
OpenGL EGL结构简介EGL,它是图形渲染API(如OpenGL ES)与本地平台窗口系统的一层接口,保证了OpenGL ES的平台无关性。EGL(The Khronos Platform Graphics Interface)提供了一种方法用于通过客户端API和本地窗口系统进行渲染,客户端API包括用于嵌入式系统的3D渲染器OpenGL…...
2024/5/8 12:07:06 - 练习8-2 计算两数的和与差 (10分)
题目链接: 练习8-2 计算两数的和与差 (10分) #include <stdio.h>void sum_diff( float op1, float op2, float *psum, float *pdiff );int main() {float a, b, sum, diff;scanf("%f %f", &a, &b);sum_diff(a, b, &sum, &diff);printf("…...
2024/4/24 14:21:38 - XSS介绍及利用学习笔记
文章目录什么是XSSCookieSession区别目的和手段 什么是XSS 跨站脚本 英语:Cross-site scripting,为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。通常简称为:XSS XSS是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,…...
2024/4/27 2:25:46 - 【Intellij idea】运行:Cannot start compilation:the output path is not specified
今天开始用ideallij idea进行java项目的编辑、运行。开始的时候挺顺利的,中间没有出现什么状况,后来运行的时候就遇到了问题,报错了:Cannot start compilation:the output path is not specified for…不知道这是怎么回事,自己刚刚开始接触这个软件的使用,所以就开始进行…...
2024/4/24 6:28:08 - 组合数据中的列表基础知识
列表常用基础知识 对我来说写博客就相当于记笔记,还是用自己理解记下来好点。 组合数据类型:列表,元组,字典,集合那就讲一下常用的列表。 列表: 1)定义:一些数据的组合,不一定是同样类型。 2)格式: ①[ ] ②所有元素用","隔开。 3)构成:索引(从0开始排序…...
2024/5/8 11:38:03 - 嵌入式项目最终版——workstation.cpp
#include<winsock2.h> #include<stdio.h> #include<string.h> #include #include"ByteQueue.h" #include"NioService_workstation.h" #include"trans.h" using namespace std; #pragma comment(lib,“ws2_32.lib”) define BU…...
2024/5/8 11:55:09 - 图像拼接算法简介
图像拼接方法简介图像拼接的主要流程 图像拼接的三个关键技术点:预处理、图像配准、图像融合 i). 图像预处理 包括数字图像处理的基本操作(如去噪,边缘提取,直方图处理等)、建立图像的匹配模板以及对图像进行某种变换(傅里叶变换、小波变换等); ii). 图像配准 采用一…...
2024/5/4 23:17:22 - 美团深度学习系统的工程实践
背景深度学习作为AI时代的核心技术,已经被应用于多个场景。在系统设计层面,由于其具有计算密集型的特性,所以与传统的机器学习算法在工程实践过程中存在诸多的不同。本文将介绍美团平台在应用深度学习技术的过程中,相关系统设计的一些经验。本文将首先列举部分深度学习算法…...
2024/4/24 14:21:33 - (理论)推荐系统——从0开始大数据开发实战:电影推荐系统(scala版)
一、推荐系统根据用户的历史数据发掘用户的潜在需求。二、长尾商品区别于热门商品,热门商品代表用户们的普遍需求,而长尾商品代表用户的个性化需求。三、推荐方法1)专家推荐(人工推荐):资深专家根据经验给出推荐。2)统计推荐(热门推荐):根据历史记录进行统计,得出推…...
2024/4/24 14:21:34 - 技术书源码下载网站分享
6.18买了一些技术书回来,其中包括Spring实战第五版,书中提示去异步社区https://www.epubit.com/books下载配套源码,于是访问该网站确实是可以下载的,不用图书编号什么的 于是我试了试其他书, 我想既然是可以免费下载的,分享出来应该也不会侵权吧,对于技术人员确实是一个…...
2024/4/24 14:21:30 - 2. 验证用户信息
安全性的两个基本支柱是身份验证和授权。身份验证是标识用户的过程,授权在验证了所标识的用户是否可以访问特性资源之后进行。本节介绍如何使用标识符和principals获得用户的信息。...
2024/5/4 23:01:25 - 大数据平台与技术 一个简单总结
俺做的十分简单,主要作为一种章节目录式的提要,可做预习和复习用。 目录标题(一)大数据产生的背景、特征、价值与意义(二)HDFS(三)MapReduce(四)HBase(五)spark core(六)spark streaming(七)storm 前面俺看到有同学用思维导图记录学习,俺也做了个简单的图整理…...
2024/4/24 14:21:29 - int转string的方法
在用angular写前端的时候,遇到了一个问题。就是一组数据在传参之前,参数要进行加密,但是加密的方法要求,传入的参数需要是String,但是实际传入的参数是int类型,如何从int类型转换为String?解决方法是在传入加密方法的时候,在int类型的后面加上一个空的字符串,int就转换…...
2024/5/5 2:25:09 - 图像纹理分析
图像纹理分析纹理 纹理反映了物体表面颜色和灰度的某种变化,这些变化与物体本身的属性相关。有些图像在局部区域内呈现不规则性,而在整体上表现出某种规律,把这种局部不规则而宏观有规律的特性称之为纹理。以纹理特性为主导的图像,称之为纹理图像;以纹理特性为主导特性的区…...
2024/5/4 17:04:21 - Chen06
数学: BigInteger大数操作: 基本数据类型转大数:Bigdecimal c = Bigdecimal.value(X); 输入:a = sc.nextBigInteger(); 加法:c = a.add(b); 减法:c = a.subtract(b); 乘法:c = a.multiply(b); 除法:c = a.divide(b); 取余:c = a.remainder(b); 两数字交换: int temp=…...
2024/5/4 22:04:58 - C++笔记:关于string的日常积累
这篇文章需要随时更新,方便自己可以知道一些常识(真是惭愧,有的时候总是会因为这种没有掌握牢靠的小细节半个跟头,总是百度也不好,基本的得记下来) 1.关于字符串的加法(很可笑,我竟然不知道字符串可以和单个字符直接相加) (官网的一个例子,多去官网看看) #include<…...
2024/5/4 16:06:17 - TCP三次握手
什么是事务 概念: 事务一般特指数据库事务(Datebase Transaction),是指作为一个程序执行单元执行 的一系列操作,要么完全执行,要么完全不执行 事务的特性 原子性(atomicity) 一个事务是一个不可分割的工作单位. 一致性(consistency) 事务必须是使数据库从一个一致性状态变到另一…...
2024/4/15 3:16:24 - python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)
文章目录斐波那契数列阿姆斯特朗数十进制转二进制bin、八进制oct、十六进制hex补充进制转换源码python中::和:的区别 说明:本篇博文的知识点大部分来自 Python3 实例 斐波那契数列 下面代码实现了判断用户输入值,只有输入为大于等于1的正整数时,才会打印结果。 网上看到的是…...
2024/5/4 20:46:54 - 【37】kotlin 协程
协作程序,解决异步问题应用层完成调度支持协程得语言类如 Lua C#...
2024/5/4 23:25:18
最新文章
- mac系统安装steam报错-解决办法
今天给虚拟机装了个苹果系统,然后想装个steam,从steam的官方下载安装steam_osx.dmg时,总是报“steam_osx已损坏,无法打开,请移动到废纸篓“。搜了一下找到了解决办法,这里记录一下。 双击steam_osx.dmg时&…...
2024/5/8 20:24:27 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - Docker搭建daapd
使用 daapd Docker 镜像搭建音乐流媒体服务器 daapd 是一个开源的音乐流媒体服务器,它支持 AirPlay 和 iTunes 音乐共享协议,可以让用户通过网络访问和播放音乐。通过 Docker 镜像,可以在服务器上轻松部署 daapd,并将其作为家庭或…...
2024/5/5 11:46:57 - 【蓝桥杯嵌入式】13届程序题刷题记录及反思
一、题目分析 考察内容: led按键(短按)PWM输出(PA1)串口接收lcd显示 根据PWM输出占空比调节,高频与低频切换 串口接收(指令解析)【中断接收】 2个显示界面 led灯闪烁定时器 二…...
2024/5/6 16:35:32 - 链表面试题
删除链表中等于给定值 val 的所有节点 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ …...
2024/5/8 7:58:14 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/8 19:33:07 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) 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 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在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