一、声明:

此文章属于个人阅读深入理解java虚拟机的总结记录,如有错误望提出。

文章目的:一方面回顾学习内容加深理解,另一方面为以后重新阅读《深入理解java虚拟机》打个审批和问题标记记录。

二、内容:

以下都是以Hotspot虚拟机为准的总结。

第一部分未阅读;

第二部分:第二章

1、jvm布局:

 

jdk1.6版本JVM布局分为:heap(堆),method(方法区),stack(虚拟机栈),native stack(本地方法栈),程序计数器共五大区域。

其中方法区包含运行时常量池。堆和方法区是线程共享的,虚拟机栈和本地方法栈、程序计数器是随线程而建的。

 

1.1、堆:储存对象信息和数组。对象信息/数组包括对象头,实例数据和对齐填充共三个区域;

 

1.1.1、对象头包括二/三部分内容:

 

一是类型指针,即对象指向它的类元数据的指针,通过这个指针来确定那个类的实例(指向方法区储存的对象类型数据);

二是用于存储对象自身的运行时数据,如哈希码,gc分代年龄,锁状态标志,线程持有的锁,偏向线程id,偏向时间戳等(ps:不了解这些,后续学习);

三是如果存储的是数组,对象头除了包含以上俩个内容外还必须得有数组的长度数据。

其中类型指针还有一个知识点是对象的访问定位,对象的访问方式主流的有俩种,句柄和直接指针。这俩种区别与特点是:

①、在对象被移动时(垃圾收集时会移动对象即内存整理),句柄只需修改句柄中的对象实例数据的指针,栈中的reference(引用)不需要修改。而直接指针需要修改。

②、直接指针的优势就是速度更快,因为少了一次指针定位的时间开销。

-- 具体句柄和直接指针图解详见书本第49页。

 

1.1.2、实例数据包括实例化对象存储的数据。

 

1.1.3、对齐填充:对齐填充并不是必然存在的,也没有特殊含义。由于hotspot甲鱼的臀部(规定)对象的大小必须是8字节的整数倍。而对象头部分正好是8字节的倍数(1倍或者2倍),因此,当对象实例数据部分没有对齐时就需要通过对齐填充来补全。

 

1.1.4、对象创建分配内存有俩种方式:指针碰撞(无内存泄漏)和空间列表(内存不连续,分配时找到一块足够大的内存划分给对象实例);选择哪种方式创建由垃圾收集器是否有压缩整理功能决定。

 

1.2、方法区:存储已被jvm加载的类信息(类名,访问修饰符,字段描述,方法描述等)、常量、静态变量、即时编译器编译后的代码(不清楚什么是即时编译器编译后的代码)等数据。也就是说 final/static 的“基本数据类型变量”数据和指针放在方法区,没有final/static 的“基本数据类型变量”数据和指针放在虚拟机栈中。jdk1.6及以前方法区和堆独立区域,jdk1.7方法区中的字符串常量池放在堆中,jdk1.8删除方法区改成元空间(还没太了解)。

 

1.2.1、运行时常量池:存储编译期间生成的各种字面量和符号引用。其中有个知识点是string的instern()方法。

详情见http://blog.csdn.net/hupoling/article/details/62423613的总结。

 

1.3、虚拟机栈:其实严格来说虚拟机栈包含局部变量表、操作数栈、动态链接、方法出口等信息。其中局部变量表存储八种基本数据类型(byte,boolean,char,short,int,float,long,double)和对象引用。平常讨论的栈都是指的局部变量。

 

1.4、本地方法栈:本地方法栈和虚拟机栈作业是十分相似的,只不过虚拟机栈是为虚拟机执行java方法(也就是字节码)服务,而本地方法栈是为虚拟机执行native方法服务。sun hotspot虚拟机本地方法栈和虚拟机栈合二为一

 

1.5、程序计数器:可以看做是当前线程执行字节码的行号指示器。此区域是jvm规范中唯一没有规定任何OOM情况的区域。

 

 

