今天和某个同事探讨一段代码的效率
getName1 效率高还是 getName 效率高。
我说getName1比较好,getName效率会比较差。因为有try catch性能会差。他说如果大多数情况下我test能确认不为空,那么是不是可以选getName。随后我做一下实验
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b18, mixed mode)
public String getName1(Test test) throws Exception{ if(test!=null) return test.getName(); else throw new Exception("test"); }
public String getName(Test test) throws Exception{ try { return test.getName(); }catch (Exception e){ throw e; }
try { // while (index < 10) { long start1 = System.currentTimeMillis(); for (int i = 0; i < 1000000000; i++) { t.getName(test); } System.out.println("start1 time :" + (System.currentTimeMillis() - start1)); long start2 = System.currentTimeMillis(); for (int i = 0; i < 1000000000; i++) { t.getName1(test); } System.out.println("start2 time :" + (System.currentTimeMillis() - start2)); // index++; // } } catch (Exception e) { e.printStackTrace(); } 用这段代码测试10次后得到的结果既然是平手。 如果还有朋友愿意测下别的jdk版本请将结果告诉我。
}
相关推荐
本示例中的"trycatch.zip"文件内容就是展示了如何在Golang中模拟`try...catch`和`try...catch...finally`。 Golang的核心错误处理方式是通过返回错误值。通常,函数会返回一个错误值,如果在执行过程中遇到问题,就...
= null) { pstmt = conn.prepareStatement(sql); } } catch (SQLException e) { e.printStackTrace(); } return pstmt; } public static PreparedStatement prepare(Connection conn, String ...
}finally{try {if(sta!=null){sta.close();sta=null;}if(con!=null){con.close();con=null;}} catch (SQLException e) {e.printStackTrace();}}}public ResultSet query(String sql){Connection con=null;Statement ...
= null) { rs.close(); rs = null; } if(stmt !=null){ stmt.close(); stmt = null; } if(conn != null){ conn.close(); conn = null; }...
= null) { rs.close(); } } catch (SQLException e) { System.out.println("rs关闭异常!"); }finally{ try { if (conn!= null) { conn.close(); } } catch (SQLException e) { System.out.println(...
Bitmap>> cache = Collections.synchronizedMap(new ...= null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } options.inJustDecodeBounds = false; int width = options.out
= null) {//使用readLine方法,一次读一行 wordList.add(s.trim()); } } catch (Exception e) { Logger.getLogger(FileUtil.class).info(e); return Collections.emptyList(); } finally { try { if (br !=...
try { if (Session["logon"]!...=null||Request.Params["productID"]!="") { AddProID=Request["productID"]; UpdateShoppingCart(); Caculator(); } }// 在此处放置用户代码以初始化页面 }
=null){ if(isFirst){ firstLine=tmp; isFirst=false; } index=tmp.indexOf("finename="); if(index!=-1){ String tailString = tmp.substring(index+10); if(tailString != ...
= null && m_oXMLDoc.xml != "" ) { objSelect.length = 0; aryXMLNodes = m_oXMLDoc.documentElement.selectNodes("TreeNode"); objSelect.options[0] = new Option("==全部=="); for (var i=0; i ; i++) ...
在 MySQL 数据库中,BLOB(Binary Large OBject)是一种二进制大对象类型,常用于存储图像、音频、视频和其他类型的文件。然而,在实际应用中,我们经常需要将 BLOB 数据转换为文件,以便在客户端上进行处理和显示。...
=null) { out.println(str); } } catch(IOException e){ System.out.println(e); } finally{ try { if(in!=null) in.close(); if(out!=null) out.close(); }catch(IOException e){ System.out.println...
= null) { rs.close(); } if (pstmt != null) { pstmt.close(); } if (cn != null) { cn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ...
= null && dt.Rows.Count != 0) { bulkCopy.WriteToServer(dt); } } catch (Exception ex) { // Log.WriteLog(err, ex); } finally { conn.Close(); if (bulkCopy != null) bulkCopy.Close(); } }
try { // create a player to play the media specified in the URL URL mediaURL = new File(“Alarm.mp3”).toURL() Player mediaPlayer = Manager.createRealizedPlayer(mediaURL) Component video = ...
=null) { String b = buffer; System.out.println("开始检索关键字:"+b); buffer = URLEncoder.encode(buffer, "UTF-8"); String url = "http://s.wanfangdata.com.cn/Paper.aspx?q=" + buffer + "&f=top"; ...
=null) rs.close(); } catch(Exception e) { e.printStackTrace(); } try { if (stmt!=null) stmt.close(); } catch(Exception e) { e.printStackTrace(); } try { if ...
- 对象判空:`if (object != null) { ... }` - 字符串判空:除了检查`null`,还需要考虑字符串长度,即`if (string != null && !string.isEmpty()) { ... }` - 集合判空:使用`isEmpty()`方法,如`if (!...
= null) ErrorHappened(this, new StringEventArgs("缺少有效的工作表")); return null; } Worksheet ws = wb.Worksheets[0]; string areaKey = "区域"; int areaPos = -1; // 获取区域所在列号 this.m_...
= null) { in.close(); } } catch (IOException e1) {} } } ``` 其次,**按字符读取文件**通常用于处理文本文件。`BufferedReader`和`FileReader`组合使用可以实现这一功能,它们可以自动处理字符编码: ```...