【Java可执行程序命令】学习路线攻略,史诗级别全汇总 ~

Java可执行程序命令学习路线攻略

  • 📗文章指路
  • Java可执行命令
    • 1、编译工具 javac
    • 2、程序启动工具 java
    • 3、API文档生成 javadoc
    • 4、反编译工具 javap
    • 5、打包部署工具 jar
    • 6、调试工具 jdb
    • 7、C头文件创建 javah
    • 8、JWS应用程序启动 javaws
    • 9、安装包创建 javapackager
    • 10、JAR文件签名 jarsigner
    • 11、密钥库和证书管理 keytool
    • 12、依赖分析工具 jdeps
    • 13、策略工具 policytool
    • 14、脚本执行 jrunscript
    • 15、Java进程状态信息获取 jps
    • 16、发送诊断命令请求 jcmd
    • 17、JVM运行时信息动态维护 jinfo
    • 18、可视化监控和管理 jconsole
    • 19、堆转储文件分析 jhat
    • 20、堆转储快照文件及堆信息查看 jmap
    • 21、线程快照生成工具 jstack
    • 22、JVM统计信息监视 jstat
  • 🌾 总结

在这里插入图片描述

📗文章指路

《【Java可执行命令】(一)编译工具javac:从源代码到字节码,深入解析Java编译工具 javac ~》
《【Java可执行命令】(二)启动应用程序java: 深入解析应用程序启动工具 java命令 ~》
《【Java可执行命令】(三)API文档生成工具javadoc: 深入解析Java API文档生成工具javadoc ~》
《【Java可执行命令】(四)反编译工具javap:深入解析应用程序反编译工具javap ~》
《【Java可执行命令】(五)打包部署工具 jar:深入解析应用程序打包、分发和部署工具jar ~》
《【Java可执行命令】(六)调试工具 jdb:深入解析应用程序调试工具jdb ~》
《【Java可执行命令】(七)C头文件创建工具 javah:以Java本机接口(JNI)规范创建C头文件,深入解析创建工具javah ~》
《【Java可执行命令】(八)JWS应用程序启动工具 javaws:深入解析Java Web Start应用程序的启动工具javaws ~》
《【Java可执行命令】(九)安装包创建工具 javapackager:使用 JavaPackager 工具打包和部署自包含的 Java 应用程序,支持各种选项来指定相关配置~》
《【Java可执行命令】(十)JAR文件签名工具 jarsigner:通过数字签名及验证保证代码信任与安全,深入解析 Java的 jarsigner命令~》
《【Java可执行命令】(十一)Java 密钥库和证书管理工具keytool:玩转密钥库和证书管理,深入解析keytool工具的应用与技巧~》
《【Java可执行命令】(十二)依赖分析工具jdeps:通过静态分析字节码并提取相关信息来实现依赖分析 ~》
《【Java可执行命令】(十三)策略工具policytool:界面化创建、编辑和管理策略文件中的权限和配置 ~》
《【Java可执行命令】(十四)脚本执行工具jrunscript :在命令行环境下交互式执行一些简单的脚本或测试代码片段~》
《【Java可执行命令】(十五)Java进程状态信息获取工具 jps:获取和监控Java进程的状态信息 ~》
《【Java可执行命令】(十六)诊断命令请求发送工具 jcmd:提供一种简单而强大的方式来管理和监控 Java 进程 ~》
《【Java可执行命令】(十七)JVM运行时信息动态维护工具 jinfo:一个维护 JVM 相关的配置参数和系统属性的工具,辅助故障排除、诊断和优化 ~》
《【Java可执行命令】(十八)可视化监控和管理工具 jconsole:获取 JVM的内存使用情况、线程活动、GC 行为等重要指标的可视化工具 ~》
《【Java可执行命令】(十九)堆转储文件分析工具 jhat:将Java堆转储文件加载到内存,并在浏览器中提供一个交互式界面进行信息浏览及分析 ~》
《【Java可执行命令】(二十)堆转储快照文件及堆信息查看工具 jmap:生成多格式堆转储文件、打印类加载器信息及查看共享对象映射信息 ~》
《【Java可执行命令】(二十一)线程快照生成工具 jstack:帮助开发人员分析和排查线程相关问题(死锁、死循环、线程阻塞…)》
《【Java可执行命令】(二十二)JVM统计信息监视工具 jstat:通过连接到Java虚拟机的本地媒介,获取并显示关于堆、垃圾回收、类加载、编译器等方面的统计信息~》

