小编Sah*_*hoo的帖子

Java String文字池和字符串对象

我知道JVM维护一个字符串文字池来提高性能并维护JVM内存,并了解到字符串文字是在字符串池中维护的.但我想澄清与堆上创建的字符串池和字符串对象相关的内容.

如果我的解释错误,请纠正我.

String s = "abc";
Run Code Online (Sandbox Code Playgroud)

如果执行上面的行,如果池中不存在"abc"字符串文字,则将其添加到字符串池中.并且在堆上创建字符串对象,引用s将指向池中的文字.

问题:

  1. 这个代码每次执行时都会在堆上创建字符串对象吗?
  2. 字符串文字池是仅维护字符串文字还是维护字符串对象?
  3. JVM何时决定是否需要将字符串文字添加到字符串池中?它是在编译时还是运行时决定的?

如果它指向池中的字符串文字,我不确定在哪里创建字符串对象.

谢谢.

java string

11
推荐指数
2
解决办法
8751
查看次数

使用Maven Resolver Provider以编程方式获取有效的POM

我要怎么办

  • 给定本地文件系统上的POM文件。
  • 我想以编程方式获取该POM文件的有效POM。具体来说,我想执行以下操作:

    • 解决POM依赖关系
    • 确保已处理所有父POM
    • 获取完全解决的POM的依赖项列表
    • 等等...
  • 我不需要获得传递依赖。

什么有效?

我正在使用Maven Resolver Provider进行哪些工作。但是我必须使用包私有类org.apache.maven.repository.internal.DefaultModelResolver

这里是可以运行的示例Maven项目的GitHub链接:https : //github.com/sahilm/maven-resolver-test

该示例程序执行以下操作:

  • 从Maven Central下载最新的Spring Boot POM。
  • 打印出它的直接依赖项(包括父代)

您可以使用以下程序运行该程序: mvn exec:java -Dexec.mainClass="com.sahilm.maven_resolver_test.Test"

我需要什么帮助?

  • 我需要帮助来理解为什么我必须使用包私有类才能使工作正常进行。
  • 有没有其他方法可以获取我需要的信息?

java maven aether

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

将二进制文件读入字符串

这一点显而易见,但我无法弄清楚.我花了差不多一整天的时间.我很乐意给可以照亮我的人买啤酒.

File file = new File(filePath);
byte[] bytes = new byte[(int)file.length()];
DataInputStream dataInputStream = new DataInputStream(new BufferedInputStream(new FileInputStream(filePath)));
dataInputStream.readFully(bytes);           
dataInputStream.close();            
return new String(bytes);
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我看到字节数组大小不正常,但我无法弄清楚正确的大小.除此之外,内容也不正确.似乎只有文字字符才行.

似乎从二进制文件中获取数据是一种真正的痛苦,我真的很沮丧.

还有一件事:文件内容不是文本,可以是图片,视频或pdf.

java io android file stream

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

使用Apache commons cli库的尾随args

我在我们的代码库中找到了一个命令行实用程序,其中作者编写了一个自制的命令行解析器,其中包含的代码比实用程序本身更多.我决定将它切换到使用Apache CLI,事情几乎正常.

该实用程序使用尾随args,所以它看起来像这样:

util --argA=1 --argB=2 foo blah blarg
Run Code Online (Sandbox Code Playgroud)

其中"foo","blah"和"blarg"用作参数.

有办法处理这种情况吗?我宁愿不(并且可能没有权力)更改此实用程序的命令行签名.

java command-line-interface apache-commons apache-commons-cli

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

结合JQuery验证,然后是ajax发布

我确信这很简单,但我是JQuery的新手.我使用JQuery插件来验证电子邮件地址,这是有效的,代码是:

$(document).ready(function () {
    $("#email").click(function () {
        $(this).attr({value: ''});
    });
    $("#subscribe-form").validate();
});
Run Code Online (Sandbox Code Playgroud)

我当时想要做的是使用ajax帖子发布电子邮件地址,再次这个代码在没有验证器的情况下工作正常:

$(document).ready(function () {
    $('#submit').click(function () {
        var email = $('#email').val();
        var data = "email=" + email;
        $.ajax({
            type: "POST",
            url: "subscript.php",
            data: data,
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我似乎无法做到的是将它们两者结合起来,这样如果电子邮件有效,它就会发布.我非常感谢有关如何做到这一点的帮助.

非常感谢

validation ajax jquery post

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

Backbone.js无法访问路由器功能?

我有一个简单的Backbone.js实现,它是这样的 -

$(document).ready(function(){
    Workspace = Backbone.Router.extend({
    routes: {
    "/getAcademics": "academics"
        }, 

    academics: function(){
            alert("ok");
    $("#content").append("<div>Academics</div>");
    }
    }); 
var myWorkspace = new Workspace;
});
Run Code Online (Sandbox Code Playgroud)

身体中的链接如下 -

     <a href="#/getAcademics">Academics</a>
Run Code Online (Sandbox Code Playgroud)

虽然路由器路由到链接#/ getAcademics但它没有执行函数学术.有关如何纠正这一点的任何线索.我错过了别的什么.

谢谢

javascript backbone.js

0
推荐指数
1
解决办法
558
查看次数