小编Raj*_*l D的帖子

使用.toString(),String.valueOf()和+""将字符串缓冲区转换为字符串有什么区别

在以下三种情况下,StringBuffer转换为String的主要区别是什么:

案例1:使用toString()

StringBuffer sb = new StringBuffer("Welcome");
String st = sb.toString();
Run Code Online (Sandbox Code Playgroud)

案例2:使用+""

StringBuffer sb = new StringBuffer("Welcome");
String st = sb + "";
Run Code Online (Sandbox Code Playgroud)

案例3:使用String.valueOf()

StringBuffer sb = new StringBuffer("Welcome");
String st = String.valueOf(sb);
Run Code Online (Sandbox Code Playgroud)

哪个是性能方面的最佳实践?

java string stringbuilder

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

将最可能的真实条件放在if,else-if或else中有什么不同

将最可能的条件放在if,else-if或else条件中是否有任何区别

例如:

int[] a = {2,4,6,9,10,0,30,0,31,66}
int firstCase = 0, secondCase = 0, thirdCase = 0;
for( int i=0;i<10;i++ ){
    int m = a[i] % 5;
    if(m < 3) {
        firstCase++;
    } else if(m == 3) {
        secondCase++;
    } else {
        thirdCase++;
    }
}
Run Code Online (Sandbox Code Playgroud)

执行时间与输入的区别是什么

int[] a = {3,6,8,7,0,0,0,0,0,0}
Run Code Online (Sandbox Code Playgroud)

java execution time-complexity

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

Java单例设计模式与全局变量

我开发了一个“Java测验应用程序”,它具有许多功能,例如测验进行、即时报告功能、学生可以发布他们的疑问等等。

我想维护请求测验的学生人数、提交回复的学生人数、活跃学生总数和其他一些详细信息的日志。

我正在使用一个全局类,它具有静态变量来保存这些详细信息。这是维护它的正确方法还是我应该使用单例设计模式?

请告诉我两者的优缺点以及使用哪一种以及何时使用?

java static design-patterns global-variables

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

x.clone().equals(x)如何为True

我尝试过这个实现,但是对于类x来说我是假的

x.clone().equals(x)
Run Code Online (Sandbox Code Playgroud)

X级:

public class X implements Cloneable{
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    protected Object clone()throws CloneNotSupportedException {
        return super.clone();       
    }

}
Run Code Online (Sandbox Code Playgroud)

主要课程:

public class ObjectCloneCopy {
  public static void main(String[] args) throws CloneNotSupportedException {
    X x = new X();
    System.out.println("x.clone().equals(x) - " + x.clone().equals(x));
  }
}
Run Code Online (Sandbox Code Playgroud)

是否必须重载hashcode()和equals()以获得此True?

如果不重写这些方法,这个陈述如何给出真实的?

X x1 = x;
x1.equals(x)
Run Code Online (Sandbox Code Playgroud)

解释这可能是真的,我已经在这个链接中看到了

java clone equals

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

POI HSSF XLS下载Servlet中的问题 - 新的XLS文件正在下载以前的工作表

我创建了Servlet,下载POI XLS文件,在第一个get/post请求新文件下载sheet0.当我正在进行第二次请求时,新文件正在下载两张纸.pip0是先前请求sheet1是新请求.如果我做4请求4表可用就像明智一样.

我只想要一张表来满足新的要求.

Servlet代码:

HSSFWorkbook wb = new HSSFWorkbook();

getGet(){
    String reportname = request.getParameter("repname");
    response.setContentType("application/vnd.ms-excel");
   response.setHeader("Content-Disposition", "attachment; filename=" + reportname + ".xls");
    HSSFSheet sheet = wb.createSheet();
    int i=0;
    while(i<10)
    {
        sheet.createRow(i);
        HSSFCell cell = sheet.getRow(i).createCell(0);
        cell.setCellValue("Test"+i);
        i++;
    }
    ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
    wb.write(outByteStream);
    byte [] outArray = outByteStream.toByteArray();
    OutputStream outStream = response.getOutputStream();
    outStream.write(outArray);
    outStream.flush();
    outStream.close();
}
Run Code Online (Sandbox Code Playgroud)

网页代码:

<body>
    <a href="../../DownloadXLS?repname=Myreport1">One</a>
    <a href="../../DownloadXLS?repname=Myreport2">two</a>
    <a href="../../DownloadXLS?repname=Myreport3">three</a>
</body>
Run Code Online (Sandbox Code Playgroud)

我也希望在第n次请求时只有一张纸.

  • 哪里错了?
  • 任何逻辑错误?

java servlets poi-hssf apache-poi

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

Shell 脚本变量使用“”、()、{} 或两者一起表示带空格的值

shell脚本中使用“”或{}作为变量有什么区别

PATH="\home\user\test dir"
Run Code Online (Sandbox Code Playgroud)

何时使用

"$PATH"
$(PATH)
${PATH}
"${PATH}" 
Run Code Online (Sandbox Code Playgroud)

还有其他用例或方法来定义此变量吗?

bash shell

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