重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Java代码需要判空吗 java代码需要判空吗为什么

java程序中比较常见的四种判断是否为空的性能优化比较

来做个测试

公司主营业务:成都网站设计、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出沽源免费做网站回馈大家。

java用的最多的判空,殊不知,多数人一直在用一种最耗时,性能最差的方式

本测试用例特意比较常用的4种判空形式

/**

* 字符串判空性能大比较

*/

public class Test{

String s = "";

long   n = 10000000;

//s == null || s.equals("")

private void function1(){

long startTime = System.currentTimeMillis();

for (long i = 0; i  n; i++){

if (s == null || s.equals(""))

;

}

long endTime = System.currentTimeMillis();

System.out.println("[s == null || s.equals(\"\")] use time: " + (endTime - startTime) + "ms");

}

//s == null || s.length() = 0

private void function2(){

long startTime = System.currentTimeMillis();

for (long i = 0; i  n; i++){

if (s == null || s.length() = 0)

;

}

long endTime = System.currentTimeMillis();

System.out.println("[s == null || s.length() = 0] use time: " + (endTime - startTime) + "ms");

}

//s == null || s.isEmpty()

private void function3(){

long startTime = System.currentTimeMillis();

for (long i = 0; i  n; i++){

if (s == null || s.isEmpty())//since jdk1.6

;

}

long endTime = System.currentTimeMillis();

System.out.println("[s == null || s.isEmpty()] use time: " + (endTime - startTime) + "ms");

}

//s == null || s == ""

private void function4(){

long startTime = System.currentTimeMillis();

for (long i = 0; i  n; i++){

if (s == null || s == "")

;

}

long endTime = System.currentTimeMillis();

System.out.println("[s == null || s == \"\"] use time: " + (endTime - startTime) + "ms");

}

public static void main(String[] args){

Test test = new Test();

test.function1();

test.function2();

test.function3();

test.function4();

}

}

直接右键运行,结果一目了然

[s == null || s.equals("")] use time: 73ms

[s == null || s.length() = 0] use time: 29ms

[s == null || s.isEmpty()] use time: 33ms

[s == null || s == ""] use time: 29ms

java怎么判断int是否为空?

intpoint;Stringval=point+"";而是一个中间变量,intpoint=GiftInfo。getPoints();在数据库表中有属性字段名称points,类型为int。

java中的类型有基本类型:intlongdouble等,判断的为0(int)或者0。0(double\float)对象类型:包括基本类型的包装类,Integer(int)DoubleFloat不给赋值的时候就为null了还有一个特殊的String,本身是对象类型也是基本类型。

面向对象

Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。

每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。

以上内容参考:百度百科-Java

java 字符串为null 如何判断

定义 String str;

判断字符串是否空涉及两个层次:

1、是首先判断字符串变量的引用是否为空,即空对象的概念,用null来判断,可以用if(str==null) 判断 str是否为空;(注意不能用equals(null),在参数为null情况下,返回值永远是false);

2、是在不为空对象的情况下,在判断字符串对象是否为空串,即长度为0.用length()==0。 关键是搞清楚字符串对象为空和空字符串有区别。

拓展内容

Java空字符串与null的区别:

1、类型

null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;

""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;

2、内存分配

String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;

String str = ""; 表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;

在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap)。

如下:

String str = new String("abc") ;

参考资料:java官方网站

Java中字符串的常用方法


本文标题:Java代码需要判空吗 java代码需要判空吗为什么
标题链接:http://cqcxhl.cn/article/dddcsjc.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP