精华内容
下载资源
问答
  • 查询不到对应数据 报错信息如下 :(应该是我服务器地址写错了吧? 大神们求教一下) <code>2021-01-23 16:41:20,100 INFO o.a.j.e.StandardJMeterEngine: Running the test! 2021-01-23 16:41:20,100 INFO o.a....
  • 1. JVM虚拟机参数 -Xms20M -Xmn20M -Xmx20M -XX:NewRatio=4 .......例如:java -Xmx20M MainTest 2. JVM自定义参数 ...来传入JVM,传入的参数作为system的property。因此在程序中可以通过下面的语句获取参...

    1. JVM虚拟机参数

    -Xms20M
    -Xmn20M
    -Xmx20M
    -XX:NewRatio=4
    ....等等,不做细讲
    例如:java -Xmx20M MainTest
    

    2. JVM自定义参数

    JVM自定义参数通过java命令的可选项:
    -D<name>=<value>
    来传入JVM,传入的参数作为system的property。因此在程序中可以通过下面的语句获取参数值:
    System.getProperty(<name>)
    
    例如:
    java -Dfile.encoding=UTF-8 MainTest
    java -Djvm.index=1 MainTest
    

    说明:
    JVM自定义参数可用来在集群环境区分当前class运行在哪个JVM上,可以达到让某个class只在某个指定的JVM上运行,避免多个JVM同时运行,出现混乱。

    3. main方法参数

    例如:

    java MainTest parm1 parm2 parm3 parm4
    

    接在启动类之后,参数间用空格隔离,程序执行时用空格切割成字符串存入String[] args数组。

    3.综合实例

    在这里插入图片描述

    public class MainTest {
    	public static void main(String[] args) {
            String jvmIndex = System.getProperty("jvm.index");
            System.out.println("jvmIndex=" + jvmIndex);
      
            System.out.println(args.length);
            for (String s : args) {
    			System.out.println(s);
    		}
    	}
    }
    

    结果:
    在这里插入图片描述

    展开全文
  • 首先,对于你理解的方法参数类型为double,然后传入的是byte,但是在方法中以double类型处理了,你描述的理解基本是正确的。但是基本数据类型一般在栈里,不是堆里。 其次,如果是类类型的话,其实在方法中参数传递...

    深圳Java学习:虚拟机对于方法中参数为类类型的如何处理的

    根据你的问题描述,我感觉你并不是要问java虚拟机中类加载过程,而是想知道虚拟机对于方法中参数为类类型的如何处理的。
    首先,对于你理解的方法参数类型为double,然后传入的是byte,但是在方法中以double类型处理了,你描述的理解基本是正确的。但是基本数据类型一般在栈里,不是堆里。
    其次,如果是类类型的话,其实在方法中参数传递叫引用传递,而你上面说的基本数据类型是值传递,所以这是不同的处理方式。
    简单来说:基本数据类型传递的是值,所以在方法中操作了跟原来传入的数据无关。
    例如:
    

    public static void change(double n){
    n = 5;
    }

    public static void main(String[] args) {
    byte m = 3;
    change(m);
    System.out.println(m); // 此处m并不会变成5,因为是值传递
    }

    而类类型一般是引用传递,在传递的时候只是将对象的指针传递过来了,实际上还是操作的原来的对象,所以也不会重新分配空间。
    class Student{
    String name;
    int id;
    

    }

    public static void change(Student student){
    student.name = “HanMeimei”;
    }

    public static void main(String[] args) {
    Student student = new Student();
    student.id = 1;
    student.name = “LiLei”;
    change(student);
    // 此处name是HanMeimei,因为此处为引用传递,只是将student对象的地址传递到了change方法中,
    // 所以在change方法中改变了name的值,此处也会改变
    System.out.println(student.name);
    }

    展开全文
  • 上一篇博文将nova创建虚机流程推进到了/compute/api.py中create()函数,接下来就继续分析。 在分析之前简单介绍nova组件源码架构。以conductor组件为例: 每个组件都会有这三个文件:api.py rpcapi.py ...

    上一篇博文将nova创建虚机的流程推进到了/compute/api.py中的create()函数,接下来就继续分析。

    在分析之前简单介绍nova组件源码的架构。以conductor组件为例:

    每个组件都会有这三个文件:api.py rpcapi.py manager.py。

    1. api.py              conductor实现自身功能的文件
    2. rpcapi.py         conductor提供给其他组件通过消息队列调用的接口函数
    3.  manager.py    其他组件通过消息队列调用的处理端函数

     下面是/compute/api.py中的create()函数。

    /nova/compute/api::create()

    1.  检查是否创建多个实例,是否制定IP。检查是否从端口ID创建多个实例
    2.  检查域是否可用
    3.  创建过滤器
    4.  调用本类中create_instance()方法


    总结:该函数的主要任务是对check policies、check quota、创建db记录,创建下一步中schedule所需要的调度规则信息filter_properties,将部分参数整合,

    然后将创建请求发送到本类中的_create_instance()函数中,进行下一步处理。

    /compute/api.py ::_create_instance()函数:

     

     /nova/compute/api::create_instance()

    1.  规格化和设置一些参数,如安全组,最小数值,最大数值,块设备。
    2.  访问glance服务,获取image-id
    3.  检查网络是否超过配额
    4.  循环更新每一个主机的状态
    5.  调用/nova/conductor/api::build_instances()

    总结:本函数的主要做的是获取镜像-id,检查网络,写入数据库等工作。

    其中获取image-id的流程具有代表性,值得细细分析。

    首先看glance架构:

    glance-registry负责存储镜像的的具体信息,包括镜像的大小,格式,位置等。glance-backend负责存储真正的镜像。

    当获取镜像时,首先会到glance-registry组件中获取将请求的镜像的数据,大小,格式,位置等,

    然后到需要创建虚拟机时再去相应路径下载镜像作为虚机启动模板。

    所以这里就会有一个请求镜像id的过程,从nova的以http请求的方式去调用glance-api,glance-api调用glance-registry查询数据库获得镜像的id。

     

     代码流程如下:

     

     session, image_id = self._get_session_and_image_id(context, id_or_uri)
     return session.show(context, image_id,
                                include_locations=include_locations,
                                show_deleted=show_deleted)

     

    这段代码的作用是通过glanceclient获取镜像文件信息。 在openstack中,不同组件之间的通信是通过RESTful API完成的,openstack的处理方式是为每个组件都包含了这样一个client,

    它们都继承于HTTPClient这个基类,但做了一些个性化的封装,用于向各自的组件发送HTTP请求。具体到这里,nova需要和glace通信,以获取镜像文件的信息,所以需要声明了这样一个glanceclient。

    代码self._get_session_and_image_id(context, id_or_uri) 的作用就是创建一个glaceclient对象,然后把这个对象封装入GlanceImageService类里,即返回值image_service。

    然后调用该类下的show方法来获取镜像文件的信息

    摘录自:http://blog.csdn.net/qiuhan0314/article/details/43057591

     

     可以看到这里有  image = self._client.call(context, version, 'get', image_id)  这条调用函数就是restful 请求。

    这样就通过restful api获取了镜像id。由于镜像不是主题讨论的重点,所以就不再话下。

     

    _create_instance()函数中另一个比较重要的方法是  _provision_instances(),该函数实现了对创建虚机时的各项配额进行检查,并将虚机信息写入数据库。

     

    instance = self.create_db_entry_for_new_instance(context, instance_type, boot_meta, instance, security_groups,
                                                                                            block_device_mapping, num_instances, i, shutdown_terminate, create_instance=False)

    是向数据库中写入实例信息的函数

     

     

    介绍完/compuet/api.py文件中的_create_instance()函数,目前推进的进度在这里。

     

    转载于:https://www.cnblogs.com/goldsunshine/p/7800721.html

    展开全文
  • 传参的参数类型 程序参数(Program arguments) 虚拟机选项(VM options) 环境变量(Environment variables) 后续为了方便,有时会称呼为:程序参数,vm参数,环境变量 如何传参,如图: 1、在IDEA等工具中是...

    关于java读取环境变量、虚拟机参数

    本文系统研究在springboot启动时传入参数,对于非springboot的普通 java项目也是相同的。

    传参的参数类型

    • 程序参数(Program arguments)
    • 虚拟机选项(VM options)
    • 环境变量(Environment variables)

    后续为了方便,有时会称呼为:程序参数,vm参数,环境变量

    如何传参,如图:

    1、在IDEA等工具中是如何传的?

    如图:
    在这里插入图片描述

    注意:环境变量的命名建议不要用 my.env.var (带点的格式),虽然在idea里支持,但是在命令行上支持不好

    2、在命令行中是如何传
    export MY_ENV_VAR=myEnvVarValue
    java -Dmy.vm.options=myVmOptionsValue -jar app.jar programArgs1 programArgs2
    

    说明:

    • 程序参数:在app.jar后列出
    • vm参数:传的时候用 -D,格式 -Dvar_name=var_value。(vm参数不限于虚拟机参数,可以自定义
    • 环境变量:
      • 需要两行命令实现,提前通过 export 设置(该设置当前会话有效)
      • 设置的环境变量不支持点号,如export my.env.var=xxxx 会报错
      • 是可以获取到设置在/ect/profile等地方的环境变量的,但是根据执行命令的用户不一样,可能可见性有差别,建议如果要传环境变量,通过本例子直接设置的方式

    如何读取:

    • 程序变量只能传给main方法,即入口方法
    • vm变量,读取用 System.getProperty(...)
    • 环境变量,读取用 System.getenv(...)
    public static void main(String[] args) {
      // 程序变量
      System.out.println(Arrays.toString(args));
    
      // vm变量
      String myVmOptions = System.getProperty("my.vm.options");// 正确
      String myVmOptions2 = System.getenv("my.vm.options");// 错误,读到null
      Properties vmProps = System.getProperties();// 读取所有
    
      // 环境变量(命名规范建议不用点,在idea里没问题,在命令行出错)
      String myEnvVar = System.getenv("MY_ENV_VAR");// 正确
      String myEnvVar2 = System.getProperty("MY_ENV_VAR");// 错误,null值
      Map<String, String> envMap = System.getenv();// 读取所有
    
      SpringApplication.run(VmOptionsSystemPropertyApplication.class, args);
    }
    

    吐槽:真是奇葩的方法命名,getenv(),为什么不是 getEnv()

    补充

    对于vm参数,除了自己设定的,其实还有很多默认就有的,可能是vm虚拟机设入的。常见的有line.separatorfile.separatorpath.separatoruser.name如下代码运行后可以打印出vm参数

    public class AllVmOptionsAndEnvVaribles {
        private static ObjectMapper objectMapper = new ObjectMapper();
        public static void main(String[] args) throws JsonProcessingException {
            System.out.println(objectMapper.writeValueAsString(new HashMap<>(System.getProperties())));
            System.out.println("----------------------------------------");
            System.out.println(objectMapper.writeValueAsString(System.getenv()));
        }
    }
    

    疑惑

    通过stonewang用户,在命令行可以得到这个环境变量的值,该值是在/etc/profile中的

    echo $SCALA_HOME
    

    但是在程序却无法获取,程序也是stonewang启动的

    很奇怪的是,同样在 /etc/profle 中设置的 JAVA_HOME 却能够在程序里却可以获取,不解。/

    展开全文
  • Erlang虚拟机的启动

    2017-01-11 08:46:00
    Erlang虚拟机的启动 erl实际上是一个shell脚本,...erlexec的main函数首先分析erl传入的参数和环境变量,选择正确版本的beam可执行文件,然后将传入的参数整理好,加入一些默认参数,最后通过系统调用execv运行beam...
  • 虚拟机工具

    2019-05-12 12:33:00
    m 运行时传入主类的参数 v 虚拟机的参数 l 运行的主类全名或者jar包名称 jps jstat -gcutil 7372 jstat -gcutil 7372 1000 10 没隔1秒打印1次,共打印10次 jinfo -XX:【+/-】option -XX:option...
  • 引子 在网上看过这么一个面试题:Java...逃逸分析基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,例如作为方法返回值或者被当作调用参数传入其他方法中,称为方法逃...
  • java虚拟机系列(四)- java虚拟机性能监控与调优 java工具包及其命令 一、jps ...-m:输出main方法传入的参数 -v:输出虚拟机进程启动参数 二、jstat 监控jvm虚拟机内存使用情况的工具。 可以用...
  • java虚拟机的jps命令

    2020-03-04 17:37:40
    介绍 列出系统中所有的 Java 应用程序。...-m:输出传入 main 方法的参数 -l:输出完全的包名,应用主类名,jar的完全路径名 -v:输出jvm参数 -V:输出通过flag文件传递到JVM中的参数 可以同时使用多个参数。 ...
  • 参数:m:运行时传入主类的参数;v:虚拟机参数;l:运行的主类全名或jar包名称;2、jstat:虚拟机统计信息监视工具作用:用于监视虚拟机各种运行状态信息的命令行工具。可以显示本地或远程虚拟机进程中的类装载、...
  • 2. 如何将java传入的String参数转换为c的char*,然后使用?  java传入的String参数,在c文件中被jni转换为jstring的数据类型,在c文件中声明char*test,然后test= (char*)(*env)->GetStringUTFChars(env, jstring, ...
  • 程序计数器对于运行中Java程序而言,每一个线程都有自己PC(程序计数器)寄存器,它是在该线程启动时...栈帧保存了传入参数、局部变量、中间运算结果等数据,在方法完成时被弹出,然后释放。看一下两个局部变量相...
  • Java方法重载是根据传入参数的数量和参数类型,由于传入的参数类型和数量已已知的并且用传入的静态类型而不是实际类型作为参数来判定依据。而静态类型在编译器是已知的,那么在编译期,javac编译器就会根据静态类型...
  • java虚拟机工具

    2018-07-17 18:28:13
    1、 jps(Java process status)  类似于windows下任务管理器,把j去掉 ps就是Linux下进程管理 ...//接收程序运行时传入主类参数 jps -m //显示运行时主类全名信息 jps -l //接收虚拟机参数 jps -v     ...
  • -m:输出主函数传入的参数. 下的hello 就是在执行程序时从命令行输入的参数 -l: 输出应用程序主类完整package名称或jar完整名称. -v: 列出jvm参数, -Xms20m -Xmx50m是启动程序指定的jvm参数 ...
  • 用户查看所有 Java 进程启动类、传入参数和 Java 虚拟机参数等信息; jstat:虚拟机统计信息监视工具。用于收集 HotSpot 虚拟机各方面运行数据; jinfo:Java配置信息工具。用于显示虚拟机配置信息; jmap :...
  • 参数: m:运行时传入主类的参数; v:虚拟机参数; l:运行的主类全名或jar包名称;2、jstat:虚拟机统计信息监视工具 作用:用于监视虚拟机各种运行状态信息的命令行工具。 可以显示本地或远程虚拟机进程中的...
  • 在正常情况下, 如果想要在同一个类中定义名字相同的方法,那么它们的参数类型必须不同.这些方法之间的关系,我们称为重载.重载的方法在编译过程中即可完成识别.具体到每一个方法调用, Java编译会根据所传入参数的声明...
  • 一、监控工作 1. jps jps主要用来输出JVM中运行的进程状态信息。语法格式如下: ...-q不输出类名、Jar名和传入main方法的参数 -m输出传入main方法的参数 -l输出main类或Jar的全限名 -v输出传入JVM的参数 2...
  • JVM 之 虚拟机工具

    2019-02-28 20:50:51
    jps -m 运行传入主类的参数 jps -v 虚拟机参数 2. jstat 类加载,内存,垃圾收集,jit编译信息、 3. jinfo 实时调整和查看虚拟机参数 -XX:[+/-]option -XX:option=value 4. jmap jmap -dump:formart=b...
  • 文章目录虚拟机内存分析常用命令jps [options] [hostid]jmap [option] ...-q 不输出类名、Jar名和传入main方法的参数 -m 输出传入main方法的参数 -l 输出main类或Jar的全限名 -v 输出传入JVM的参数 ...
  • 一、JDK的命令行工具 ... m:运行时传入主类的参数;  v:虚拟机参数;  l:运行的主类全名或jar包名称;   2、jstat:虚拟机统计信息监视工具  作用:用于监视虚拟机各种运行状态信息的命令行工具。 ...
  • java编译器会根据所传入的参数的声明类型来选取重载方法。共有三个阶段 不考虑基本类型的自动装拆箱和可变长参数的情况下选; 在(1)没找到的话,允许装拆箱但不允许可变长参数的情况下选; 允...
  • Java静态方法和实例方法 java中数组作为形参传入Java虚拟机启动一个Java程序时候,会诞生一个虚拟机实例,当程序关闭退出时,该实例会消失。如果一个机器上运行着三个Java程序,即有三个Java虚拟机实例Java虚拟...
  • Java静态方法和实例方法 java中数组作为形参传入Java虚拟机启动一个Java程序时候,会诞生一个虚拟机实例,当程序关闭退出时,该实例会消失。如果一个机器上运行着三个Java程序,即有三个Java虚拟机实例Java虚拟...
  • jps -m 运行时传入主类的参数; jps -v 虚拟机参数; jps -l 运行的主类全名 或者jar包名称; 也可以一块使用 jsp -mlv。 jstat: 用于监视虚拟机各种运行状态信息的命令行工具,包括监视类装载、内存、垃圾回收、jit...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 249
精华内容 99
关键字:

虚拟机传入的参数