当前位置: 首页 > news >正文

【每日一道面试题】for与foreach的区别(2024/12/6)

目录

    • foreach的特点
      • 遍历时
      • 删除时
    • foreach 和 for循环遍历数组的差别
    • 关于 `foreach` 和 `for` 循环的效率问题

首先我们要对foreach有个基本的了解,才能对它们进行区别
在这里插入图片描述

foreach的特点

遍历时

foreach循环去遍历一个数组

foreach循环去遍历一个集合

然后运行代码,按顺序把里面的元素都打印出来了(就是普通的遍历嘛打印嘛,很平常)。

咱们去看编译后的代码,这时候就发现有意思的事儿了。

对于数组的那个foreach循环呀,编译器悄悄给它变成了普通的for循环,就是那种按索引一个一个去访问数组里元素的循环,这样来实现把数组元素都打印出来的操作。

而对于那个集合foreach循环呢,编译后发现它是靠集合自带的迭代器来实现的,通过迭代器去判断有没有下一个元素,有的话就取出来然后打印,一直这么循环,直到把集合里的元素都打印完。

总结:

在 Java 里用foreach循环去处理数组集合的时候,虽然咱写代码的时候看着都差不多,挺简单方便的,但实际上它底层干活的方式不一样,一个是变成普通for循环用索引访问,一个是靠迭代器来访问元素。

删除时

先搞个列表,里面有 "111""222""333",打算用 foreach 循环删掉 "222"

	  ArrayList<String> list = new ArrayList<>();list.add("111");list.add("222");list.add("333");for (String i : list) {list.remove("222");}

在这里插入图片描述

为啥会报错呢?

foreach 循环在背后工作的时候呢,它是靠一个叫迭代器的东西来一个一个拿列表里的元素的。这个迭代器有个小 “账本”,它记着列表一开始的一个状态(就是 modcount 这个东西),每次循环它都要拿这个记着的状态和列表实际现在的状态(也就是 modCount 这个成员变量)对比一下,看看对不对得上。

但你在 foreach 循环里直接用列表的 remove 方法去删元素的时候,列表自己的那个状态就变了(modcount 就增加了),可迭代器记着的那个状态没跟着变呀,这下两边对不上了,迭代器就懵了,觉得出问题了,然后就报错了,根本没法接着往下删元素了。

可以使用迭代器的 remove 方法来删除元素

		ArrayList<String> list = new ArrayList<>();list.add("111");list.add("222");list.add("333");Iterator<String> it = list.iterator();//使用迭代器的remove方法来删除元素while (it.hasNext()){String next = it.next();if(next.equals("222")){it.remove();}}

还是先创建那个有 "111""222""333" 的列表,不过这次呢,先从列表那儿拿到它的迭代器。

然后用一个 while 循环,只要迭代器说还有元素没拿完(就是 hasNext 方法返回 true),就去拿下一个元素看看。要是拿出来的这个元素正好是要删的 "222",那就用迭代器自己带的 remove 方法去删这个元素。

为啥这样就行呢?因为这个迭代器自己的 remove 方法,它在删元素的时候,会把自己记着的那个状态(modcount 相关的东西)也跟着更新好,这样两边状态就一直能对得上了,就能顺顺利利地把元素删掉了,最后列表也就变成 [111, 333] 了。

foreach 和 for循环遍历数组的差别

  • 遍历方式的差别
    • for 循环遍历数组的时候,其实是靠着一个个去数数组的下标(即索引)。比如说,先找到第 0 个下标,然后通过这个下标去找到对应的数组元素,接着再找第 1 个下标、第 2 个下标…… 这样依次来访问数组里所有的元素。
    • foreach 循环呢,它是靠 Iterator(迭代器)来实现的。就好像顺着一条线,每次去找到下一个元素待的地方(也就是元素的地址),然后直接就能拿到那个元素,这样一个一个地把数组元素都访问一遍。
  • 删除元素方面的差别
    • for 循环因为是按索引来操作的,所以要是想删掉某个元素,直接就能把那个元素删掉,不过这时候只是元素的值没了,但它原来占的那个地址还在那,后面的元素就可以往前挪,把这个空出来的位置填上,就好像后面的元素把前面删掉元素的位置给占了,这样就实现了删除的效果。
    • foreach 循环就不一样啦,它是顺着元素地址去访问的,要是直接在它的循环里想删掉某个元素可不行。得用迭代器里面专门的 remove 方法才能删掉元素,这个方法是把元素所在的地址直接给清理掉了。但要是在 foreach 循环里用了这个方法删掉元素,循环里面用来代表元素的那个变量的值就变了,这样就可能出问题了,再接着循环的话,程序就觉得不安全了,就会报错。所以一般来说,别在 foreach 循环里直接删元素,真要删元素的话,用 for 循环更靠谱。

