鉴于下面的2 toString()实现,哪一个是首选的: public String toString(){ return "{a:"+ a + ", b:" + b + ", c: " + c +"}"; } 要么 public String toString(){ StringBuilder sb = new StringBuilder(100); return sb.append("{a:").append(a) .append(", b:").append(b) .append(", c:").append(c) .append("}") .toString(); } ? 更重要的是,由于我们只有3个属性可能没有什么区别,但是在什么时候你会从+ concat切换到StringBuilder ?
例如,假设我有一个应用程序可以读取一堆数据行的CSV文件。 我根据数据types向用户提供行数摘要,但是我想确保不读取太多数据行并导致OutOfMemoryError 。 每一行都翻译成一个对象。 有没有一种简单的方法来以编程方式找出该对象的大小? 是否有一个引用来定义一个VM有多大的基本types和对象引用? 现在,我的代码说可以读取32,000行 ,但是我也希望代码能够读取尽可能多的行,直到我使用了32MB的内存。 也许这是一个不同的问题,但我仍然想知道。
我正在尝试从一个Activity发送客户类的对象,并将其显示在另一个Activity 。 客户类的代码: public class Customer { private String firstName, lastName, Address; int Age; public Customer(String fname, String lname, int age, String address) { firstName = fname; lastName = lname; Age = age; Address = address; } public String printValues() { String data = null; data = "First Name :" + firstName + " Last […]
当serialVersionUID缺失时,Eclipse会发出警告。 可序列化类Foo不声明longtypes的静态最终serialVersionUID字段 什么是serialVersionUID ,为什么它很重要? 请显示缺lessserialVersionUID会导致问题的示例。
如何使用JUnittesting具有内部私有方法,字段或嵌套类的类? 为了能够运行一个testing,改变一个方法的访问修饰符似乎是不好的。
我已经阅读关于检查与未经检查的exceptionStackOverFlow多个职位。 我老实说还不太清楚如何正确使用它们。 Joshua Bloch在“ Effective Java ”中表示 对于可恢复的条件和运行时exception使用已检查的exception来编程错误(第二版中的第58项) 让我们看看我是否正确理解这一点。 这是我对一个检查的exception的理解: try{ String userInput = //read in user input Long id = Long.parseLong(userInput); }catch(NumberFormatException e){ id = 0; //recover the situation by setting the id to 0 } 1.以上是否考虑检查exception? 2. RuntimeException是一个未经检查的exception吗? 这是我对未经检查的例外的理解: try{ File file = new File("my/file/path"); FileInputStream fis = new FileInputStream(file); }catch(FileNotFoundException e){ //3. […]
如果你有java.io.InputStream对象,你应该如何处理这个对象并产生一个String ? 假设我有一个包含文本数据的InputStream ,并且我想将其转换为一个String 。 例如,我可以将stream的内容写入日志文件。 采取InputStream并将其转换为String的最简单方法是什么? public String convertStreamToString(InputStream is) { // ??? }
我想在java中分配一组variables,如下所示: int n1,n2,n3; for(int i=1;i<4;i++) { n<i> = 5; } 我怎样才能在Java中实现这一点?
a只能在这里决赛。 为什么? 如何在onClick()方法中重新分配a方法而不将其保留为私有成员? private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; } }); } 点击时如何返回5 * a ? 我的意思是, private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; return b; // but […]
具体来说,我试着这个代码: package hello; public class Hello { Clock clock = new Clock(); public static void main(String args[]) { clock.sayTime(); } } 但它给了错误 无法访问静态方法main中的非静态字段 所以我改变了这个clock的声明: static Clock clock = new Clock(); 它的工作。 在声明之前放置关键字是什么意思? 这个对象会做什么和/或限制什么?