在我的计算机科学课程中,我们被告知在创建数组时,JVM将根据数组的大小自动分配内存.例如,如果创建大小为10的整数数组,JVM将为该数组分配10*32位数据.
我的问题是,当您创建具有不同大小的对象数组时,此过程究竟是如何工作的?例如一个String对象.当你创建一个包含10个字符串的数组时,系统上是否为这些字符串实际保留了任何内存,或者因为它们只是指针,所以不需要内存分配?
假设./program是一个只打印出参数的程序;
$ ./program "Hello there"
Hello there
Run Code Online (Sandbox Code Playgroud)
如何正确地从变量中传递带有引号的参数?我正在努力做到这一点;
$ args='"Hello there"'
$ echo ${args}
"Hello there"
$ ./program ${args}
Hello there # This is 1 argument
Run Code Online (Sandbox Code Playgroud)
但相反,当我遍历一个变量时,引号中的引号args似乎被忽略,所以我得到;
$ args='"Hello there"'
$ echo ${args}
"Hello there"
$ ./program ${args}
"Hello there" # This is 2 arguments
Run Code Online (Sandbox Code Playgroud)
是否可以让 bash 将引号视为我自己在第一个代码块中输入的引号?