小编Bri*_*new的帖子

Java String.substring方法潜在的内存泄漏?

我正在浏览String类API,看起来像substring方法导致潜在的内存泄漏,因为它与原始String共享相同的字符数组.

如果原始字符串很大,则子字符串返回的小字符串可以防止原始字符串(由大数组备份)从Java中的垃圾收集.

任何想法或我读错了API.

java string memory-leaks

15
推荐指数
2
解决办法
7363
查看次数

查询ARP缓存以获取MAC ID

我需要在我的网络中获取主机的MAC ID.为此,如果我ping到该IP并查询ARP缓存arp -a,我就能获得MAC ID.我只是想知道我是否可以获取任何API来查询ARP并获取MAC ID.

此外,如果有更好的方法从IP地址获取MAC ID,请建议.

PS:我在JAVA工作.

谢谢.

java networking

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

Spring for Python如何与Spring for Java相比较

我是Java框架的狂热粉丝(Rod Johnson).我正在学习Python,很高兴能找到关于Spring的Python.我有兴趣听听社区对这两种Spring的比较的看法.它与Python的范例等有什么关系?

python java spring

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

DWR有什么缺点?

在Intranet中使用DWR时,会出现性能或安全问题等缺点吗?直接Web远程处理是一种使用Ajax请求从js文件联系服务器的工具.

javascript java ajax dwr request

12
推荐指数
1
解决办法
6991
查看次数

为什么不用DriverManager.getConnection(String url,String user,char []密码)?

我们知道优先选择char []而不是java.lang.String来存储密码.这是出于以下两个原因(正如我所读):

  1. char []是可变的,因此我们可以在使用后清除密码.
  2. 字符串文字转到不会将垃圾收集为其他对象的池,因此可能会出现在内存转储中.

但是java.sql.DriverManager没有符合上述最佳实践的getConnection(),因为它的password参数是String.

DriverManager.getConnection(String url,String user,String password)

我认为API应该有一个带有以下签名的重载方法:

DriverManager.getConnection(String url,String user,char [] password)

你怎么看待这件事?你有没有看到任何替代方法来克服这种退缩?

很想听听你的想法.

java security string char

11
推荐指数
1
解决办法
3816
查看次数

使用Maven单个目标在Jar中打包Dll

我在我的maven项目中添加了一个DLL作为依赖,如下所示:

<dependency>
  <groupId>com.test.dll</groupId>
  <artifactId>myDll</artifactId>
  <version>0.1</version>
  <type>dll</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

当我尝试执行时 maven:install

它给了我这个错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2-   
beta-5:single (jar-with-dependencies) on project testApp: Failed to create 
assembly:    Error adding file-set for 'com.test.dll:myDll:dll:0.1' to archive: Error 
 adding archived file-set. PlexusIoResourceCollection not found for: C:\Users\USER\.m2
 \repository\com\test\dll\myDll\0.1\myDll-0.1.dll: No such archiver: 'dll'
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

更新

 <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>   
        <executions>
        <execution>
        <goals>
            <goal>sign</goal>
        </goals>
        </execution>
       </executions>
       <configuration>
        <keystore>src/main/keystore/mykey.keystore</keystore>
        <alias>aliasname</alias>
        <storepass>passw0rd</storepass>                  
        <verify>true</verify>

    </configuration>        
    </plugin>               
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>      
        <executions>
            <execution>
                <id>jar-with-dependencies</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>single</goal>
                </goals>       
            <configuration>
            <archive>
                <manifest>

                </manifest> …
Run Code Online (Sandbox Code Playgroud)

maven-2 maven m2e eclipse-juno

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

从java class\source生成WSDL

我有一个包含"逻辑"类的包(如CheckAuthenticationDataLogic.java,GetVocabularyiesLogic.java).另一个类--ApiService.java用于生成wsdl.ApiService.java有很多像这样的方法:

/**
   * Check authentication data.
   * @param contractNumber - number of contract.
   * @param msisdn - msisdn.
   * @param superPassword - super password.
   * @return result of authentication.
   */
  @WebMethod
  @WebResult(name = "result")
  public CheckAuthenticationDataResult checkAuthenticationData(@WebParam(name = "contractNumber")
                                                               final String contractNumber,
                                                               @WebParam(name = "msisdn")
                                                               final String msisdn,
                                                               @WebParam(name = "superPassword")
                                                               final String superPassword) {
    return runLogic(new CheckAuthenticationDataLogic(contractNumber, msisdn, superPassword));
  }
Run Code Online (Sandbox Code Playgroud)

如你所见它只是一个代理方法...所以我想避免两次做同样的工作,并从逻辑类生成WSDL而不编写ApiService.java.是否存在用于此目的的任何工具或库?

java wsdl

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

从Java日历迁移到Joda日期时间

以前,当我第一次设计股票应用程序相关软件时,我决定使用它java.util.Date来表示股票的日期/时间信息.

后来,我意识到大多数方法都java.util.Date被弃用了.因此,很快,我重构了我的所有代码以供使用java.util.Calendar

但是,我遇到了两个缺点.

  1. 构造java.util.Calendar比较慢java.util.Date
  2. 在类的访问器getCalendar方法中Stock,我需要克隆一个副本,因为它Calendar是一个可变类

这是Stock.java的当前源代码

最近,我发现了Joda-Time.我做了以下基准,通过创建百万java.util.Date,java.util.Calendarorg.joda.time.DateTime.我发现在实例化过程中org.joda.time.DateTime表现更好java.util.Calendar.

这是基准测试替代文字 结果.

此实例化速度很重要,尤其是将创建许多Stocks实例,以表示股票的长期价格历史.

您认为从Java Calendar迁移到Joda Date Time是否值得获得应用程序速度性能?我需要注意什么陷阱?

java jodatime

10
推荐指数
1
解决办法
8489
查看次数

$(document).ready()如何在IE 8中运行?

我最近安装了IE 8,似乎无法获取jquery $(document).ready事件.我有什么特别的考虑因素吗?通俗易懂,这就是我在html中所拥有的一切,它在Chrome和Firefox中按预期工作:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Page full of awesomeness</title>
    <script type="text/javascript" src="~/Scripts/jquery-1.3.2.js" />
    <script type="text/javascript">        
        $(document).ready(function() {
            alert("Hello?");           
        });
    </script>
</head>

<body>

</body>
Run Code Online (Sandbox Code Playgroud)

在Internet Explorer中,页面只是加载而不会发生意外.没有警报框,我看不到任何报告的javascript错误.这是我不知道的正常事吗?

jquery internet-explorer

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

gRPC 连接:使用 keepAlive 还是 idleTimeout?

查看 gRPC Java doc - ManagedChannelBuilder,有两个选项可以管理连接。似乎 idleTimeout() 是默认/首选配置。但是当我尝试搜索比较时,大多数帖子都在谈论 keepAlive 选项。

我很好奇什么是常见做法以及这两种选择的优缺点是什么?

空闲超时

在进入空闲模式之前设置没有正在进行的 RPC 的持续时间。在空闲模式下,通道关闭所有连接、NameResolver 和 LoadBalancer。新的 RPC 将使通道退出空闲模式。通道以空闲模式启动。默认为 30 分钟。

这是一个建议选项。不要依赖与此选项相关的任何特定行为。

keepAliveWithoutCalls

设置当连接上没有未完成的 RPC 时是否执行 keepalive。默认为假。

在启用此选项之前,客户端必须获得服务所有者的许可。未使用连接上的 Keepalive 很容易意外地消耗大量带宽和 CPU。通常应使用 idleTimeout() 代替此选项。

keep-alive grpc grpc-java

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