我知道每个线程都有自己的stack.原始类型和引用保留在堆栈中,并且堆栈中没有任何对象.我的问题是:
Xms和 - Xmx)我从IBM获得了一些名为"从Java代码到Java堆:了解应用程序的内存使用情况"的幻灯片,它说,当我们使用String而不是char[],
单个字符的最大开销为24:1!
但是我无法理解这里提到的开销.有人可以帮忙吗?
资源 :

我有以下课程.
public class ValidationException extends RuntimeException {
}
Run Code Online (Sandbox Code Playgroud)
和
public class ValidationException extends Exception {
}
Run Code Online (Sandbox Code Playgroud)
我很困惑自定义异常何时应该扩展RunTimeException以及什么时候必须扩展Exception.能否请您解释一下我是否有RunTimeException直接延伸的缺点?
谢谢!
List.add UnsupportedOperationException在尝试添加其他列表时抛出.
List<String> supportedTypes = Arrays.asList("6500", "7600"};
Run Code Online (Sandbox Code Playgroud)
我在做循环
supportedTypes.addAll(Arrays.asList(supportTypes.split(","))); //line 2
Run Code Online (Sandbox Code Playgroud)
从文件中读取supportTypes.
但第2行抛出了UnsupportedOperationException,但我无法确定原因?
我在列表中添加另一个列表,然后为什么不支持此操作?
直到今天我才知道java有堆,这是由JVM创建的.此外,该内存由OS分配给JVM实例,即堆驻留在JVM实例中.
但今天我看了一张照片, 
这表明,JVM与堆相距甚远.
所以,我现在很困惑,任何人都可以让我知道,我之前是否错了,或者我无法理解图片?
我想到条件和编译器.我正在编写Arduino的应用程序,所以我需要尽可能快的应用程序.
在我的代码中我有这个:
#define DEBUG false
...
if (DEBUG)
{
String pinName;
pinName = "Pin ";
pinName += pin;
pinName += " initialized";
Serial.println(pinName);
}
Run Code Online (Sandbox Code Playgroud)
我想知道编译器是否在二进制文件中不包含代码(if块中的代码).条件总是错误的,所以程序永远不会去那里.
从另一方面来看.如果DEBUG是真的怎么办?Arduino是否测试条件或编译器只包含if在二进制文件中的主体?
我发现这个网站https://gcc.gnu.org/onlinedocs/gcc-3.0.2/cpp_4.html关于#if指令,所以我可以重写代码以获得这些指令而不是"正常"if.但我想知道我是否应该重写它,或者是否浪费时间.
这是在声明像这样的对象时使用接口/基类引用的一般编码实践:
InterfaceIF ref = new SomeObject();
Run Code Online (Sandbox Code Playgroud)
我知道这提供了松散耦合,我们可以使用新的实现来更改/编写新类,而不会影响很多代码.
但有一点我无法理解,而且没有回答的问题是:
直到几个星期前,我想我明白什么时候做字段和方法static或non-static.例如,当一个字段(比如另一个类的对象)对于该类的任意数量的对象是唯一的时,它应该被创建static.
但几周前我读到了有关JVM垃圾收集的内容.
我知道static字段永远不会被垃圾收集并一直保留在内存中,除非类加载器本身是垃圾收集的.
但如果我不做那个领域static,至少它会被垃圾收集.
因此,似乎在使字段/方法静态与否之间存在非常细微的界限.
任何人都可以在决定时向我解释这条细线,以便我的应用更有效率.
我知道SNMP是什么,我知道ping是什么.什么是"SNMP ping"?SNMP可用于查看网络上的设备是否仍处于活动状态.它可以用来做什么?我不会想到SNMP ping与ICMP ping相同吗?
我是 Linux 新手,我必须设置 DISPLAY 变量才能运行 Java 应用程序。不知何故,我设法做到了,我知道可以使用设置显示
<host>:<display>[.<screen>]
Run Code Online (Sandbox Code Playgroud)
但我正在做的是:1001。
现在,这个 1001 是这个 linux 的第 1001 个显示?机器中可以显示这么多显示器还是我的理解是错误的?