Java可执行命令

1、编译工具 javac

  • 作用:将 Java 源代码编译为可执行的字节码文件
  • 语法:javac [options] <sourcefiles>
  • 常用参数
    • -d:指定编译后字节码文件的输出目录;
    • -classpath <path>:指定编译时查找类、接口和包文件的路径;
    • -sourcepath <path>:指定查找源文件的路径;
    • -target <version>:指定生成的Java字节码文件的目标版本;
    • -g:在生成字节码文件时包含调试信息。

2、程序启动工具 java

  • 作用:加载和执行字节码文件,并在JVM中运行这些文件
  • 语法:java [options] classname [arguments]
  • 常用参数
    • -cp <路径>或 -classpath <路径>:指定类路径来加载Java类文件;
    • -D<名称>=<值>:设置系统属性;
    • -X:对非标准参数的支持;
    • -verbose[:class|gc|jni]:启用不同类型的详细输出;
    • -version:显示当前安装的Java版本信息;
    • -ea[:<packagename>...|:<classname>]:在指定的包或类上启用断言;
    • -da[:<packagename>...|:<classname>]:在指定的包或类上禁用断言。

3、API文档生成 javadoc

  • 作用:通过分析源代码中的注释来生成API文档
  • 语法: javadoc [options] [packagenames] [sourcefiles] [@files]
  • 常用参数
    • -d <directory>:指定生成的文档输出目录并指定要处理的源代码文件;
    • -sourcepath <pathlist>:指定源代码的路径列表,以及要处理的源文件;
    • -classpath <pathlist>:指定编译时所需的类路径,以及要处理的源代码文件;
    • -link <url>:将外部链接添加到生成的文档中;
    • -version:在生成的文档中包含Java平台的版本信息。

4、反编译工具 javap

  • 作用:将Java类文件解析为易于阅读的文本形式,展示其中的信息以及反编译出类的结构、方法、字段、常量池等信息
  • 语法:javap [options] <classname>
  • 常用参数
    • -l:在输出中显示行号和局部变量表信息;
    • -c:在输出中显示字节码指令信息;
    • -s:显示与指定类相关的字节码指令及其源代码的符号信息;
    • -verbose:在输出中显示更详细信息的命令,它可以显示与指定类相关的字节码指令、常量池、方法、字段和其他类信息;
    • -version:查看类文件的版本信息。

5、打包部署工具 jar

  • 作用:将多个Java类、资源文件和其他依赖项打包成一个单独的归档文件。方便在Java平台上进行打包、分发和部署应用程序
  • 语法:jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
  • 常用参数
    • -c:创建jar文件;
    • -t:列出jar文件内容;
    • -i:生成jar文件的索引信息;
    • -v:输出详细信息;
    • -f:指定jar文件名;
    • -e:设置可执行类(主类)的入口点。

6、调试工具 jdb

  • 作用:一个用于调试Java程序的命令行工具,允许开发者使用各种调试功能,例如设置断点、查看变量和堆栈信息、执行单步调试、监视变量值
  • 语法:jdb [options] <class> [arguments]
  • 常用参数
    • -sourcepath <path>:指定源代码的路径。
  • 调试指令
    • run [class [args]]:运行 Java 应用程序进行调试;
    • print <expr>:在调试过程中打印表达式的值;
    • stop at <class>: :在指定的类和行号上设置断点;
    • watch [access|all] <class id>.<field name>:设置监视点以在字段访问时触发暂停;
    • step:逐语句执行代码并进入方法调用。

7、C头文件创建 javah

  • 作用:生成包含 JNI(Java Native Interface)函数原型的头文件,以便在使用 JNI 连接 Java 和本地代码时进行编译和链接
  • 语法:javah [options] <classes>
  • 常用参数
    • -o <file>:指定输出的头文件名称;
    • -classpath <path>:设置查找类文件的路径;
    • -jni:表示生成用于 JNI 的头文件。

