首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >corejava辅导(16--1)

corejava辅导(16--1)

作者头像
紫风
发布2025-10-14 16:06:11
发布2025-10-14 16:06:11
90
举报

Java5.0的新特性

自动装箱和自动拆箱

自动封箱和自动拆箱,它实现了简单类型和封装类型的相互转化时,实现了自动转化。

自动封箱解箱只在必要的时候才进行。还有其它选择就用其它的

byte b     -128~127

Byte b     多一个null

简单类型和封装类型之间的差别

封装类可以等于null ,避免数字得0时的二义性。

Integer i=null;

int ii=i; (会抛出NullException 异常)

相当于 int ii=i.intValue();

Integer i=1;相当于Integer i=new Integer(1);

在基本数据类型和封装类之间的自动转换

5.0之前

Integer i=new Integer(4);

int  ii= i.intValue();

5.0之后

Integer i=4;

Long l=4.3;

静态引入

静态成员的使用,使用import static 引入静态成员,也就是可以用静态引入是导入包中的某个类的静态成员,在使用时不用再写类名。

很简单的东西,看一个例子:

没有写静态引入

public class Test{

public static void main(String[] args){

Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));

}

}

写了静态引入

import static java.lang.Math.*;

public class Test{

public static void main(String[] args){

System.out.println(sqrt(pow(x, 2) + pow(y, 2)));

}

}

其中import static java.lang.Math.*;就是静态导入的语法,它的意思是导入Math类中的所有static方法和属性。这样我们在使用这些方法和属性时就不必写类名。

需要注意的是默认包无法用静态导入,另外如果导入的类中有重复的方法和属性则需要写出类名,否则编译时无法通过。

增强的for循环

for-each循环实现了对数组和集合的便利的统一,解决遍历数组和遍历集合的不统一。

import java.util.*;

import java.util.Collection;

public class Foreach

{

private Collection<String> c = null;

    private String[] belle = new String[4];

    public Foreach()

    {

        belle[0] = "西施";

             belle[1] = "王昭君";

             belle[2] = "貂禅";

             belle[3] = "杨贵妃";

             c = Arrays.asList(belle);

    }

    public void testCollection(){

        for (String b : c){

              System.out.println("曾经的风化绝代:" + b);

        }

    }

    public void testArray(){

        for (String b : belle){

              System.out.println("曾经的青史留名:" + b);

        }

    }

    public static void main(String[] args){

        Foreach each = new Foreach();

        each.testCollection();

        each.testArray();

    }

}

对于集合类型和数组类型的,我们都可以通过foreach语法来访问它。上面的例子中,以前我们要依次访问数组,挺麻烦:

for (int i = 0; i < belle.length; i++){

        String b = belle[i];

        System.out.println("曾经的风化绝代:" + b);

}

现在只需下面简单的语句即可:

for (String b : belle){

       System.out.println("曾经的青史留名:" + b);

 }

对集合的访问效果更明显。以前我们访问集合的代码:

for (Iterator it = c.iterator(); it.hasNext();){

        String name = (String) it.next();

        System.out.println("曾经的风化绝代:" + name);

}

现在我们只需下面的语句:

for (String b : c){

        System.out.println("曾经的风化绝代:" + b);

}

Foreach也不是万能的,它也有以下的缺点:

在以前的代码中,我们可以通过Iterator执行remove操作。

for (Iterator it = c.iterator(); it.hasNext();){

       it.remove();

}

但是,在现在的for-each版中,我们无法删除集合包含的对象。你也不能替换对象。

同时,你也不能并行的for-each多个集合。所以,在我们编写代码时,还得看情况而使用它。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2008-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档