2、直接内存:在jdk1.4之后新加入了NIO,可以使用native函数库直接分配堆外内存(本机内存),然后通过一个存储在java堆中的directByteBuffer对象作为这块内存的引用进行操作。避免了io在java堆和native堆来回复制数据提示对鞋性能。直接内存大小默认是java堆xmx(不知道为什么这样设计 容易误导);

 

3、OOM

 

3.1、堆溢出:Xmx:最大堆内存,Xms:最小堆内存,当Xmx=Xms时堆不扩展。-XX:+HeapDumpOnOutOfMemoryError ;实例化大量对象可测试堆溢出。

 

3.1.1、OOM解决:增大xmx扩大堆内存

 

3.2、栈溢出:栈溢出有俩种情况:

 

3.2.1、栈的深度超过最大深度限制,抛出StackOverflowError异常

 

3.2.2、栈扩展时内存不足,抛出OOM;

 

Xss:每个栈的大小;Xoss:本地方法栈大小,不过实际上xoss无效,栈容量只由-Xss参数设置。

3.2.3、实测中3.2.1说法有点不全。单线程下只有一个栈,所以只可能出现StackOverflowError,无论是栈的深度太大还是每个栈帧过大到账内存不足;多线程下会出现OOM,不断建线程时会出现内存不足;

 

3.2.4、OOM/StackOverflowError解决:

 

3.2.4.1、OOM:由于栈内存=操作系统内存 - 堆内存 - 方法区内存 - 程序计数器内存,所有可以减小堆内存来扩大栈内存大小。栈内存大小影响系统并发线程量(栈内存>=每个栈的大小xss*线程量);具体设置由n台服务器,每台服务器m个cpu,则最大线程量=n*m;每个栈的大小xss<=栈内存/n*m; 注意一下有个问题 ,这个公式没有直接内存?

 

3.2.4.2、StackOverflowError深度:如果使用jvm默认设置,栈的深度大多数情况下可达到1000~2000,足以在日常开发中使用。注意避免代码中存在超过1000的方法嵌套。每个方法嵌套对应一个栈帧。

 

3.2.4.3、StackOverflowError栈帧大小:单线程下避免代码中存在大量基本类型或对象引用。

 

3.2.4.4、多线程下假设每个栈帧特大,jvm是抛出OOM还是StackOverflowError?(待考察研究)

 

3.3、方法区OOM:-XX:PermSize:最小方法区内存大小;-XX:MaxPermSize:最大方法区内存大小。

 

3.3.1、OOM解决:避免大量的string.intern();避免大量的动态java(jsp,java反射)。

 

3.4、本机直接内存溢出:-XX:MaxDirectMemorySize:最大直接内存;默认为Xmx

 

3.4.1、OOM解决:使用NIO分配本机内存多注意是否超过MaxDirectMemorySize;平常开发容易忽略直接内存;

 

 

 

 

第二部分:第三章

1.垃圾回收条件

jvm垃圾回收分为俩点,一是对象的内存回收也就是堆内存回收,二是字面量(运行时常量池)和类信息内存回收也就是方法区内存回收。

1.1 对象内存回收(heap)

如何判断对象是否可以回收,市场上有引用计数算法和可达性分析算法两种方法 :

1.1.1 引用计数算法:简单来说就是,一个对象A被引用一次,对象A的引用次数就加一。当对象A的引用次数为0(也就是没有其他地方引用此对象)时可以回收。然而这里存在个问题就是 对象之间互相引用 A->B,B->A时 AB无法回收。不过微软公司的com(componet object model)技术用的就是这个算法,而目前流行的主流的jvm没有选用此算法的。

1.1.2 可达性分析算法:简单来说就是,通过一系统成为Gc Roots的对象为起始点,当冲GC Roots到达不了对象A时,则对象A是不可用的,可回收的。

java语言中,GC Roots包括四种对象:

1.1.2.1 虚拟机栈(栈帧中的本地变量表)中引用的对象

1.1.2.2 本地方法栈中(native方法)引用的对象

1.1.2.3 方法区中类静态属性引用的对象

1.1.2.4 方法区中常量引用的对象

之所以是上面四种,总结为:GC管理的主要区域是Java堆,一般情况下只针对堆进行垃圾回收。方法区、栈和本地方法区不被GC所管理,因而选择这些区域内的对象作为GC roots