8、JWS应用程序启动 javaws

  • 作用:使用JNLP文件作为输入,并根据该文件描述的配置和资源来启动和运行相应的Java应用程序
  • 语法:javaws [运行选项] <jnlp-file> javaws [控制选项]
  • 常用参数
    • -Xnosplash:运行时不显示启动屏幕;
    • -wait:等待所有应用程序实例都退出后再退出javaws;
    • -import [导入选项] <jnlp-file>:将应用程序导入高速缓存。

9、安装包创建 javapackager

  • 作用:将Java应用程序打包成可执行或安装文件,使其能够在目标操作系统上以独立的方式运行
  • 语法: javapackager -command [-options]
  • 常用参数
    • -createjar [-options]:打包程序根据其他参数生成 jar 档案;
    • -deploy [-options]:打包程序根据其他参数生成 jnlp 和 html 文件;
    • -signJar [-options]:对 JAR 文件进行签名。

10、JAR文件签名 jarsigner

  • 作用:对JAR文件进行数字签名
  • 语法:jarsigner [-options] jar-file alias
  • 常用参数
    • -keystore <url>:指定密钥库 (Keystore) 文件的路径和名称;
    • -storepass <口令>:指定密钥库的密码;
    • -keypass <口令>:指定密钥的密码;
    • -tsa <url>:指定时间戳服务器的URL;
    • -verify:验证已签名的 JAR 文件的完整性和有效性。

11、密钥库和证书管理 keytool

  • 作用:生成、管理和操作数字证书,以及实现对保护资源进行安全访问的加密和身份验证
  • 语法:keytool [-command_name] [命令] [参数]
  • 常用指令
    • -certreq:生成证书请求;
    • -exportcert:导出证书;
    • -genkeypair:生成密钥对;
    • -importcert:导入证书或证书链;
    • -list:列出密钥库中条目。

12、依赖分析工具 jdeps

  • 作用:通过静态分析字节码并提取相关信息来实现依赖分析
  • 语法:jdeps [options] <classfiles or jars>...
  • 常用参数
    • -dotoutput <dir>:DOT 文件输出的目标目录;
    • -s:仅输出被依赖对象概要;
    • -v:输出所有类级别被依赖对象;
    • -cp < path>:指定查找类文件的位置。

13、策略工具 policytool

  • 作用:界面化创建、编辑和管理策略文件中的权限和配置
  • 语法:policytool 直接进入图形化界面

14、脚本执行 jrunscript

  • 作用:在命令行环境下交互式执行一些简单的脚本或测试代码片段
  • 语法:jrunscript [options] [arguments...]
  • 常用参数
    • -l <language>:使用指定的脚本语言;
    • -e <script>:执行给定内联脚本;
    • -f <script file>:执行给定的外部脚本文件。

15、Java进程状态信息获取 jps

  • 作用:查看运行在Java虚拟机(JVM)中的所有Java进程的信息
  • 语法:jps [-q] [-mlvV] [<hostid>]
  • 常用参数
    • -q:仅显示进程ID,省略主类的全限定名;
    • -m:显示传递给主类main()方法的参数;
    • -l:显示完整的类名而非缩写;
    • -v:显示虚拟机的启动参数;
    • -V:显示 jps 工具的版本信息。

16、发送诊断命令请求 jcmd

  • 作用:通过命令行发送诊断命令给正在运行的 Java 进程,从而执行各种操作,例如生成线程转储、查看堆内存使用情况、触发 GC、打印系统属性
  • 语法:jcmd <pid|main class> <command> [<command arguments>]
  • 常用参数
    • -l:列出正在运行的 Java 进程;
    • help:列出特定进程的诊断命令列表;
    • <command>:执行诊断命令。

17、JVM运行时信息动态维护 jinfo

  • 作用:允许用户动态查询和修改 JVM 的运行时信息,包括系统属性、堆参数、环境变量、启动参数等
  • 语法
    • jinfo [option] <pid>:连接到正在运行的进程;
    • jinfo [option] <executable <core>:连接到核心文件;
    • jinfo [option] [server_id@]<remote server IP or hostname>:连接到远程调试服务器。
  • 常用参数
    • -flags:查看进程的启动参数;
    • -sysprops:查看进程的系统属性;
    • -flag <name> :查看特定虚拟机参数的值;
    • -flag [+/-]<name>:启用或禁用特定虚拟机参数的值。

