请选择 进入手机版 | 继续访问电脑版

我爱科技论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 241|回复: 0

[技术分享] 【java进阶】java5的新特性总结

[复制链接]

696

主题

743

帖子

7686

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7686

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2017-12-19 20:03:56 | 显示全部楼层 |阅读模式
经过笔者的总结,java5主要增加了以下几个特性:
1.java5的静态导入与编译器语法设置
  1. package com.java.thread;
  2. //import static java.lang.Math.max;
  3. //import static java.lang.Math.random;

  4. //导入Math类下面的所有方法
  5. import static java.lang.Math.*;
  6. public class StaticImport {
  7.         public static void main(String []args)
  8.         {
  9.                 //直接引入Math函数下面的方法
  10.                 //System.out.println(Math.max(12, 23));
  11.                 //System.out.println(Math.random());
  12.                
  13.                 //通过静态导入的方法可以省略类名称
  14.                 System.out.println(max(12, 23));
  15.                 System.out.println(random());
  16.         }
  17. }
复制代码



2.java5可变参数与重载
  1. //可变参数与overLoad的区分
  2. public class VariableParameter {
  3.         public static void main(String []args)
  4.         {
  5.                 add(1, 2, 3, 4);
  6.         }
  7.         
  8.         //可变参数
  9.         public static int add(int x, int ...args)
  10.         {
  11.                 int sum = x;
  12.                 for (int i=0; i<args.length; i++)
  13.                 {
  14.                         sum += args;
  15.                 }
  16.                 System.out.println(sum);
  17.                 return sum;
  18.         }
  19. }
复制代码

3.java5的增加for循环
  1. public static int add(int x, int ...args)
  2.         {
  3.                 int sum = x;
  4.                 /*for (int i=0; i<args.length; i++)
  5.                 {
  6.                         sum += args[i];
  7.                 }*/
  8.                 for (int arg : args)
  9.                 {
  10.                         sum += arg;
  11.                 }
  12.                 System.out.println(sum);
  13.                 return sum;
  14.         }
复制代码


4.基本数据类型的自动拆装箱及享元设计模式
  1. package com.java.thread;

  2. public class AutoBox {

  3.         public static void main(String[] args) {
  4.                 // TODO Auto-generated method stub
  5.                 // 自动装箱, 会把基本数据类型转换为Integer的数据类型
  6.                 Integer i = 5;
  7.                 // 自动拆箱, 只有基本数据类型才可以进行基本的数学运算, 此时会自动把Integer数据类型转为int数据类型
  8.                 // System.out.println(i + 12);

  9.                 String str1 = new String("123");
  10.                 String str2 = new String("123");
  11.                 // 会生成两个不同的对象
  12.                 System.out.println("Str1==str2:" + (str1 == str2));

  13.                 // 对于-128~127之间的数, 装箱以后会放在一个缓冲池中, 下次如果还需要使用, 会从池子中取出
  14.                 //【享元模式 ---flyweight】总结:当一个对象很小的时候, 把基本的数值缓存起来, 使用的时候把对象拿出来用就可以了
  15.                 //【享元设计模式】如果有很多很小的对象, 他们有很多相同类似的特征(内部状态), 那么我们就可以把它变成一个对象, 把不同的东西变成外部的属性特征(外部状态), 作为方法的参数传入即可
  16.                
  17.                 //小数值会装箱成为相同的对象, 使用的频率相对较高
  18.                 Integer i1 = 13;
  19.                 Integer i2 = 13;
  20.                 // 会指向同一块内存空间
  21.                 System.out.println("i1==i2:" + (i1 == i2));

  22.                 //大数字会装箱成为不同的对象, 使用的频率相对较低
  23.                 Integer i3 = 137;
  24.                 Integer i4 = 137;
  25.                 System.out.println("i3==i4"+(i3 == i4));

  26.                 //i5和i6也是同一块内存空间
  27.                 Integer i5 = Integer.valueOf(12);
  28.                 Integer i6 = Integer.valueOf(12);
  29.                 System.out.println("i5==i6"+(i5==i6));

  30.                 //i7和i8不是同一块内存空间
  31.                 Integer i7 = Integer.valueOf(312);
  32.                 Integer i8 = Integer.valueOf(312);
  33.                 System.out.println("i7==i8"+(i7==i8));
  34.         }

  35. }

  36. 输出结果:
  37. Str1==str2:false
  38. i1==i2:true
  39. i3==i4false
  40. i5==i6true
  41. i7==i8false
复制代码








上一篇:【java进阶】ArrayList和HashSet的比较及Hashcode代码分析
下一篇:【java进阶】线程创建的两种方式
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案; 如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信扫一扫

快速回复 返回顶部 返回列表