我目前在Java 1.7.0_17 64位版本上运行,我想使用Java 32位版本启动应用程序.
我更新了PATH变量以指向(C:\Program Files (x86)\Java\jre7\bin)Java 32位版本.然后做了java -version它仍然显示64位版本.
我放弃并试图做一个java -d32 -jar abc.jar,然后它给了我一个
java -d32
Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.
Run Code Online (Sandbox Code Playgroud)
请让我知道系统如何刷新PATH变量中完成的最新Java设置.
一个清除日志的好方法(syslog有一个文件句柄)已经冻结我的linux服务器(空间不足)我试过 cat /dev/null > fileABC; cat /dev/null/ > fileXYZ
如何通过cat/dev/null将多个文件清除为高效或单个命令中的多个文件.
我正在尝试解决 I/O 密集型的生产者消费者问题。生产者常量将数据附加到文件中,消费者从这个不断增长的文件中读取数据。文件大小通常以 GB 为单位(约 10GB)。
最初我尝试使用 BufferedOutputStream 和 BufferedInputStream 来读取数据并将数据写入文件。在上午 9:30 出现的数据突发期间,它占用了太多的系统 CPU %,例如 30-40%(必须是 I/O 的系统调用)。
查看内存映射文件可以加快速度。
File fileToRead= new File("C:\\readThisFile.dat");
FileChannel inChannel = new FileInputStream(fileToRead).getChannel();
MappedByteBuffer buffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, inChannel.size());
byte[] data = new byte[(int)inChannel.size()];
buffer.get(data);
Run Code Online (Sandbox Code Playgroud)
1) 由于文件 readThisFile.dat size() 大于 INTEGER.MAX 长度,inChannel.map() 会引发异常。
2)消费者如何使用超大文件的内存映射文件不断读取数据。消费者每次可以加载100MB并继续寻找更多数据?
3)是否有更快的解决方案,例如尝试除Java中的内存映射文件之外的其他方法?
刚刚参加考试,我在笔记中找不到这个问题的答案.任何帮助都会很棒.
许多语言允许子程序/函数作为参数传递.列出由此提供的两个优点,并通过清晰的解释性示例激励每个优势(这不需要是伪代码的代码).
我不明白为什么以下输出有意义.
空字符串上的字符串拆分方法返回长度为1的字符串数组
String[] split = "".split(",");
System.out.println(split.length);
返回长度为1的String数组
String[] split = "Java".split(",");
System.out.println(split.length);
返回长度为1的String数组
如何区分?
我已经看到很多代码要解决这个问题,但我无法理解为什么他们使用矩阵来表示两个单词之间的距离.有人可以向我解释一下吗?
这是我找到的示例代码:
public static int minDistance(String word1, String word2)
{
int l1 = word1.length(), l2 = word2.length();
int[][] d = new int[l1 + 1][l2 + 1];
// the edit distance between an empty string and the prefixes of
// word2
for (int i = 0; i < l2 + 1; i++) {
d[0][i] = i;
}
// the edit distance between an empty string and the prefixes of
// word1
for (int j = 0; j < l1 + 1; …Run Code Online (Sandbox Code Playgroud) 当它调用ftp.login(user,pwd)时,它开始打印密码和用户名,这很容易暴露。有没有办法让它不打印密码。
输出:
220 <xxxx>- FTP Server ready
USER <prints username here>
331 Password required for <username>
PASS <printspassword here>
230 User <username> logged in
Run Code Online (Sandbox Code Playgroud)
码:
public FTPDownloadBB(String host, String user, String pwd) throws Exception
{
FTPClient ftp ftp = new FTPClient();
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
int reply;
ftp.connect(host);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();
throw new Exception("Exception in connecting to FTP Server");
}
ftp.login(user, pwd);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
}
Run Code Online (Sandbox Code Playgroud) String a = "abc";
String b = "xyz";
String result = a + b;
我想知道"result"字符串是否是字符串池中的String常量分配内存或堆上创建的新对象.
我知道新的String()在堆上创建对象,并且在permgen字符串池空间中的上例中的字符串常量如a,b.
我有一个字符串数组.我想将这些字符串保存在文件中.问题是,我需要创建一个名为db.txt的新文件(仅当它不存在时),然后以某种方式向它写入字符串.
然后我希望能够从该文件中读取字符串并将它们插入到数组中.
插入和使用数组不是问题,但问题是如何弄乱文件?如何创建新的文本文件(如果尚未存在),如何写入文件以及如何从中读取文件?
试图自己学习,但我在互联网上看到了很多方式,并感到困惑.
Arrays和Collections是所有java程序员使用的两个基本api类.这两个类都是在Java 1.2中添加的
查看Arrays类,有27个重载的binarysearch方法,它没有使用Generics,因为集合被更新为使用泛型.Collections类有2个重载二进制搜索方法.
为什么这样做或者我错过了什么?