关于 foreachfor 循环的效率问题

  • 循环数组时

    • 如果是要循环访问数组里的元素,用普通的 for 循环更好。因为数组在计算机里存的时候,用下标去访问它是最方便、最快的,就像去图书馆找书,知道书架号(下标)一下子就能找到那本书(元素)一样,所以这时候 for 循环效率挺不错的,而且和 foreach 循环比起来,效率也差不了多少,for`循环还方便删元素,所以循环数组就可以优先考虑用它。
  • 循环链表结构的数据(集合)时

    • 要是面对的是像链表这种结构的数据(比如说集合),那就要慎用普通 for 循环了。因为链表的元素在内存里可不是像数组那样按顺序排好的,用下标去访问它可太难了,要是数据量特别大的时候,这么干可能就把整个系统给弄崩溃了,就像在一团乱麻里非要按固定顺序找东西,越找越乱套一样。这时候用 foreach 循环就好一些,它靠迭代器顺着链表的结构一个一个找元素,效率相对来说会高一点

相关文章:

【每日一道面试题】for与foreach的区别(2024/12/6)

目录 foreach的特点遍历时删除时 foreach 和 for循环遍历数组的差别关于 foreach 和 for 循环的效率问题 首先我们要对foreach有个基本的了解&#xff0c;才能对它们进行区别 foreach的特点 遍历时 用foreach循环去遍历一个数组&#xff0c; 用foreach循环去遍历一个集合&…...

解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾

在数字化时代&#xff0c;开源已成为推动技术创新和知识共享的核心力量&#xff0c;尤其在数据领域&#xff0c;开源技术的涌现不仅促进了行业的快速发展&#xff0c;也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用&#xff0c;时序数据库…...

React第十一节 组件之间通讯之发布订阅模式(自定义发布订阅器)

组件之间通讯常用方案 1、通过props 2、通过context 3、通过发布订阅模式 4、通过Redux 后面会有专栏介绍 什么情况下使用发布订阅模式 a、当我们想要兄弟组件之间通讯&#xff0c;而共同的父组件中又用不到这些数据时候&#xff1b; b、当多个毫无相关的组件之间想要进行数据…...

Vue 2与Vue 3项目中的屏幕缩放适配:使用vue2-scale-box和vue3-scale-box

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…...

Brain.js(九):LSTMTimeStep 实战教程 - 未来短期内的股市指数预测 - 实操要谨慎

系列的前一文RNNTimeStep 实战教程 - 股票价格预测 讲述了如何使用RNN时间序列预测实时的股价&#xff0c; 在这一节中&#xff0c;我们将深入学习如何利用 JavaScript 在浏览器环境下使用 LSTMTimeStep 进行股市指数的短期预测。通过本次实战教程&#xff0c;你将了解到如何用…...

云计算考试题

1、与SaaS不同的,这种“云”计算形式把开发环境或者运行平台也作为一种服务给用户提供。(B) A、软件即服务 B、基于平台服务 C、基于WEB服务 D、基于管理服务 2、云计算是对(D)技术的发展与运用 A、并行计算 B、网格计算 C、分布式计算 D、三个选项都是 3、Amazon.com公司…...

【设计模式】装饰器模式 在java中的应用

文章目录 1. 引言装饰器模式的定义与设计目的装饰器模式与其他设计模式的比较 2. 装饰器模式的结构组件接口&#xff08;Component&#xff09;具体组件&#xff08;ConcreteComponent&#xff09;装饰角色&#xff08;Decorator&#xff09;具体装饰类&#xff08;ConcreteDec…...

【kafka】生产者的同步发送和异步发送

Kafka 的生产者端提供了同步发送和异步发送两种方式&#xff0c;适合不同的使用场景和性能需求。 以下是两种发送模式的详细讲解&#xff1a; 同步发送 概念 同步发送是指生产者在发送一条消息后&#xff0c;会阻塞当前线程&#xff0c;等待 Kafka 返回发送结果&#xff08;…...

8. Debian系统中显示屏免密码自动登录

本文介绍如何在Debian系统上&#xff0c;启动后&#xff0c;自动免密登录&#xff0c;不卡在登录界面。 1. 修改lightDM配置文件 嵌入式Debian系统采用lightDM显示管理器&#xff0c;所以&#xff0c;一般需要修改它的配置文件/etc/lightdm/lightdm.conf&#xff0c;找到[Seat…...

SpringBoot 开源停车场管理收费系统

一、下载项目文件 下载源码项目文件口令&#xff1a; 【前端小程序地址】(3.0)&#xff1a;伏脂火器白泽知洞座/~6f8d356LNL~:/【后台管理地址】(3.0)&#xff1a;伏脂火器仇恨篆洞座/~0f4a356Ks2~:/【岗亭端地址】(3.0)&#xff1a;动作火器智汇堂多好/~dd69356K6r~:/复制口令…...

QT的ui界面显示不全问题(适应高分辨率屏幕)

//自动适应高分辨率 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);一、问题 电脑分辨率高&#xff0c;默认情况下&#xff0c;打开QT的ui界面&#xff0c;显示不全按钮内容 二、解决方案 如果自己的电脑分辨率较高&#xff0c;可以尝试以下方案&#xff1a;自…...

双向链表的模拟实现 —— LinkedList

MyLinkedList类 public class MyLinkedList {// 定义节点类static class Node {int val;Node prev;Node next;public Node() {}public Node(int val) {this.val val;}}// 定义头节点private Node head;// 定义尾结点private Node tail;// 头插public void headInsert(int val…...

速盾:高防cdn预热指定url就只刷新这个吗?

高防CDN预热是指在网站上线或更新之前&#xff0c;将网站内容缓存到CDN节点服务器上&#xff0c;以提高用户访问网站的速度和稳定性。通常&#xff0c;预热可以通过指定URL来进行&#xff0c;而不是刷新整个网站。 预热指定URL的好处是可以选择性地进行缓存刷新&#xff0c;而…...

JDK21新特性

目录 虚拟线程&#xff08;JEP 444&#xff09;&#xff1a; 顺序集合&#xff08;JEP 431&#xff09;&#xff1a; 字符串模板&#xff08;JEP 430&#xff09;&#xff1a; 模式匹配的增强&#xff08;JEP 440、441以及443&#xff09;&#xff1a; 结构化并发和作用域值…...

json学习

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;也易于机器解析和生成。它通常用于在服务器和客户端之间交换数据&#xff0c;特别是在 Web 应用中。 JSON 格式基于 JavaScript 对象表示法&#…...

005-mysql常用的名称

语言分类 DDL &#xff1a;数据定义语言 1、线上DDL语句在对表操作&#xff0c;是要锁元数据表的&#xff0c;此时所有的修改类的命令无法正常运行。 2、对大表在高峰期进行DDL操作&#xff0c;可以使用工具&#xff1a;pt-online-schema-change gh-ost 工具&#xff08;8.0以…...

PostgreSQL和MySQL区别

PostgreSQL 和 MySQL 有以下一些主要区别&#xff1a; 一、功能特性 1. 数据类型支持 - PostgreSQL&#xff1a;支持丰富的数据类型&#xff0c;包括数组、JSON、JSONB、hstore&#xff08;键值对存储&#xff09;、范围类型等。例如&#xff0c;可以直接在数据库中存储和查…...

Android笔记(三十四):onCreate执行Handler.post在onResume后才能执行?

背景 偶然发现一个点&#xff0c;就是在onCreate执行Handler.post在onResume后才执行&#xff0c;以下是测试代码 多次运行的结果一致&#xff0c;为什么execute runnable不是在onCreate和onResume之间执行的呢&#xff0c;带着疑问撸了一遍Activity启动流程 关键源码分析 …...

动手学深度学习d2l包M4芯片 gpu加速

conda创建环境 CONDA_SUBDIRosx-arm64 conda create -n ml python3.9 -c conda-forge conda env config vars set CONDA_SUBDIRosx-arm64 conda activate mlpip安装包 pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/n…...

游戏引擎学习第35天

开场介绍 今天的任务是继续改进一个虚拟的瓦片地图系统&#xff0c;使其适合处理更大的世界。我们希望这个系统能管理大范围的游戏世界&#xff0c;其中包含按需存储的小区域。昨天&#xff0c;我们介绍了“内存区域”的概念&#xff0c;用于管理持久性存储。我们计划今天继续…...

Python 3 和 MongoDB 的集成使用

Python 3 和 MongoDB 的集成使用 MongoDB 是一个流行的 NoSQL 数据库&#xff0c;以其灵活的数据模型和强大的查询功能而闻名。Python 3 作为一种广泛使用的编程语言&#xff0c;与 MongoDB 的集成变得日益重要。本文将介绍如何在 Python 3 环境中集成和使用 MongoDB&#xff…...

MperReduce学习笔记下

自定义InputFormat合并小文件 案例需求 无论hdfs还是mapreduce&#xff0c;对于小文件都有损效率&#xff0c;实践中&#xff0c;又难免面临处理大量小文件的场景&#xff0c;此时&#xff0c;就需要有相应解决方案。 案例分析 小文件的优化无非以下几种方式&#xff1a; …...

react + antd desgin 使用form功能时upload,radio,checkbox不能回显的问题

最近使用react开发 遇到form回显的问题 &#xff0c;处理upload回显的问题&#xff0c;提示 react-refresh:160 Warning: [antd: Upload] value is not a valid prop, do you mean fileList? 查看文档后&#xff0c;在form.item 组件下有一个特殊属性 valuePropName 子节点的值…...

【NLP修炼系列之Bert】Bert多分类多标签文本分类实战(附源码下载)

引言 今天我们就要用Bert做项目实战&#xff0c;实现文本多分类任务和我在实际公司业务中的多标签文本分类任务。通过本篇文章&#xff0c;可以让想实际入手Bert的NLP学习者迅速上手Bert实战项目。 1 项目介绍 本文是Bert文本多分类和多标签文本分类实战&#xff0c;其中多分…...

OpenSSL 自建CA 以及颁发证书(网站部署https双向认证)

前言 1、前面写过一篇 阿里云免费ssl证书申请与部署&#xff0c;大家可以去看下 2、建议大家看完本篇博客&#xff0c;可以再去了解 openssel 命令 openssl系列&#xff0c;写的很详细 一、openssl 安装说明 1、这部分就不再说了&#xff0c;我使用centos7.9&#xff0c;是自…...

YOLOv11改进,YOLOv11添加U-Netv2分割网络中SDI信息融合模块,助力小目标检测

摘要 理论介绍 SDI模块的架构: 平滑卷积(SmoothConv):用于平滑特征图,帮助减少噪声并使得特征更加稳定。Hadamard积:用于在特征图中进行逐元素相乘(点乘),以加强语义信息和细节信息的融合。通道注意力(ChannelAttention):利用通道注意力机制来自动关注重要的特征通…...

flex布局 flex-end为什么overflow无法滚动及解决方法

flex-end为什么overflow无法滚动及解决方法 在使用Flexbox布局时&#xff0c;我们经常使用justify-content和align-items属性来定位子元素。其中&#xff0c;align-items属性用于控制子元素在交叉轴上的位置&#xff0c;例如顶部对齐、底部对齐或居中对齐等。当我们将align-it…...

从ground_truth mask中获取图像的轮廓图

引言 在图像取证领域&#xff0c;主要分为检测和定位两个方面。检测就是判断一张图片是否为伪造图&#xff0c;定位与传统意义上的语义分割任务相近&#xff0c;就是定位伪造像素的区域。如果单纯使用语义分割网络训练&#xff0c;只能获得次优解&#xff0c;而像多任务学习那样…...

Java项目实战II基于微信小程序的旅游社交平台(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着移动互联网的迅猛发展&#xff0c;旅游已经成为人…...

开源即时通讯与闭源即时通讯该怎么选择,其优势是什么?

在选择即时通讯软件时&#xff0c;应根据企业的经营领域来选择适合自身需求的开源或闭源方案。不同领域对开源和闭源即时通讯的理念存在差异&#xff0c;因此总结两个点简要分析这两种选择&#xff0c;有助于做出更明智的决策。 一、开源与闭源的根本区别在于软件的源代码是否…...

【计算机网络】实验15:VLAN间通信的实现方法“单臂路由”

实验15 VLAN间通信的实现方法“单臂路由” 一、实验目的 加深对VLAN间通信的实现方法“单臂路由”的理解。 二、实验环境 Cisco Packet Tracer模拟器 三、实验过程 1.构建网络拓扑&#xff0c;并配置好主机的IP地址、子网掩码、默认网关&#xff0c;如图1&#xff0c;2所…...

数据库学习记录04

DDL【数据定义语言】 MySQL命名规则 数据库名不得超过30个字符&#xff0c;变量名限制为29个必须只能包含A-Z,a-z,0-9,_共63个字符不能在对象名的字符间留空格必须不能和用户定义的其他对象重名必须保证你的字段没有和保留字、数据库系统或常用方法冲突保持字段名和类型的一致…...

PDF文件打开之后不能打印,怎么解决?

正常的PDF文件是可以打印的&#xff0c;如果PDF文件打开之后发现文件不能打印&#xff0c;我们需要先查看一下自己的打印机是否能够正常运行&#xff0c;如果打印机是正常的&#xff0c;我们再查看一下&#xff0c;文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…...

A* 算法 是什么?

A*&#xff08;A-star&#xff09;算法是一种启发式搜索算法&#xff0c;用于在图或网格中找到从起点到目标的最短路径。它被广泛用于路径规划问题&#xff0c;例如导航、游戏开发中的角色移动&#xff0c;以及机器人路径规划。 1. A 算法的基本概念* A* 算法结合了两种经典搜…...

ORM框架详解:为什么不直接写SQL?

想象一下&#xff0c;你正在开发一个小型的在线书店应用。你需要存储书籍信息、用户数据和订单记录。作为一个初学者&#xff0c;你可能会想&#xff1a;“我已经学会了SQL&#xff0c;为什么还要使用ORM框架呢&#xff1f;直接写SQL语句不是更简单、更直接吗&#xff1f;” 如…...

厘米级高精度RTK手持终端北斗卫星定位手持pda

RTK是一种测量技术叫“载波相位差分技术”&#xff0c;是实时处理两个测量站载波相位观测量的差分方法&#xff0c;将基准站采集的载波相位发给用户接收机&#xff0c;进行求差解算坐标&#xff0c;以此得到高精度坐标。随着技术的不断革新&#xff0c;GPS接收机也由原来只能用…...

Kafka-Connect源码分析

一、上下文 《Kafka-Connect自带示例》中我们尝试了零配置启动producer和consumer去生产和消费数据&#xff0c;那么它内部是如何实现的呢&#xff1f;下面我们从源码来揭开它神秘的面纱。 二、入口类有哪些&#xff1f; 从启动脚本&#xff08;connect-standalone.sh&#…...

【STM32 Modbus编程】-作为主设备读取保持/输入寄存器

作为主设备读取保持/输入寄存器 文章目录 作为主设备读取保持/输入寄存器1、硬件准备与连接1.1 RS485模块介绍1.2 硬件配置与接线1.3 软件准备2、读保持寄存器2.1 主设备发送请求2.2 从设备响应请求2.3 主机接收数据3、读输入寄存器4、结果4.1 保持寄存器4.2 输入寄存器在前面的…...

Kubesphere上搭建redis集群

Kubesphere上搭建redis集群 版本&#xff1a;redis:6.2.3 1&#xff09;挂载配置 redis.conf&#xff1a; cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-require-full-coverage no cluster-migration-barrier 1 appendonly yes …...

learn-(Uni-app)跨平台应用的框架

使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一份代码&#xff0c;可发布到iOS、Android、Web&#xff08;包括微信小程序、百度小程序、支付宝小程序、字节跳动小程序、H5、App等&#xff09;等多个平台。 跨平台&#xff1a;Uni-app 支持编译到iOS、Android、W…...

target_compile_definitions

这个接口给目标定义的宏&#xff0c;不能像C中定义的宏一样&#xff0c;尝试利用宏进行替换&#xff1a; cmake_minimum_required(VERSION 3.8) project(compile_definitions_pro)add_executable(main_exec src/main.cpp)set(SYSTEM_NAME "") if(CMAKE_SYSTEM_NAME S…...

浏览器同源策略、跨域、跨域请求,服务器处理没、跨域解决方案

目录 什么是同源策略什么是跨域发生跨域时&#xff0c;服务器有没有接到请求并处理响应&#xff1a;&#xff08;两种情况&#xff09; 如何解决跨域 什么是同源策略 概念&#xff1a; 同源策略是浏览器的一种安全机制&#xff0c;用于防止恶意网站对用户的敏感数据进行未经授…...

深入理解网络安全等级保护:保障信息安全的关键策略与实践

随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。为了应对这一挑战&#xff0c;网络安全等级保护制度应运而生&#xff0c;旨在确保不同等级的信息和信息系统的安全。本文将探讨网络安全等级保护的基本概念、重要性及其实践方法。 一、信息安全等级保护的基本概念 1…...

MySQL

InnoDB 引擎底层存储和缓存原理 到目前为止&#xff0c;MySQL 对于我们来说还是一个黑盒&#xff0c;我们只负责使用客户端发 送请求并等待服务器返回结果&#xff0c;表中的数据到底存到了哪里&#xff1f;以什么格式存放的&#xff1f; MySQL 是以什么方式来访问的这些数据&…...

新书速览|循序渐进Node.js企业级开发实践

《循序渐进Node.js企业级开发实践》 1 本书内容 《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践&#xff0c;系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分&#xff0c;第1部分基础知识&#xff08;第1&#xff5e;3章&#xff09;&#xf…...

2024三掌柜赠书活动第三十五期:Redis 应用实例

目录 前言 Redis操作都会&#xff0c;却不知道怎么用&#xff1f; 关于《Redis 应用实例》 编辑推荐 内容简介 作者简介 图书目录 《Redis 应用实例》全书速览 拓展&#xff1a;Redis使用场景 实例1&#xff1a;缓存应用 场景描述 实现方法 具体代码示例 实例2&a…...

Android 第三方框架:RxJava:源码分析:观察者模式

文章目录 观察者模式RxJava中的观察者模式总结 ​​​​​​​​​​​​​​观察者模式​​​​​​​ RxJava中的观察者模式 以Observable、ObservableOnSubscribe、Observer为例 Observable是被观察者 负责发射事件或数据 Observer是观察器 负责对从被观察者中获取的数…...

开源模型应用落地-安全合规篇-用户输入价值观判断(四)

一、前言 在深度合规功能中,对用户输入内容的价值观判断具有重要意义。这一功能不仅仅是对信息合法性和合规性的简单审核,更是对信息背后隐含的伦理道德和社会责任的深刻洞察。通过对价值观的判断,系统能够识别可能引发不当影响或冲突的内容,从而为用户提供更安全、更和谐的…...

【js逆向专题】13.jsvmp补环境篇一

目录 一.了解jsvmp技术1. js虚拟机保护方案2.jsvmp实现原理3. 模拟jsvmp执行过程 二.环境检测1. 什么是环境检测2.案例讲解 三. 项目实战1. 案例11.逆向目标2. 项目分析1.补第一个referrer2. 调试技巧13. 调试技巧24. 补充sign5. 补 length6. 参数长短补充 3. 逆向结果 2. 案例…...

Java---每日小题

题目1-极大极小游戏 给你一个下标从 0 开始的整数数组 nums &#xff0c;其长度是 2 的幂。 对 nums 执行下述算法&#xff1a; 设 n 等于 nums 的长度&#xff0c;如果 n 1 &#xff0c;终止 算法过程。否则&#xff0c;创建 一个新的整数数组 newNums &#xff0c;新数组长度…...

《哪吒2》成中国影史票房冠军

今(6)日是动画电影《哪吒之魔童闹海》(《哪吒2》)上映的第九天。灯塔专业版数据显示,截至目前,该片票房超过《长津湖》的57.75亿元,成为中国影史票房榜新的票房冠军。业内人士表示,《哪吒2》为国产动画电影树立了新标杆,开启了国产动画电影的新篇章。刚刚结束的2025年…...

美宣布对中国商品加征10%关税

新华社华盛顿2月1日电美国总统特朗普1日签署行政令,对进口自中国的商品加征10%的关税。美国的这一最新贸易保护措施在国际社会和美国国内遭到广泛反对。白宫当天表示,对所有进口自中国的商品,美国将在现有关税基础上加征10%的关税。特朗普说,这与他支持的&ldquo;保护主…...

农村出现新“读书无用论”

【文/观察者网专栏作者 黄丽芬】我的家乡是一个位于鄂东南的人口大县、务工大县,110多万人中近30万人长期在外务工。腊月中旬一过,村里仿佛从一年的睡梦中苏醒,进城读书的孩子、外出务工的青壮年人陆续回来,欢声笑语和喊叫打闹激活了村庄。在小店门口、火炉旁边,经常被大家…...

《求是》杂志发表习近平总书记重要文章《注重家庭,注重家教,注重家风》

新华社北京1月31日电 2月1日出版的第3期《求是》杂志将发表中共中央总书记、国家主席、中央军委主席习近平2016年12月12日在会见第一届全国文明家庭代表时讲话的一部分《注重家庭,注重家教,注重家风》。文章强调,中华民族历来重视家庭。尊老爱幼、妻贤夫安,母慈子孝、兄友…...

当春晚机器人手拿的是手绢而非加特林时,叩问”西方文明“给人类带来了什么?!

大年三十晚上,当科技感十足的机器人方阵在春晚舞台上齐刷刷甩起红绸手绢时,全网瞬间沸腾。这场融合传统与现代的机械舞,不仅让十四亿中国人看得心潮澎湃,更在太平洋彼岸掀起惊涛骇浪。西方社交媒体上,"别招惹中国"的惊呼此起彼伏,仿佛那些灵巧的机械臂下一秒就…...

第四章 观点 法律人士解析柳传志“国资流失”

倪光南院士法律顾问敦科平(化名)律师,曾实名在网上发文指称柳传志国资流失,这里原文转发该律师关于柳传志&ldquo;挪用公款&rdquo;、让港商&ldquo;负债持股&rdquo;的文章,虽然当年曾视作&ldquo;权威意见&rdquo;,但现今只呈现一种观点,不代表笔者…...