Java的一些高级特性(一)——Java 7新特性

本文的主要来源是LYNDA.COM.JAVA.ADVANCED.TRAINING,前面我会沿着video的内容来,后续我可能会加入一些别的内容。


这一小节我们看看Java 7的一些新特性(之前由于Android开发和J2EE开发大部分都是使用Java 5/6,直到今天才有机会学习啊)。


在switch...case语句中使用String,貌似这个是从微软学来的:

package com.freesoft.java7newfeature;

public class TestStringSwitch {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		final String KEY = "my key";
		
		String mykey = "my key";
		switch (mykey) {
		case KEY:
			System.out.println("mykey equals KEY.");
			break;
		default:
			System.out.println("mykey NOT equals KEY.");
			break;
		}
	}

}

泛型中的类型T现在可以在声明的时候用一下就OK啦,在构造中可以不使用,哈:

package com.freesoft.java7newfeature;

import java.util.ArrayList;

import com.freesoft.testentity.Olive;

public class TestSimpleUseOfGenerics {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Olive o1 = new Olive("zhangsan", 0x0000001);
		Olive o2 = new Olive("lisi", 0x0000002);
		Olive o3 = new Olive("wangwu", 0x0000003);
		
		Olive[] oa = new Olive[]{o1, o2, o3};
		System.out.println(oa);
		
		System.out.println("==================================");
		
		ArrayList<Olive> ol = new ArrayList<>();
		ol.add(o1);
		ol.add(o2);
		ol.add(o3);
		System.out.println(ol);
	}

}

数字的输入形式可以是使用下划线分隔的形式,主要是便于阅读:

package com.freesoft.java7newfeature;

import java.text.NumberFormat;

public class TestNumberLiterals {
	public static void main(String[] args) {
		int i = 1_000_000_000;
		int j = 1_0000_0000;
		NumberFormat nf = NumberFormat.getInstance();
		System.out.println(nf.format(i));
		System.out.println(nf.format(j));
	}

}

还有对于资源的关闭操作,现在也可以交给系统了:

package com.freesoft.java7newfeature;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;

public class TestTryWithResource {
	public static void main(String[] args) {
		// **********************************************************************************************************************
		// FileInputStream fs = null;
		// try {
		// fs = new FileInputStream(new File("test.dat"));
		//
		// fs dosomething().....
		// } catch (FileNotFoundException e) {
		// e.printStackTrace();
		// } finally{
		// try {
		// fs.close();
		// } catch (IOException e) {
		// e.printStackTrace();
		// }
		// }
		try (FileInputStream fs = new FileInputStream(new File("test.dat"))) {
			// TODO do something
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值