1.2 方法区内存回收:jvm规范不要求虚拟机在方法区实现垃圾收集(因为性价比低,回收一次回收的空间实际情况很小),但是jvm还是有方法区回收的。

1.2.1 字面量回收:如果一个字面量没有被引用就回被回收;

1.2.2 类信息回收:类信息回收需要同时满足3个条件:

1.2.2.1 java堆中不存在此类的实例;

1.2.2.2 加载该类的classloader已经被回收

1.2.2.3 该类对应的java.lang.Class对象没有任何地方引用,也就是说无法再任何地方通过反射访问该类的方法。

1.2.3 其他常量池的东西 暂不清楚。

 

1.3 四大类型引用:自jdk1.2之后(jdk1.1引用分的种类不够明确),jvm中还有几种类型引用比较特殊;。分别是 强引用、软引用、弱引用、虚引用。

1.3.1 强引用:Object obj=new Object();只要强引用还存在,垃圾收集器永远不会回收被引用的对象。假如obj=null或者obj引用的栈帧出栈(不存在)就会被回收。

1.3.2 软引用:将要发生内存溢出溢出之前,将会把软引用的对象进行回收。SoftReference类实现软引用。

1.3.3 弱引用:只能生存到下一次gc之前。WeakReference类实现弱引用。

1.3.4 虚引用:这个需要注意,虚引用无法用来取得一个对象的实例。虚引用不会对对象的生存时间有任何影响,只是能在这个对象被回收时收到一个系统通知。推荐这篇文章更加了解虚引用:http://www.mamicode.com/info-detail-988201.html。

关于四种引用推荐一篇文章里面有详细例子:http://blog.csdn.net/u011277123/article/details/53908315

 

1.4 finalize() 对象自救

对象在可达性分析之后还需要进行一些逻辑。哪怕对象在可达性分析之后没有发现与GcRoots的引用链,jvm还需要进行下面几步(需要俩次标记):

1.4.1 没有发现引用链,进行第一次标记

1.4.2 判断对象是否要执行finalize()方法:当对象没有覆盖finalize()方法或者已经被执行过一次finalize()方法;则此对象不执行finalize()方法,否则进行执行finalize()方法(把对象放在F-Quene队列中);

jvm自动建立的,低优先级的Finalizer线程去执行放在F-Quene的对象里的finalize()方法。

1.4.3 进行第二次标记,判断对象是否有引用链,没有则回收。

所以如果对象自救(第一次标记没有引用链,第二次标记有引用链),只有在覆盖finalize()方法激活对象(让对象被引用)。

 

2.垃圾收集算法:jvm垃圾收集可以分为四种(严格来说是三种):标记-清除算法;标记-整理算法;复制算法;分代收集算法。

2.1 标记-清除算法:先把可回收内存标记,然后在清除掉;缺点是:会存在内存碎片导致内存泄漏。

2.2 标记-整理算法:先把可回收内存标记,然后让存活的对象都向一端移动,最后清除点端边界以外的内存;缺点:比较标记-清除时间增长;

2.3 复制算法:把内存平分为两份s1,s2;保证只用一个内存区s1,另一个为空s2;把存活的对象复制到为空的那个内存区域s2,然后在清除掉这个区域s1;缺点:内存减半

2.4 分代收集算法:根据jvm特性,年轻代实际每次gc时存活对象较少,故用推荐复制算法;年老代存活对象较多,并且没有其他内存为年老代分配担保(分配担保:举个栗子:年老代为年轻代进行分配担保,当年轻代minor gc内存不足时【比如有个大对象obj1】obj1会放到年老代中;而年老代没有其他空间为其分担了)所以推荐标记-整理算法。

3.hotspot算法实现:暂时未深入理解

4.垃圾收集器:共七中垃圾收集器,分别是serial、parnew、parallel scavenge和cms、serial old、 parallel old、G1;其中serial、parnew、parallel scavenge用于年轻代,cms、serial old、 parallel old用于年老代,g1用于年轻代和年老代。所有收集器都存在stop the world,不过在java发展中 一直在优化停顿时间。

先总结比较这七个收集器:

年轻代:

4.1.Serial:适用于年轻代垃圾回收,复制算法,jdk1.3之前 推荐用于客户端模式(Client)下的虚拟机,属于单线程,无对stop the world优化,属于最老的年轻代垃圾收集器产品;

4.2 ParNew:适用于年轻代垃圾回收,复制算法,jdk1.3发布,推荐用于服务端模式(Server)下的虚拟机,属于多线程,无对stop the world优化,其实就是Serial的多线程版本;是服务端开发的首先;

4.3 Parallel Scavenge:适用于年轻代垃圾回收,复制算法,jdk1.4发布,属于多线程,无对stop the world优化,它是一个可以控制吞吐量的收集器,拥有自适应调节策略;需要注意一点的是,gc停顿时间缩短是牺牲吞吐量和新生代空间来换取的。

stop The World:gc时 需要停止所有线程进行垃圾回收;

吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)

自适应调节策略:虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整参数以提高最合适的停顿时间或最大吞吐量。

年老代

4.4 Serial old :适用于年老代垃圾回收,标记-整理算法,jdk1.5之前,主要用于client下的虚拟机,如果用在server模式下主要有俩个作用:一是jdk1.5以及之前用于与Parallel Scavenger搭配使用,二就是为cms提供后备预案,属于单线程,无stop the world优化。

4.5 Parallel Old:适用于年老代垃圾回收,标记-整理算法,jdk1.6发布,属于多线程,注重于吞吐量控制,是为了Parallel Scavenge定制的;

4.6 CMS: 适用于年老代垃圾回收,标记-清除算法,jdk1.5发布,推荐server模式下,属于多线程,对stop the world有优化,CMS是一种以获取最短回收停顿时间为目标的收集器,也就是优化服务器响应速度。CMS分为4步:其中 初始化标记,重新标记 stop the world

4.6.1 初始标记:仅仅只是标记GcRoots可以直接关联的对象;

4.6.2 并发标记:进行gcroots tracing(也就是 引用链搜索);优化成并发

4.6.3 重新标记:修正并发标记因用户程序继续运行而导致标记产生变动那一部分对象的标记记录。

4.6.4 并发清除:并发清理标记的对象内存。

4.6.5 CMS缺点:

4.6.5.1 CMS对cpu资源非常敏感,默认启动的回收线程数是(cpu数量+3)/4;垃圾回收线程数量不少于25%的cpu资源,当cpu越大,线程数/cpu总量 越小;但是当cpu小于4个时 显得就不怎么合适了;

4.6.5.2 无法处理浮动垃圾,需要等下一次gc才能处理;并且还需要预留一部分空间提供并发收集时的用户程序运作使用,即启动阈值(-XX:CMSInitiatingOccupancyFraction 阈值百分比);要是CMS运行期间预留的空间不满足程序需要,就会出现一次“Concurrent Mode Failure”失败,这是虚拟机启动后备预案:临时启用Serial Old,这样一来停顿时间就很长了,所以-XX:CMSInitiatingOccupancyFraction 设置太高容易导致大量“Concurrent Mode Failure”失败,性能反而降低

4.6.5.3 由于用的是标记-清除算法,所以会出现内存碎片;CMS提供-XX:UseCMSCompactAtFullCollection开关参数(默认为开),用于CMS收集器要进行FullGC时进行内存碎片合并整理,-XX:CMSFullGCsBeforeCompaction 用来设置执行多少次不压缩Full GC后跟着来一次带压缩的(默认为0,表示每次进入Full GC都进行碎片压缩)。

 

年轻代+年老代

4.7 G1:jdk1.7发布,整体看是“标记-整理算法”,从局部(俩个Region之间)上来看是基金“复制”算法实现,也就是说没有内存碎片;

如果应用追求低停顿,那G1现在可以作为一个尝试的选择,如果应该追求吞吐量,G1并不会带来什么特别的好处!!!

 

5.内存分配策略:共有 4个策略

5.1 对象优先在Eden分配:major gc时经常会伴随至少一次的minor gc,但并非绝对,比如说 Parallel Scavenge就是直接major gc没有伴随minor gc;

5.2 大对象直接进入老年代 -XX:PretenureSizeThreshold设置最大对象,单位B;PretenureSizeThreshold参数只对Serial和ParNew两款收集器有效;Parallel Scavenge收集器不需要设置;如果遇到必须使用此参数的场景,可以考虑ParNew+CMS组合;

5.3 长期存活的对象放入老年代:虚拟机给每个对象定义了一个对象年龄(Age)计数器;gc一次Age+1,当Age大于一定程度(默认为15岁)就会被晋升到老年代;-XX:MaxTenuringThreshold:最大年龄;

5.4 动态对象年龄判定:如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于改年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄;

5.4空间分配担保:jdk6 update 24后,只要老年代的连续空间大于新生代对象总大小或者历次晋升的平均大小就会进行major gc,否则Full GC;

 

 

第二部分:第四章

1.jdk的命令行工具简单总结介绍

1.1 jps: 获取虚拟机进程 vmid;jps -v :显示虚拟机对应启动的参数

1.2 jinfo:获取虚拟机参数值和动态修改部分运行期可改的参数。jinfo [option] pid例如:jinfo -flag PermSize vmid;显示vid对应的虚拟机的方法区大小;jinfo -flag +/- name:添加或删除name属性;

1.3 jmap:java内存影像工具, jmap -heap vmid:显示堆的详细信息,如参数配置,分代状况;jmap -histo vmid:显示堆中对象统计信息,包括类,实例数量,合计容量。

1.4 jstat:虚拟机监控工具,jstat -gccause vmid:输出已使用空间占各自总空间的百分比;

1.5jhat:虚拟机堆转储快照分析工具;jstack:java堆栈跟踪工具;

2.jdk的可视化工具:jConsole和visualVm;其中VisualVM有个BTrace插件值得注意。

2.1 BTrace 动态日志跟踪:可以打印调用堆栈、参数、返回值、性能监视、定位连接泄漏、内存泄漏、解决多线程竞争问题。如生产上遇到问题时需要方法输入参数和返回输出参数,但开发时没有日记记录,平常做法就是补充上日志,然后在重现上线。而BTrace可以在不停止jvm的情况下动态调试代码。(ps:BTrace后续深入研究)

推荐一篇文章:http://huanghaifeng1990.iteye.com/blog/2121419

第二部分:第五章

简单总结:

一、jvm调优思路:

第一步:jps 获取jvm id;

第二步:获取jvm垃圾收集器种类

第三步:查看gc次数和时间,分析原因来优化

gc次数频繁:①、内存回收率低导致短时间内回收次数多;②、内存大小太小;

gc时间长:①、内存过大;②、内存扩展导致时间长(固定内存大小)

选择适合的收集器也可大幅度优化jvm。

二、优化思路注意点:

1、64位jdk的性能测试结果普遍低于32位jdk;

2、64位jdk由于指针膨胀和数据类型对齐补白导致消耗的内存比32位大;

3、使用nio时,堆外内存不足导致内存溢出。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

后续更新。。。

外链推广:分享一好玩有趣小程序----欢乐鲸工具箱,集摇色子,免费小说,手持弹幕,微信九宫格切图,备忘录,语音随心录,计算器,程序员老黄历,尺子等于一身的便民小程序。永久免费使用。

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

