小编Bhe*_*ung的帖子

在java中使用try-finally的好习惯?

今天我遇到了一个小问题,我有一段这样的代码,这让我有点不舒服......

   try{
       //stuff...
   } finally {
       //finally stuff
   }
Run Code Online (Sandbox Code Playgroud)

我想知道这样的实现是否是一个很好的做法,在何时发生异常try并被重新抛给处理它的调用者.这相当于下面的代码吗?

    try{
        //code....
    } catch (Exception e) {
        //handling...
    } finally {
        //finishing up
    }
Run Code Online (Sandbox Code Playgroud)

java try-catch-finally try-finally

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

这个正则表达式是否允许空格?

以下正则表达式在java上下文中意味着什么?

[a-zA-Z\\s][a-zA-Z0-9\\s]+$
Run Code Online (Sandbox Code Playgroud)

它应该允许空格(\t\n...)?但似乎只有非空格字符串通过.

谢谢

java regex

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

Java类的JVM调优

我的java类读入一个60MB的文件,并生成HashMap一个HashMap包含超过3亿条记录的文件.

HashMap<Integer, HashMap<Integer, Double>> pairWise =
                             new HashMap<Integer, HashMap<Integer, Double>>();
Run Code Online (Sandbox Code Playgroud)

我已经将VM参数调整为:

-Xms512M -Xmx2048M
Run Code Online (Sandbox Code Playgroud)

但系统仍然适用:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.HashMap.createEntry(HashMap.java:869)
    at java.util.HashMap.addEntry(HashMap.java:856)
    at java.util.HashMap.put(HashMap.java:484)
    at com.Kaggle.baseline.BaselineNew.createSimMap(BaselineNew.java:70)
    at com.Kaggle.baseline.BaselineNew.<init>(BaselineNew.java:25)
    at com.Kaggle.baseline.BaselineNew.main(BaselineNew.java:315)
Run Code Online (Sandbox Code Playgroud)

在没有OOME失败的情况下运行需要多大的堆?

java jvm heap-memory jvm-arguments

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

NullPointerException错误(Java)

我正在NullPointerException使用这种方法.有人告诉我这是因为student.getId()返回null.我试图解决这个问题,但我无法弄明白.下面只是代码片段,只是方法和Student类.

编辑:我添加了创建数组的部分.

Student[] students ;

public Student[] enterStudents(){
    Scanner input = new Scanner(System.in);
    System.out.println("Enter number of students");
    int numOfStudents = input.nextInt();
    Student[] students = new Student[numOfStudents];
    int i;
    for(i = 0; i <= numOfStudents - 1; i++){
        System.out.println("Enter student's ID: ");
        int id = input.nextInt();
        System.out.println("Enter student's first name: ");
        String first = input.next();
        System.out.println("Enter student's last name: ");
        String last = input.next();
        System.out.println("Enter student's class: ");
        String stuClass = input.next();
        Student x = …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception

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

将此自定义字符串格式转换为DateTime?

如何转换以下字符串

    09/11/2011 9:40:55 pm
    20/11/2011 3:40:55 am

进入C#DateTime?

c# string datetime

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

assertEquals(obj,obj)返回失败的测试

嗯,我有一个货币对象,允许我添加其他货币对象.我尝试assertEquals()在java中测试我的代码是否正常,但后来失败了.

我非常肯定我的代码是正确的(System.out.println返回正确的答案),我想我只是assertEquals以错误的方式使用.T_T

如果我想知道是否myObj1 == myObj2进行测试,我究竟能使用什么?

**in my test.java**    
assertEquals(new Money(money1.getCurrency(),new Value(22,70)),money1.add(money2));

**in my money class**
public class Money {
    Currency currency;
    Value value;

    //constructor for Money class
    public Money(Currency currency, Value value) {
        super();
        this.currency = currency;
        this.value = value;
    }

    public Currency getCurrency() {
        return currency;
    }

    public void setCurrency(Currency currency) {
        this.currency = currency;
    }

    //must have same currency
    public Money add(Money moneyToBeAdded){
        Money result = new Money(moneyToBeAdded.currency, new Value(0,0)); …
Run Code Online (Sandbox Code Playgroud)

java tdd unit-testing assert

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

我试图找到最小数字,但我一直在寻求最大值一些帮助他?

这是我的代码:

import java.util.Scanner;
import java.util.Arrays;
import java.text.*;

public class p171ex6a{

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);

        int numk;
        numk = scan.nextInt();
        double num;
        double [] max = new double[numk];

        for (int in=0;in<numk;in++) {
            num = scan.nextDouble();        
            max [in]= num;
        }

        DecimalFormat df = new DecimalFormat("0.0000"); 
        Arrays.sort(max);   
        System.out.println(df.format(max[max.length-1]));
    }    
}
Run Code Online (Sandbox Code Playgroud)

java

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

另一个令人困惑的Java泛型

我在Utility类中有一个静态方法:

public static final <T extends Foo & IBar>  Foo1<T> getBaz(Class<T> fooAndIBarClazz)
Run Code Online (Sandbox Code Playgroud)

我有另一个班:

public class FooBar<T extends Foo> {
     private Class<T> fooClazz;
//...
}
Run Code Online (Sandbox Code Playgroud)

FooBar我要调用的实例内部Utility.getBaz()

public void aMethod() {
   Utility.getBaz(fooClazz); // fails with not a valid substitute for the bounded parameter
   //Utility.<IBar>getBaz(fooClazz); // fails as well
}
Run Code Online (Sandbox Code Playgroud)

是否可以在没有额外投射的情况下以这种通用方式调用实用程序方法?

java generics

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

对于Java中的大量输入,解析很长时间失败

我正在尝试将一个非常大的输入读取为String,然后将其转换long为如下所示:[该程序适用于短输入]

输入是两个int用空格分隔的,例如:"1248614876148768372675689568324619856329856295619253291561358926935829358293587932857923857934572895729511 413241"

我的代码:

import java.io.*;
import java.math.*;
import java.util.*;
public class Solution {
    public static void main(String args[] ) throws Exception {
        Solution obj = new Solution();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        String input[]=new String[T];
        for (int i=0;i<T;i++) {
            input[i] = br.readLine();
            }
        for (int i=0;i<T;i++){
            StringTokenizer st = new StringTokenizer(input[i]," ");
                BigInteger N = new BigInteger(st.nextToken());
                BigInteger P = new BigInteger(st.nextToken());
                System.out.println(obj.result(N,P));
            }
        }
    }

    public BigInteger result(BigInteger …
Run Code Online (Sandbox Code Playgroud)

java string long-integer

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

适用于int,int和string的数据结构

我在犹豫什么是保存以下数据形式的合适数据结构:

  1. 整数表示最小数
  2. 整数表示最大数量
  3. 一个字符串包含一条消息

所以,如果我有一个result_number,我可以 -

  1. 检查result_number是否位于最小和最大数字之间
  2. 并显示相应的消息

那么适当的数据结构是什么?

java data-structures

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