18、可视化监控和管理 jconsole

  • 作用:提供了可视化的方式来获取有关 Java 应用程序的各种信息,包括内存使用情况、线程活动、GC 行为等重要指标
  • 语法:jconsole [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ... ]

19、堆转储文件分析 jhat

  • 作用:将Java堆转储文件加载到内存中,并在网页浏览器中提供一个交互式的界面进行查看和分析
  • 语法:jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>
  • 常用参数
    • -J<flag>:将参数直接传递到运行时系统。例如, -J-mx512m 使用512MB的最大堆大小;
    • -port <port>:设置HTTP服务器的端口。默认值为7000。

20、堆转储快照文件及堆信息查看 jmap

  • 作用:连接到运行中的Java进程,生成指定类型的Java堆转储文件
  • 语法
    • jmap [option] <pid>:连接到正在运行的进程;
    • jmap [option] <executable <core>:连接到核心文件;
    • jmap [option] [server_id@]<remote server IP or hostname>:连接到远程调试服务器。
  • 常用参数
    • -heap:打印Java堆摘要信息;
    • -histo[:live]:打印Java堆对象的直方图;如果指定"live"子选项,则只计算存活对象;
    • -dump:<dump-options>:以hprof二进制格式导出Java堆;
    • -J<flag>:将参数直接传递给运行时系统。

21、线程快照生成工具 jstack

  • 作用:一项用于生成JVM线程快照的诊断工具。帮助开发人员分析和排查应用程序中的线程相关问题,如死锁、死循环、线程阻塞等
  • 语法
    • jstack [-l] <pid>:连接到正在运行的进程;
    • jstack -F [-m] [-l] <pid>:连接到挂起的进程;
    • jstack [-m] [-l] <executable> <core>:连接到核心文件;
    • jstack [-m] [-l] [server_id@]<remote server IP or hostname>:连接到远程调试服务器。
  • 常用参数
    • -F:以强制线程转储。当 jstack<pid>没有响应时使用(进程挂起);
    • -m:打印java和本机框架(混合模式);
    • -l:长清单,打印有关锁的其他信息。

22、JVM统计信息监视 jstat

  • 作用:通过连接到Java虚拟机的本地媒介,获取并显示关于堆、垃圾回收、类加载、编译器等方面的统计信息
  • 语法
    • jstat -help|-options
    • jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
  • 可选参数
    • -gc:垃圾回收统计信息;
    • -class:类加载和卸载信息;
    • -compiler:JIT编译器执行信息;
    • -gcutil:垃圾回收的堆情况。

🌾 总结

以下是关于Java可执行命令的简要总结:

命令说明
编译工具 javac使用javac命令将Java源代码编译成字节码文件(.class文件)
程序启动工具 java通过java命令运行已经编译好的Java类文件,启动Java应用程序
API文档生成工具 javadoc使用javadoc命令生成可阅读的Java API文档,提供给开发者参考使用
反编译工具 javap使用javap命令可以反编译字节码文件,将其转换为可读的Java源代码
打包部署工具 jar使用jar命令创建JAR文件(Java归档文件),可以将多个相关的类、资源和元数据打包成单个文件
调试工具 jdb使用jdb命令进行Java程序的调试,可以设置断点、追踪变量值等
C头文件创建工具 javah使用javah命令创建与Java本地接口(JNI)相关的C/C++头文件
JWS应用程序启动 javaws使用javaws命令启动Java Web Start(JWS)应用程序,从网络上自动下载并启动Java应用
安装包创建工具 javapackager使用javapackager命令创建Java应用程序的安装包,并将其打包成本地安装器
JAR文件签名工具 jarsigner使用jarsigner命令为JAR文件进行数字签名,以确保文件的完整性和来源验证
密钥库和证书管理工具 keytool使用keytool命令管理Java密钥库(存储密钥和数字证书),包括生成、导入、导出等功能
依赖分析工具 jdeps使用jdeps命令分析Java类文件所依赖的其他类和包,帮助解决依赖关系问题
策略工具 policytool使用policytool命令为Java应用程序创建和编辑安全策略文件,定义权限和授权规则
脚本执行工具 jrunscript使用jrunscript命令在Java虚拟机上执行JavaScript脚本或命令行表达式
Java进程状态信息获取工具 jps使用jps命令查看正在运行的Java进程的状态信息,如进程ID、启动类等
发送诊断命令请求工具 jcmd使用jcmd命令向正在运行的Java进程发送诊断命令请求,例如线程转储、GC标记等
JVM运行时信息动态维护工具 jinfo使用jinfo命令动态修改和获取正在运行的Java应用程序的配置信息
可视化监控和管理工具 jconsole使用jconsole命令启动Java监视与管理控制台,可实时监控Java应用程序的运行状态
堆转储文件分析工具 jhat使用jhat命令分析Java堆转储文件,提供可视化的界面用于检查和分析内存使用情况
堆转储快照文件及堆信息查看工具 jmap使用jmap命令生成Java堆转储快照文件,并查看堆内存的详细信息
线程快照生成工具 jstack使用jstack命令生成Java应用程序的线程转储快照,帮助定位死锁和线程相关问题
JVM统计信息监视工具 jstat使用jstat命令实时监视和收集Java虚拟机的各种运行时统计信息,如垃圾回收、类加载等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/67514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3状态管理库Pinia——自定义持久化插件

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

PostgreSQL和MySQL多维度对比

文章目录 0.前言1. 基础对比2.PostgreSQL和MySQL语法对比3. 特性4. 参考文档 0.前言 在当今的软件开发和数据管理领域&#xff0c;数据库是至关重要的基础设施之一。选择正确的数据库管理系统&#xff08;DBMS&#xff09;对于应用程序的性能、可扩展性和数据完整性至关重要。…

SpringBoot集成Logback日志

SpringBoot集成Logback日志 文章目录 SpringBoot集成Logback日志一、什么是日志二、Logback简单介绍三、SpringBoot项目中使用Logback四、概念介绍一、日志记录器Logger1.1、日志记录器对象生成1.2、记录器的层级结构1.3、过滤器1.4、logger设置日志级别1.5、java代码演示1.6、…

【论文阅读】Deep Instance Segmentation With Automotive Radar Detection Points

基于汽车雷达检测点的深度实例分割 一个区别&#xff1a; automotive radar 汽车雷达 &#xff1a; 分辨率低&#xff0c;点云稀疏&#xff0c;语义上模糊&#xff0c;不适合直接使用用于密集LiDAR点开发的方法 &#xff1b; 返回的物体图像不如LIDAR精确&#xff0c;可以…

API 测试 | 了解 API 接口概念|电商平台 API 接口测试指南

什么是 API&#xff1f; API 是一个缩写&#xff0c;它代表了一个 pplication P AGC 软件覆盖整个房间。API 是用于构建软件应用程序的一组例程&#xff0c;协议和工具。API 指定一个软件程序应如何与其他软件程序进行交互。 例行程序&#xff1a;执行特定任务的程序。例程也称…

Matlab滤波、频谱分析

Matlab滤波、频谱分析 滤波&#xff1a; 某目标信号是由5、15、30Hz正弦波混合而成的混合信号&#xff0c;现需要设计一个滤波器滤掉5、30Hz两种频率。 分析&#xff1a;显然我们应该设计一个带通滤波器&#xff0c;通带频率落在15Hz附近。 % 滤波 % 某目标信号是由5、15、3…

LVS工作环境配置

一、LVS-DR工作模式配置 模拟环境如下&#xff1a; 1台客户机 1台LVS负载调度器 2台web服务器 1、环境部署 &#xff08;1&#xff09;LVS负载调度器 yum install -y ipvsadm # 在LVS负载调度器上进行环境安装 ifconfig ens33:200 192.168.134.200/24 # 配置LVS的VIP…

Mir 2.14 正式发布,Ubuntu 使用的 Linux 显示服务器

导读Canonical 公司最近发布了 Mir 2.14&#xff0c;这是该项目的最新版本。 Mir 2.14 在 Wayland 方面通过 ext-session-lock-v1 协议增加了对屏幕锁定器 (screen lockers) 的支持&#xff0c;并最终支持 Wayland 拖放。此外还整合了渲染平台的实现&#xff0c;放弃了之前在 R…

嵌入式领域:人才供需失衡,发展潜力巨大

嵌入式技术正快速发展&#xff0c;ARM处理器、嵌入式操作系统、LINUX等技术助力嵌入式领域崛起。然而&#xff0c;行业新颖且门槛高&#xff0c;缺乏专业指导。因此&#xff0c;嵌入式人才稀缺&#xff0c;身价水涨船高。 未来几年&#xff0c;嵌入式系统将在信息化、智能化、…

【位操作符的几种题型】

位操作符的几种题型 目录 题型一&#xff1a;寻找“单身狗”。 题型二&#xff1a;计算一个数在二进制中1的个数 题型三&#xff1a;不允许创建临时变量&#xff0c;交换两个整数的内容 题型一&#xff1a;寻找“单身狗”。 1.1题目解析 在一个整型数组中&#xff0c;只有…

【数据结构】‘双向链表’冲冲冲

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Vue脚手架安装

安装包下载 安装包可以去官网下载&#xff08;官网地址&#xff09;&#xff0c;建议下载稳定版。 2. 选择安装目录 选择安装到一个&#xff0c;没有中文&#xff0c;没有空格的目录下&#xff08;新建一个文件夹NodeJS&#xff09; 3. 验证NodeJS环境变量 NodeJS 安装完…

AIGC大模型ChatGLM2-6B:国产版chatgpt本地部署及体验

1 ChatGLM2-6B介绍 ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练&#xff0c;它具备多领域知识、代码能力、常识推理及运用能力&#xff1b;支持与用户通过自然语言对话进行交互&#xff0c;处理多种自然语言任务…

CNN的特性

1、位移不变性 它指的是无论物体在图像中的什么位置&#xff0c;卷积神经网络的识别结果都应该是一样的。 因为CNN就是利用一个kernel在整张图像上不断步进来完成卷积操作的&#xff0c;而且在这个过程中kernel的参数是共享的。换句话说&#xff0c;它其实就是拿了同一张“通…

徐雷,太委屈

文 | 螳螂观察 作者 | 仲夏 自3月8日上线以来&#xff0c;京东百亿补贴已整整5个月。相比首月投入10个亿&#xff0c;京东百亿补贴如今的存在显得尴尬与鸡肋。 眼看百亿补贴难以肩负发力下沉市场、扛起低价策略的重任&#xff0c;京东近期又将“京喜拼拼”更名“京东拼拼”卷…

RabbitMQ 备份交换机和死信交换机

为处理生产者生产者将消息推送到交换机中&#xff0c;交换机按照消息中的路由键即自身策略无法将消息投递到指定队列中造成消息丢失的问题&#xff0c;可以使用备份交换机。 为处理在消息队列中到达TTL的过期消息&#xff0c;可采用死信交换机进行消息转存。 通过上述描述可知&…

[vue-element-admin]下载与安装

一、环境搭建 1 nodejs 源码地址 sudo apt install build-essential # 内含gcc g make等全家桶git clone git://github.com/nodejs/node.git # 下载源码 cd node sudo ./config sudo make && make install # 编译 node -v # 查看是否编译成功二、遇见的问题 问题…

【606. 根据二叉树创建字符串】

目录 1.题目描述2.算法思想3.代码实现 1.题目描述 这道题的重点其实就是要省去不影响映射的括号。如&#xff1a; 2.算法思想 3.代码实现 class Solution { public:string _tree2str(TreeNode* root,string& ret){if(rootnullptr){return "";}retto_string(ro…

无人车沿着指定线路自动驾驶与远程控制的实践应用

有了前面颜色识别跟踪的基础之后&#xff0c;我们就可以设定颜色路径&#xff0c;让无人车沿着指定线路做自动驾驶了&#xff0c;视频&#xff1a;PID控制无人车自动驾驶 有了前几章的知识铺垫&#xff0c;就比较简单了&#xff0c;也是属于颜色识别的一种应用&#xff0c;主要…

数据结构——时间复杂度和空间复杂度

1.算法效率 2.时间复杂度 3.空间复杂度 4. 常见时间复杂度以及复杂度oj练习 1.算法效率 1.1 如何衡量一个算法的好坏 如何衡量一个算法的好坏呢&#xff1f;比如对于以下斐波那契数的计算 long long Fib(int N) { if(N < 3) return 1; return Fib(N-1) Fib(N-2); }我们看到…