当前位置 > 主页 > 万和大讲堂 >


南京Java培训_字符串中的小问题大智慧

2015-12-30 09:54

  说到字符串比较,大家都知道,但你真的知道如何比较才是最正确的吗? 南京Java培训

 

  不知道的人,几乎都是用以下方法来比较的

 

  [java]

 

  String str = null

 

  if (str == null || str.equals("")) {

 

  }

 

  String str = null

 

  if (str == null || str.equals("")) {

 

  }这实际上是效率最低的,正确的做法是:南京Java软件培训

 

  [java]

 

  String str = null;

 

  if (str == null || str.isEmpty()) {

 

  }

 

  String str = null;

 

  if (str == null || str.isEmpty()) {

 

  }但上述方法需要jdk在1.6以上,那么也可以用:

 

  [java]

 

  String str = null;

 

  if (str == null || str.length() == 0) {

 

  }

 

  String str = null;

 

  if (str == null || str.length() == 0) {

 

  }另外str.equals("1")与"1".equals(str)不同,前者如果str为null,会报空指针异常,而后者不会。南京Java培训

 

  上述问题虽然看似简单,但却反映出一名程序员的编程素质和态度,在我以前的文章中曾反复强调,一段好的代码,不是说实现功能就完了,而是在实现功能的前提下如何能高效、稳定、健全。同样的业务,你可能要花费1s,别人却只需0.3s,放大到服务器上,在高负载的情况下,别人的项目能正常运行,你的就挂了。

 

  无论是怎样优秀的程序员,也都是从无知到有知,谁都是从菜鸟级别一步步成长来的,但一些人在成长到一定阶段后便再也无法成长的原因在于,欠缺思考、永不放弃的坚强毅力和追求理想的心态。南京Java软件培训

 

  软件本身代表着自动化、智能化、高效化,软件是有代码编写而来的,因此代码本身也是具有这些特征的,一些程序员之所以显得“苦逼”,日日夜夜写代码,实际根本原因在于代码质量不高,失去了代码本身的特色,变成了纯粹体力话,不断重复着缝缝补补、复制粘贴。将自己由一个“艺人”变成了“工人”。

 

  所以,要想成为艺术大师,就必须从小做起,一点一滴不断加深思考,要有不满足于现状,最求完美的心态。

 

  以下,江苏万和小编还总结了一些例子,大家可以进一步体会下:

 

  1.

 

  [java]

 

  for (int i = 0; i < size() * 2; i++) {

 

  }

 

  for (int i = 0; i < size() * 2; i++) {

 

  }[java] view plaincopyprint?for (int i = 0, stop = size() * 2; i < stop; i++) {

 

  }

 

  for (int i = 0, stop = size() * 2; i < stop; i++) {   南京Java培训

 

  }2.

 

  [java]

 

  if (birds.elementAt(i).isGrower()) ...

 

  if (birds.elementAt(i).isPullet()) ...

 

  if (birds.elementAt(i).isGrower()) ...

 

  if (birds.elementAt(i).isPullet()) ...

 

  [java]

 

  Bird bird = birds.elementAt(i);

 

  if (bird.isGrower()) ...

 

  if (bird.isPullet()) ...

 

  Bird bird = birds.elementAt(i);

 

  if (bird.isGrower()) ...

 

  if (bird.isPullet()) ... 3.

 

  [java]

 

  TestBean bean = new TestBean();

 

  if (bean instanceof TestBean) {

 

  }

 

  TestBean bean = new TestBean();

 

  if (bean instanceof TestBean) {

 

  }[java]

 

  TestBean bean = new TestBean();

 

  if (bean.getClass().equals(TestBean.class)) {

 

  }

 

  TestBean bean = new TestBean();

 

  if (bean.getClass().equals(TestBean.class)) {

 

  }4. 用switch代替长if-else-if

 

  [java]

 

  String s = "";

 

  for (int i = 0; i < n; i++) {

 

  s += "#" + i;

 

  }

 

  String s = "";

 

  for (int i = 0; i < n; i++) {

 

  s += "#" + i;

 

  }[java]

 

  StringBuilder sbuf = new StringBuilder();

 

  for (int i = 0; i < n; i++) {

 

  sbuf.append("#").append(i);

 

  }

 

  String s = sbuf.toString();

 

  StringBuilder sbuf = new StringBuilder();

 

  for (int i = 0; i < n; i++) {

 

  sbuf.append("#").append(i);南京Java培训

 

  }

 

  String s = sbuf.toString();但如果是

 

  [java]

 

  String s = "(" + x + ", " + y + ")";

 

  String s = "(" + x + ", " + y + ")";会自动编译使用StringBuilder.append(""),这样拼字符串是可以的。

 

  5. 实体类的get、set方法,加上final 南京Java培训


最近开班 more>
  • Web前端开发
  • 软件测试
  • 软件测试预科班
  • AI大模型+全栈开发开班
  • 云原生精英班
  • 云网预科班
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第五期
  • Java全栈
  • CISP
  • HCIP-cloud
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCP 19C
  • RHCA
  • 6月9日
  • 5月21日
  • 5月14日
  • 6月9日
  • 5月7日
  • 5月26日
  • 5月19日
  • 5月12日
  • 6月3日
  • 6月9日
  • 随时开课
  • 7月12日
  • 5月19日
  • 5月19日
  • 5月7日
  • 5月10日
  • 5月24日
  • 5月24日
  • 随时开课
  • 随时开课
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入