小编Sru*_*lla的帖子

PATH更改后,Java默认版本不会反映出来

我目前在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设置.

java version environment-variables

7
推荐指数
1
解决办法
1571
查看次数

cat/dev/null到多个文件以清除日志等现有文件

一个清除日志的好方法(syslog有一个文件句柄)已经冻结我的linux服务器(空间不足)我试过 cat /dev/null > fileABC; cat /dev/null/ > fileXYZ

如何通过cat/dev/null将多个文件清除为高效或单个命令中的多个文件.

linux bash shell command-line tee

7
推荐指数
2
解决办法
7759
查看次数

使用 MappedByteBuffer 读取约 14GB 的大文件

我正在尝试解决 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中的内存映射文件之外的其他方法?

java io file memory-mapped-files mappedbytebuffer

6
推荐指数
0
解决办法
2952
查看次数

将函数作为参数传递的优点

刚刚参加考试,我在笔记中找不到这个问题的答案.任何帮助都会很棒.

许多语言允许子程序/函数作为参数传递.列出由此提供的两个优点,并通过清晰的解释性示例激励每个优势(这不需要是伪代码的代码).

function parameter-passing

5
推荐指数
1
解决办法
3453
查看次数

字符串拆分方法行为

我不明白为什么以下输出有意义.

空字符串上的字符串拆分方法返回长度为1的字符串数组

String[] split = "".split(",");
System.out.println(split.length);
返回长度为1的String数组

String[] split = "Java".split(",");
System.out.println(split.length);
返回长度为1的String数组

如何区分?

java string split

5
推荐指数
1
解决办法
1万
查看次数

编辑距离说明

我已经看到很多代码要解决这个问题,但我无法理解为什么他们使用矩阵来表示两个单词之间的距离.有人可以向我解释一下吗?

这是我找到的示例代码:

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)

algorithm edit-distance

4
推荐指数
1
解决办法
3975
查看次数

Apache FtpClient在日志中打印出密码

当它调用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)

java apache ftp ftp-client

4
推荐指数
1
解决办法
893
查看次数

使用+运算符分配字符串内存

String a = "abc";
String b = "xyz";
String result = a + b;

我想知道"result"字符串是否是字符串池中的String常量分配内存或堆上创建的新对象.

我知道新的String()在堆上创建对象,并且在permgen字符串池空间中的上例中的字符串常量如a,b.

java memory string heap memory-management

3
推荐指数
1
解决办法
1165
查看次数

使用java中的文件

我有一个字符串数组.我想将这些字符串保存在文件中.问题是,我需要创建一个名为db.txt的新文件(仅当它不存在时),然后以某种方式向它写入字符串.

然后我希望能够从该文件中读取字符串并将它们插入到数组中.

插入和使用数组不是问题,但问题是如何弄乱文件?如何创建新的文本文件(如果尚未存在),如何写入文件以及如何从中读取文件?

试图自己学习,但我在互联网上看到了很多方式,并感到困惑.

java file-io

3
推荐指数
1
解决办法
1万
查看次数

Java源代码中的通用编程

Arrays和Collections是所有java程序员使用的两个基本api类.这两个类都是在Java 1.2中添加的

查看Arrays类,有27个重载的binarysearch方法,它没有使用Generics,因为集合被更新为使用泛型.Collections类有2个重载二进制搜索方法.

为什么这样做或者我错过了什么?

java generics api

2
推荐指数
1
解决办法
134
查看次数