相关文章

  1. Mybatis-Generator开发教程

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据…...

    2024/4/27 3:50:59
  2. 关于华为昇腾芯片的关键问题,这里有你想要的答案

    关注网易智能,聚焦AI大事件,读懂下一个大时代!华为副董事长、轮值董事长徐直军出品 | 网易智能(公众号 smartman163)整理 | 小羿华为昨日在上海举办了一场特殊的全链接大会,完整地公布了华为人工智能战略,也公开了“达芬奇项目”,并且重磅发布了Ascend(昇腾)系列两款…...

    2024/4/27 8:47:34
  3. Golang实现的Base64加密

    base64加密是我们经常看到的一种加密方法,比如ESMTP的验证过程和二进制文件的网际传输等都会用到这种编码。base64的加密方法算是比较简单的一种了,其编码过程是将原文按照每 6bit (记住,是以位为单位的)为一组对原文进行替换,因为6bit 可以表示的值的范围在0~63(2的6次方,…...

    2024/5/4 7:54:51
  4. 微信小程序周报(第二期)

    上周微信小程序出了个『大妈助手』,不知道你关注到没? 微信真是在”搞事情”,就是在”搞事情”的路上~~不管微信官方搞不搞事情,上周还是有很多好的教程和DEMO可以给大家分享哦~一、小程序资讯与教程小程序支付详解+源码(客户端+服务端) 2017-06-11 微信辟谣小程序上线,今…...

    2024/4/27 9:52:17
  5. HCIE认证

    什么是HCIE认证?HCIE(华为认证ICT专家)是华为认证体系中最高级别的认证,旨在打造高含金量的专家级认证,为技术融合背景下的ICT产业提供新的能力标准,以实现华为认证引领ICT行业技术认证,播种ICT行业未来的愿景。 HCIE将帮助ICT从业人员精通通用的企业网络组网方案设计能力…...

    2024/4/27 16:18:00
  6. java-2.mybatis 一对多 多对一 多对多 配置

    https://www.cnblogs.com/jimisun/p/9414148.html mybatis 延迟加载 和 缓存 https://www.cnblogs.com/ctrlcoder/p/10699245.htmlmybatis.type-aliases-package 作用 mapper.xml中的resultType中经常会用到一些自定义POJO,你可以用完全限定名来指定这些POJO的引用,例如 , 又…...

    2024/4/27 4:31:06
  7. 图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示

    *本事例主要讲了如下几点:* 1:将图片转换为BASE64加密字符串.* 2:将图片流转换为BASE64加密字符串.* 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引用的方式和BASE64加密字符串方式展示图片. 首先看工具类: package com.ilucky.util.image;import java.awt.image.Buffe…...

    2024/4/27 17:53:03
  8. 华为面试上机题及答案 JAVA写的

    public class yasuo {/*** @param args* 实现简易字符串压缩算法:一个长度最大为128的字符串,* 由字母a-z或者A-Z组成,将其中连续出现2次以上(含2次)的字母转换为字母和出现次数,* 以达到压缩目的。* 输入:AAAABBBB* 输出:A4B4*/public static String test(String inpu…...

    2024/5/1 1:10:15
  9. myBatis看这一篇就够了,内容经典到让你怀疑人生

    1、写一个最基本的mybatis项目,往数据库中存储息: https://blog.csdn.net/hcrw01/article/details/80139286 2、MyBatis多表查询的不同方式 https://blog.csdn.net/hcrw01/article/details/80147982 3、MyBatis动态sql语句 https://blog.csdn.net/hcrw01/article/details/801…...

    2024/5/4 4:56:33
  10. 微信小程序示例大全

    微信小程序官方Demo(Hao-Wu/WeApp-Demo)微信小应用示例代码(phodal/weapp-quick)微信小应用地图定位demo(giscafer/wechat-weapp-mapdemo)微信小应用- 掘金主页信息流(hilongjw/weapp-gold)微信小程序(应用号)示例:微信小程序豆瓣电影(zce/weapp-demo)微信小程序-豆瓣电影(h…...

    2024/4/30 12:46:22
  11. C# Base64加密解密函数

    C# Base64加密解密函数 namespace FPSS.Common {/// <summary>/// base64加密/解密存储 wubingwang,2018.10.31/// </summary>public class Base64Helper{/// <summary>/// Base64加密,采用utf8编码方式加密/// </summary>/// <param name="s…...

    2024/4/30 23:07:36
  12. 华为HCNA部分试题与分析

    本文章为华为HCNA数通课程中的部分知识点与解析 会不定期更新 企业网络中部署千兆以太网时使用哪种传输介质?超五类双绞线,六类双绞线,光纤 CSMA/CD的作用是什么?在共享式物理介质上去检测和避免冲突的机制总结:先听 后发 边发边听 冲突停止 随机再发1)终端设备不停…...

    2024/4/30 20:06:55
  13. springboot+mybatis整合(入门)

    1、使用idea创建springboot项目 选择web、mybatis 或者在pom.xml增加<!-- mybatis --> <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version…...

    2024/5/1 1:03:43
  14. 如何把自己的Jar包上传到 maven 官方仓库中,Maven上传图文讲解

    之前有同学在本站发布过“Maven的Mirror和Repository 的详细讲解”,这种我们自己搭建仓库和私服,一般这种是服务于公司或者团体。但是针对小“ 团伙 ”或者单兵作战,或者我们希望开源,开发给其他人去用,那么我们可以直接提交到官方(maven.org ),然后dependency 去引入即…...

    2024/4/30 6:07:51
  15. jmeter对称加密+Base64加密(Java的方法执行)

    Jmeter中使用对称加密+Base64加密下个接口参数取值用 ${__P(NewenString,)} 这个是Java的方法,用这个的时候,一定记得将lib文件对安卓的加密插件删除掉(AndroidBase64.jar、myEncrypt),jmeter是先找 jmeter本地的类,没有后然后找java类(就是代码里的引包),将这两个ja…...

    2024/5/4 2:56:35
  16. 思科与华为的区别

    从考试的难度角度上而言,思科考试需要英文水平不能太差,华为认识中文就行,但是众所周知,思科考试有题库啊,即使是一个从来没系统学习过的人,只要认识英文,记忆力够好,一定能考过ccna。在大体上面个人觉得基本的操作原理都相同,只是个别的命令不同而已,比如show和disp…...

    2024/5/1 8:17:21
  17. python3 base64加密

    python3 base64加密第一种写法(通过字符串提取)#方法一 import base64 a = testzifuchuan jm = base64.b64encode(a.encode(utf-8)) b = str(jm) print(b[2:-1])输出结果对于python3,你如果写成了python2的那种语法,你会得到报错,因为在python3里面是字节流,不是字符串,…...

    2024/4/30 17:38:10
  18. Java中Enum类型的序列化及类升级不建议用枚举的原因

    在Java中,对Enum类型的序列化与其他对象类型的序列化有所不同,今天就来看看到底有什么不同。下面先来看下在Java中,我们定义的Enum在被编译之后是长成什么样子的。 Java代码: Java代码 public enum FruitEnum { APPLE, ORAGE } 上面的代码定义了一个FruitEnum类型,是…...

    2024/4/30 9:19:21
  19. mybatis 一对多查询

    在mybatis 中一对多查询,我遇到两种情况: 1、使用两表 join,返回包含一对多的 list 的对象 。 2、2次sql,使用 IN (id)。(大表查询会很影响效率,查询时间会很长,所以有的公司禁止大表join)example:public class Student {private Integer id;private String name;pr…...

    2024/5/1 1:12:53
  20. 视频教程-2020华为HCIA/HCNA/数通/路由交换/实验/视频/教程/持续更新赠题库-华为认证...

    2020华为HCIA/HCNA/数通/路由交换/实验/视频/教程/持续更新赠题库Bert,十年以上工作经验,华为思科双IE,HCIE 11960 ,CCIE 62124 。华为厂商、运营商、集成商相关工作经验,对于运营商、大型企业网、数据中心有着丰富的项目建设及运维经验。Bert39.00立即订阅订阅后:请点击此…...

    2024/4/30 11:17:45

最新文章

  1. 文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《电-氢-混氢天然气耦合的城市综合能源系统低碳优化调度》

    本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…...

    2024/5/4 10:01:27
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 策略模式图

    策略模式 小小的图解 主要的三个角色 Strategy—抽象策略角色ConcreateStrategy—具体策略角色Context—上下文角色 封装了对具体策略的调用可以使用set的依赖注入也可以使用构造方法 核心是上下文角色 只要调用上下文角色就行&#xff0c;实现解耦 策略 工厂 将上下文角…...

    2024/5/4 1:52:24
  4. Redis -- 缓存雪崩问题

    缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 可能原因 : 同一时间大量的key到期 ; 解决方案&#xff1a; 给不同的Key的TTL添加随机值 利用Redis集群提高服务的可用性 给缓存业务添加降…...

    2024/5/1 5:05:01
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

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

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

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

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

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

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

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

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

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

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

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

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

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

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

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

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/30 9:42:49
  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