`
zhaolei415
  • 浏览: 168658 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

静态导入、可变参数、加强的for、基本数据的自动装箱与拆箱

阅读更多
JDK现在都6了,从5开始JDK有了好些新的特性,平时在写程序的时候也用到但是没有认真的总结与分析一下,过年刚来没啥子事情就梳理一下,和大伙一起分享:
(其实在langspec-3.0中都有这些东西,我只是把自己平时用到的写出来)
1,静态导入
顾名思义就是把一些类的静态方法的使用方式进行一些改变,这个没啥意思,看例子:
先前我们使用类的静态方法是这个样子滴
//求1和2谁大
Math.max(1,2);

使用静态导入后
import static java.lang.Math.*;
max(1,2);

提防:需要注意的是默认包无法用静态导入,另外如果导入的类中有重复的方法和属性则需要写出类名,否则编译时无法通过。
2,可变参数
这个有点用可以提高代码质量
public getDetail(int pageNo,int pageSize,String ... args){
//function detail
}

提防:编译器会为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
3,加强的for循环
基本语法:
EnhancedForStatement:
        for ( VariableModifiersopt Type Identifier: Expression) Statement

例子1(数组):
public getDetail(int pageNo,int pageSize,String ... args){
//function detail
for(String arg : args){
//do something
}
}

例子2(集合):
Map<String, Integer> histogram = ...;
    double total = 0;
    for (int i : histogram.values())
        total += i;
    for (Map.Entry<String, Integer> e : histogram.entrySet())
        System.out.println(e.getKey() + "       " + e.getValue() / total);

4,基本数据的封箱与拆箱
    自动装箱:
Integer num = 13;

    自动拆箱:
Int num = new Integer(13);    

基本Boolean/Byte/Integer(数值范围:-128至127)数据类型的对象缓存:
    Integer num1 = 13;
    Integer num2 = 13;
    System.out.println(num1 == num2);//结果为true
    Integer num3 = 129;
    Integer num4 = 129;
    System.out.println(num3 == num4);//结果为false


待续.......


2
2
分享到:
评论
1 楼 sealedbook 2011-02-11  

相关推荐

    详谈Java枚举、静态导入、自动拆装箱、增强for循环、可变参数

    "Java枚举、静态导入、自动拆装箱、增强for循环、可变参数详解" 一、枚举简介 枚举是一种特殊的类型,可以限定一个变量的取值范围,使其只能是固定的几个值。枚举的优点是可以使代码更加简洁、可读性强、提高安全...

    张孝祥Java基础加强ppt.ppt

    eclipse的使用技巧 静态导入 可变参数与for循环增强 基本数据类型的自动拆箱与装箱 枚举 反射 JavaBean内省 beanutils工具包 注解 泛型 类加载器 代理 线程并发库

    Java 1.5 Tiger, A Developer's Notebook (2004)

    Java 1.5 Tiger的发布标志着Java编程语言的重大进步,它引入了许多关键特性,如泛型、枚举、自动装箱和拆箱、可变参数、静态导入以及增强的for循环等。 1. 泛型:Java 1.5引入了泛型,这是一种在编译时检查类型安全...

    jdk5.0新特性

    总结来说,JDK 5.0的新特性极大地提高了Java编程的效率和灵活性,通过自动装箱/拆箱、静态导入、增强的for循环以及可变长参数等功能,让开发者能够写出更加简洁、高效和易于维护的代码。这些改进不仅是对语言本身的...

    Java基础知识加强

    本篇文章将重点讨论Java的基础知识加强,包括Eclipse的使用、JDK 5.0的新特性,如静态导入、自动装箱/拆箱、增强for循环、可变参数以及枚举类。 首先,Eclipse是一个强大的Java集成开发环境(IDE),在Java开发中起...

    Java基础加强(上) 经典ppt

    讲一些经典的:静态导入 自动装箱/拆箱 增强for循环 可变参数 内省(Introspector) — JavaBean ......

    java基础加强ppt(张孝祥版_黎活明版)

    java基础加强ppt(张孝祥版_黎活明版)eclipse的使用技巧、静态导入、可变参数与for循环增强、基本数据类型的自动拆箱与装箱、枚举、反射、JavaBean内省、beanutils工具包、注解、泛型、类加载器、代理、线程并发库

    java基础常识与概念

    基础概念与常识 Java 语言有哪些特点? JVM vs JDK vs JRE JVM JDK 和 JRE 什么是字节码?采用字节码的好处是什么? 为什么说 Java 语言“编译与解释并存”?...Oracle JDK vs OpenJDK ...自动装箱与拆箱了解吗?原理是什么?

    Java基础加强,成就java高手

    课程涵盖了多个关键知识点,包括Eclipse的使用技巧、静态导入、可变参数、增强for循环、基本数据类型的自动拆箱与装箱、枚举、反射、JavaBean内省、BeanUtils工具包、注解、泛型、类加载器、代理以及线程并发库等。...

    javaweb课程笔记.doc

    6. **可变参数**:Java5引入了可变参数,允许函数接收数量可变的参数。通过在参数列表中声明一个类型后面跟着"...",函数就能接受零个或多个该类型的参数。 JavaWeb开发还包括其他关键概念,如Servlet、JSP(Java...

    Java基础增强

    其中包括泛型、自动装箱/拆箱、可变参数、增强型for循环、枚举类型、注解、静态导入等。这些改进极大地增强了Java语言的表达能力和开发效率。 2. 新增特性举例: - 泛型(Generics):允许在编译时进行类型检查,...

    传智播客java基础加强(佟刚)

    - **自动装箱/拆箱**:自动装箱允许基本数据类型与它们对应的包装类之间无缝转换,而自动拆箱则使得包装类对象可以直接赋值给基本类型变量,减少了程序员手动转换的步骤。 - **for-each循环**:也称为增强for循环...

    良葛格Java JDK 5.0学习笔记

    2. **自动装箱与拆箱**:JDK 5.0引入了自动装箱和拆箱机制,使得基本数据类型与对应的包装类之间可以无缝转换。例如,`Integer i = 5;`会自动将int值5装箱成Integer对象,而`int j = i;`则会自动拆箱。 3. **枚举...

    HibernateAPI html 英文版

    这个压缩包看起来是一个全面的Hibernate学习资料,涵盖了从基础概念到高级特性的多个方面,包括枚举的使用、自动装箱和拆箱的影响、静态导入的便利以及可变参数在构建查询时的灵活性。对于想要深入了解Hibernate API...

    JDK4.5 windows32位

    这个版本引入了许多重要更新,包括增强类型推断(泛型)、枚举类型、自动装箱与拆箱、可变参数、静态导入等。这些特性极大地提升了Java语言的生产力和代码的清晰度。 **主要特性** 1. **泛型**:泛型允许在类、...

    jdk1.5新特性[归纳].pdf

    自动装箱是指将基本数据类型转换为其对应的包装类对象,反之为自动拆箱。在JDK 1.5中,Java引入了这个特性,使得基础类型与包装类型之间的转换更加方便。例如,`Integer iObj = 3;` 是自动装箱,`System.out....

    jdk 1.5 window版本

    JDK 1.5引入了自动装箱和拆箱机制,使得基本数据类型和其对应的包装类之间可以无缝转换。这意味着开发者无需手动进行装箱和拆箱操作,简化了代码并减少了潜在的NullPointerException。 ### 3. 静态导入 静态导入...

    良葛格Java JDK 5.0学习笔记ch05

    三、自动装箱与拆箱 自动装箱和拆箱是Java 5.0为了简化编程而引入的特性。它使得基本类型(如int)与对应的包装类(如Integer)之间可以自动转换。这意味着开发者不再需要手动调用如Integer.valueOf()或intValue()...

Global site tag (gtag.js) - Google Analytics