黑马程序员——学习笔记11.JDK1.5新特性

来源:互联网 发布:mac 虚拟机发热严重 编辑:程序博客网 时间:2024/05/19 11:49
----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

静态导入

JDK 1.5 增加的静态导入语法用于导入类的某个静态方法或者所有静态方法。使用静态导入可以简化程序对类静态方法的调用。

语法:

import static 包名.类名.*

import static 包名.类名.静态方法

例如:

import static java.lang.System.out

import static java.lang.Math.*

import static java.lang.Math.min

代码演示:

import static java.lang.System.out;import static java.lang.Math.*;public class Demo {  public static void main(String[] args) {// 普通写法System.out.println("hello world");int max = Math.max(100, 200);System.out.println(max);// 静态导入out.println("hello world");int max2 = max(100, 200);System.out.println(max2);}

可变参数

从JDK 5开始, Java 允许为方法定义长度可变的参数。

格式:数据类型…变量名。

例如: Arrays中的方法asList(T…a)是jdk中的典型应用。

书写格式:

public int add(int...args){

//这里的int是数据类型,args就变量,其实就是int类型数组的引用变量。

    int sum = 0

    for(int i :args){

      sum = sum +i;

   }

     return sum;

}

注意:

1.在一个方法中,最多只能有一个可变参数。可变参数只能放在参数列表的最后面。

2.当使用可变参数时,可以传0或多个参数。当使用可变参数时,也可以传一个数组进去,就表示多个参数。

3 在方法内部使用时,就是在使用一个数组。当调用时没有传参数时(传了0个),这时在方法内部的参数数组是有值的(不为null),但长度为0.

增强for循环

书写格式:for ( type 变量名:集合变量名 )  { … } 

注意:增强for循环只是遍历这个数组或是实现Interator接口的集合,并不能改变其内部元素的值,只是给这个这个集合中的每个元素做了个标记而已

代码演示

  int[] arr1 = {1,2,3,4,5};int[] arr2 = {1,2,3,4,5};for (int i = 0; i < arr.length; i++) {arr1[i]= 6;}//只能起到迭代的作用,是操作这个数组的副本for (int i : arr2) {i = 6;}System.out.println(Arrays.toString(arr1));//结果为[6,6,6,6,6]System.out.println(Arrays.toString(arr2));//结果为[1,2,3,4,5]


 

自动拆箱装箱

自动装箱:是把一个基本数据类型直接赋给对应的包装类。

自动拆箱:是把一个包装类对象直接赋给对应的基本数据类型。

例:Integer num1 = 12;//装箱的过程

   System.out.println(num1 + 12);//拆箱的过程

   List list = new ArrayList();

   list.add(1);//装箱

   list.add(new Integer(1));//正常语法

   int i=list.get(0);//拆箱

基本数据类型包装类

Byte

byte

Short

short

Integer

int

Long

long

Boolean

boolean

Float

float

Double

double

Character

char

对象变基本数据类型:拆箱

基本数据类型包装为对象:装箱

 

注意:Integer类的设计涉及一个设计模式:享元模式(flyweight

享元模式:有很多小的对象,它们有很多属性相同,把它们变成一个对象。那些不同的属性变成方法的参数,称作外部状态。相同的属性称作为内部状态

例如: Integer num1 = 12;

       Integer num2 = 12;

       System.out.println(num1 == num2);//true

       Integer num3 = 129;

       Integer num4 = 129;

       System.out.println(num3 == num4);//false

       Integer num5 = Integer.valueOf(12);

       Integer num6 = Integer.valueOf(12); 

       System.out.println(num5 == num6);//true

如果Integer对象内容值在-128 ~127 范围内,这样的Integer对象都指向同一个引用变量。

 

 

 

 

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net

 

0 0
原创粉丝点击