我正在尝试找出可以检索HashMap中的值的顺序.下面是代码片段.
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<Integer, String> hashmap = new HashMap<Integer, String>();
hashmap.put(1, "apple" );
hashmap.put(2, "lemon" );
hashmap.put(3, "orange" );
hashmap.put(4, "banana" );
hashmap.put(5, "litchi" );
hashmap.put(6, "mango" );
hashmap.put(7, "papaya" );
System.out.println(hashmap.size());
for (String key : hashmap.values()) {
System.out.println(key);
}
}
}
Run Code Online (Sandbox Code Playgroud)
7
apple
lemon
orange
banana
litchi
mango
papaya
Run Code Online (Sandbox Code Playgroud)
值按插入顺序打印.一般来说这是真的吗?我期待值以任意顺序打印.这是使用Java 6.
我想知道为什么assertEquals(double, double)被弃用了.
我用过import static org.junit.Assert.assertEquals;,我使用过JUnit 4.11.
以下是我的代码:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class AccountTest {
@Test
public void test() {
Account checking = new Account(Account.CHECKING);
checking.deposit(1000.0);
checking.withdraw(100.0);
assertEquals(900.0, checking.getBalance());
}
}
Run Code Online (Sandbox Code Playgroud)
checking.getBalance() 返回一个double值.
可能有什么不对?
为什么这段代码没有给出"无法访问的代码"错误?由于布尔值只能为true或false.
public static void main(String args[]) {
boolean a = false;
if (a == true) {
} else if (a == false) {
} else {
int c = 0;
c = c + 1;
}
}
Run Code Online (Sandbox Code Playgroud) 我只想在C++中用文本文件写一些简单的行,但我希望它们用UTF-8编码.这样做的最简单方法是什么?
以下陈述java.lang.ArithmeticException: / by zero显而易见.
System.out.println(0/0);
Run Code Online (Sandbox Code Playgroud)
因为文字0被认为是int文字并且在整数算术中不允许除以零.
但是,以下情况不会抛出任何异常java.lang.ArithmeticException: / by zero.
int a = 0;
double b = 6.199;
System.out.println((b/a));
Run Code Online (Sandbox Code Playgroud)
它显示Infinity.
以下语句生成NaN(非数字),没有例外.
System.out.println(0D/0); //or 0.0/0, or 0.0/0.0 or 0/0.0 - floating point arithmetic.
Run Code Online (Sandbox Code Playgroud)
在这种情况下,两个操作数都被认为是双精度数.
同样,以下语句不会抛出任何异常.
double div1 = 0D/0; //or 0D/0D
double div2 = 0/0D; //or 0D/0D
System.out.printf("div1 = %s : div2 = %s%n", div1, div2);
System.out.printf("div1 == div2 : %b%n", div1 == div2);
System.out.printf("div1 …Run Code Online (Sandbox Code Playgroud) 在像这样的Android Exceptions中使用printStackTrace()是一个坏主意吗?
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我想将文件从一个位置复制到Java中的另一个位置.
这是我到目前为止:
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
public class TestArrayList {
public static void main(String[] args) {
File f = new File(
"D:\\CBSE_Demo\\Demo_original\\fscommand\\contentplayer\\config");
List<String>temp=new ArrayList<String>();
temp.add(0, "N33");
temp.add(1, "N1417");
temp.add(2, "N331");
File[] matchingFiles = null;
for(final String temp1: temp){
matchingFiles = f.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith(temp1);
}
});
System.out.println("size>>--"+matchingFiles.length);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这不会复制文件,执行此操作的最佳方法是什么?
如果我有一个类和一个辅助类来执行它的一些功能,那么将它作为内部类是否有意义.
public class Foo {
private FooHelper helper;
// constructor & any other logic
public void doSomeThing() {
helper.do();
}
}
public class FooHelper {
public void do() {
// code
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,将内容FooHelper作为一个内部类是否有意义?道歉,如果这听起来很愚蠢,但我对用例感到困惑.
我无法理解Java JRE的一些基础知识.
我需要在嵌入式系统中运行Java代码,为此我需要在Linux内核中安装最小的Java Runtime Environment,也就是说,执行Java二进制文件所需的最小包.我认为只有JVM才能做到这一点(JRE包是必要的,我在这里错了吗?)
问题是,在查看Debian存储库时,我不太了解这些包之间的差异openjdk-6-jre,openjdk-6-jre-headless并且openjdk-6-jre-lib.Java程序只能与前者一起运行吗?或者,他们三个需要吗?
这是一个问题,因为它们之间的大小(MB)存在很大差异.
我最近一直在研究Java虚拟机规范(JVMS),试图更好地理解我的程序是如何工作的,但我找到了一个我不太了解的部分......
第4.7.4节描述了StackMapTable属性,在该部分中,文档详细介绍了堆栈映射帧.问题在于它有点罗嗦,我通过榜样学得最好; 不是通过阅读.
我知道第一个堆栈映射帧是从方法描述符派生的,但我不明白如何(这应该在这里解释.)另外,我不完全理解堆栈映射帧的作用.我认为它们与Java中的块类似,但看起来好像你不能在彼此内部堆栈映射帧.
无论如何,我有两个具体问题:
还有一个普遍的问题: