📄 jdkfeature.java
字号:
package cn.edu.zju.jf;
import static java.lang.Math.*; // 静态导入
/*
* 1.选择4个jdk1.5的新特色做介绍,并且评价这些特色。例如varargs。
* a)泛型
为集合(collections)提供编译时类型安全,无需每刻从Collections取得一个
对象就进行强制转换(cast)。因为对不清楚的对象进行强制类型转换是不安全
的,并且更重要的是,它将在运行时失败。
* b)自动置入/自动取出
无需在基本类型(primitive types)(例如double)和包装类型(wrapper
types)(例如Double)之间人工地进行转换。
* c)静态导入
当时使用静态导入,我们无需为常量名前缀类名就能使用这些常量。静态导入使
代码更易读。
* d)格式化输出
以前的jdk没有printf,现在有了
*
* 2.写一段代码,要求代码涉及到你所评价的4个特色。
*/
public class jdkfeature
{
public static void main(String[] args)
{
String[] words = { "Mary", "had", "a", "little", "lamb" };
Pair<String> mm = ArrayAlg.minmax(words);
System.out.println("min = " + mm.getFirst());
System.out.println("max = " + mm.getSecond());
Employee i = new Employee(10);
// 格式化输出方式
System.out.printf("%d %.2f", i.afterTenYears(), i.doubeWage(100.0));
}
}
class Employee
{
Integer age;
Double res;
/**
* the constructor function
* @param m
*/
public Employee(int m) {
age = m;
}
/**
* compute the age
* @return age of employee
*/
public int afterTenYears() {
return age + 10; // 自动置入/自动取出,先把age转化为int,然后在结果转化为Integer
}
public Double doubeWage(Double r) {
return res = sqrt(r); // 静态导入后,sqrt可以直接使用
}
}
class ArrayAlg
{
/**
Gets the minimum and maximum of an array of strings.
@param a an array of strings
@return a pair with the min and max value, or null if a is
null or empty
*/
public static Pair<String> minmax(String[] a)
{
if (a == null || a.length == 0) return null;
String min = a[0];
String max = a[0];
for (int i = 1; i < a.length; i++)
{
if (min.compareTo(a[i]) > 0) min = a[i];
if (max.compareTo(a[i]) < 0) max = a[i];
}
return new Pair<String>(min, max);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -