小编hsm*_*mit的帖子

为什么将""附加到String保存内存?

我说,我使用了一个包含大量数据的变量String data.我想以下列方式使用此字符串的一小部分:

this.smallpart = data.substring(12,18);
Run Code Online (Sandbox Code Playgroud)

经过几个小时的调试(使用内存可视化器)后,我发现对象字段smallpart记住了所有数据data,尽管它只包含子字符串.

当我将代码更改为:

this.smallpart = data.substring(12,18)+""; 
Run Code Online (Sandbox Code Playgroud)

..问题解决了!现在我的应用程序现在使用很少的内存!

怎么可能?有谁能解释一下?我认为这个小部分一直在引用数据,但为什么呢?

更新: 如何清除大字符串呢?data = new String(data.substring(0,100))会做什么吗?

java memory string performance

193
推荐指数
5
解决办法
8137
查看次数

如何比较Java中几乎相似的字符串?(字符串距离测量)

我想比较两个字符串并获得一些评分看起来有多相似.例如"句子几乎相似""句子相似".

我不熟悉Java中的现有方法,但对于PHP我知道levenshtein函数.

Java中有更好的方法吗?

java string comparison string-metric levenshtein-distance

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

如何在Java中过滤数组?

如何在Java中过滤数组?

我有一系列对象,例如汽车:

类:

public class Car{
    public int doors;
    public Car(int d){
        this.doors = d;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用:

Car [] cars = new Cars[4];
cars[0] = new Car(3);
cars[1] = new Car(2);
cars[2] = new Car(4);
cars[3] = new Car(6);
Run Code Online (Sandbox Code Playgroud)

现在我想过滤汽车阵列,只保留4门以上:

for(int i = 0; i<cars.length; i++){
    if(cars[i].doors > 4)
         //add cars[i] to a new array
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

在我用Vector做之前:

Vector subset = new Vector();
for(int i = 0; i<cars.length; i++){
    if(cars[i].doors > 4)
         //add cars[i] to a new array …
Run Code Online (Sandbox Code Playgroud)

java arrays vector filter java-me

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

Eclipse:在多个项目之间共享代码

我在Eclipse(java me midlets)中有不同的项目,它们都需要共享代码.目前我重复了一些事情,但这并不理想.做这个的最好方式是什么?谢谢!

编辑:我试图在构建路径中添加另一个项目,但是,当在模拟器中运行Midlet时,我得到以下错误:

未捕获的异常java/lang/NoClassDefFoundError:clientlibrary/ov9292/Ov9292Client.

java eclipse share

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

如何在一个类中处理多个线程?

线程通常以两种方式设计(参见java教程):通过扩展Thread类或通过实现Runnable类.无论哪种方式,您都需要指定在线程内运行的内容.

我设计了一个类,一个适用于在线资源的适配器,可以检索不同类型的信息.该类由getInformationOfTypeA()和getInformationOfTypeB()等方法组成.两者都包含连接到在线资源的代码,因此两者都需要进行线程化以避免死锁.

问题是:我该如何设计?我可以像下面这样做,但后来我只能实现一个方法:

public class OnlineResourceAdapter implements Runnable {

  public void run() {
      //get stuff from resource
      getInformationOfTypeA();
  }

  public static void main(String args[]) {
      (new Thread(new OnlineResourceAdapter ())).start();
  }

  public void getInformationOfTypeA(){
      //get information of type A
  }

  public void getInformationOfTypeB(){
      //get information of type B
  }

}
Run Code Online (Sandbox Code Playgroud)

另一种方法是为每个方法创建单独的类,但这对我来说似乎不自然.

顺便说一句:我正在j2me中开发我的应用程序

更新:

感谢您的回复,我认为最适合使用以下方法作为方法:

你觉得这怎么样:

public class OnlineResourceAdapter{
    public void getInformationOfTypeA(){
        Thread t = new Thread(new Runnable() {           
            public void run() { 
                //do stuff here
            } 
        });
        t.start();
    } …
Run Code Online (Sandbox Code Playgroud)

java multithreading java-me

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

堆栈跟踪中的数字是什么意思?

我怎样才能在堆栈跟踪中使用这些数字?这些是什么意思?在eclipse中,我经常会遇到异常,例如NullPointerException:

java.lang.NullPointerException
  at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
  at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
  at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+186) 
Run Code Online (Sandbox Code Playgroud)

java eclipse console exception stack-trace

8
推荐指数
1
解决办法
1349
查看次数

框架集上的模态对话框或div叠加?

我有一个html页面,其中有几个框架(也是嵌套的框架集).我想在所有这些帧上显示叠加以显示模态框/灯箱.那可能吗?

我知道,我知道,框架集不好用,但我想尝试一下!

模态对话框示例

html modal-dialog frameset

8
推荐指数
1
解决办法
4838
查看次数

如何处理大字符串和有限的内存

我有一个文件,我从中读取数据.此文件中的所有文本都存储在String变量(一个非常大的变量)中.然后在我的应用程序的另一部分,我想要遍历此字符串并逐步提取有用的信息(解析字符串).

与此同时,我的内存已满,OutOfMemory异常使我无法进一步处理.我认为在从文件中读取输入流时直接处理数据会更好.但是对于组织目标,我想将String传递给我的应用程序中的另一部分.

我该怎么办才能防止内存溢出?

java memory string out-of-memory

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

如何找出PHP和sendmail是否一起工作?

当我使用终端发送电子邮件时,工作正常.我使用以下命令:

echo "Subject: test" | /usr/lib/sendmail -v you@domain.com
Run Code Online (Sandbox Code Playgroud)

但是当我在PHP中尝试这个时:

PHP文档:

<?php bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] ) ?>
Run Code Online (Sandbox Code Playgroud)

我的实施:

<?php mail("you@domain.com", "my topic", "my message contents", "From: me@domain.com"); ?>
Run Code Online (Sandbox Code Playgroud)

,那它不起作用.这是为什么?我想这与PHP的php.ini文件有关?

我配置的全部:

  • 打开php.ini:

    nano /etc/php5/apache2/php.ini

  • 取消注释sendmail_path并写入:

    sendmail_path = /usr/sbin/sendmail

  • 取消注释sendmail_from并写入:

    sendmail_from = me@domain.com

  • 重启apache:

    /etc/init.d/apache2 restart

可能是这样的?为了使这个更清楚:我希望PHP能够通过电子邮件发送!

编辑:

  • PHP mail()函数返回FALSE.
  • 为php.ini中:改变/usr/sbin/sendmail/usr/lib/sendmail(或者反过来)似乎没有任何区别
  • 对于终端命令:/usr/sbin/sendmail改为/usr/lib/sendmail(或反过来)似乎也没有任何区别
  • 我发送邮件到我自己的域和gmail,两者都没有垃圾邮件文件夹中的邮件.

Sendmail的日志文件:

root@machine:/var/log# cat mail.warn

root@machine:/var/log# cat mail.err …
Run Code Online (Sandbox Code Playgroud)

php email terminal command-line sendmail

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

Google日历Feed api已删除活动

我正在将Google日历与我的应用程序同步(我将事件存储在数据库中).更新事件后,我可以通过在"更新"订单上对事件订阅源进行排序,轻松找到上次更新.但是,如果删除/删除了某个活动,我该如何从Feed中跟踪此更新?

google-calendar-api gdata-api gdata

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

OOP方法是什么?(或你的方法?)

我在使用一些通用的OOP和Java方法时遇到了困难.有许多方法可以让类/对象相互通信.举个简单的例子:

  • 我需要对象A来执行操作X.
  • 对象A需要P,Q和R来执行此操作X.

那么Object A会自己检索P,Q和R(在动作X中),还是这些值必须是动作X的参数?

java oop

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

PHP在命令行中

使用Python我可以通过键入来测试终端/命令行中的代码

python 
python> print "hello world"
Run Code Online (Sandbox Code Playgroud)

我也想用PHP做这件事,但输入时:

php
echo "hello world";
Run Code Online (Sandbox Code Playgroud)

它不起作用..这可能吗?我该怎么办?在互联网上快速搜索会产生大量结果,这些结果可以调用实际的.php文件来运行.我只想在可能的情况下测试单个句子,而不创建文件和内容.

php python terminal command-line code-testing

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

我可以在J2ME中使用HashMaps吗?

我在j2me中找不到关于HashMaps的文档.有任何人对此有经验吗?如何创建HashMap?

Map map1 = new HashMap();

应该工作吧?

java mobile hashmap map java-me

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