黑马程序员_Java基础加强之JDK1.5的新特性
来源:互联网 发布:linux 网卡物理地址 编辑:程序博客网 时间:2024/05/22 11:32
一、自动装箱拆箱
装箱:例如:Integer>
拆箱:例如:i+23; 23会自动拆成基本数据类型的23,来进行运算
二、可变参数
实际上就是里面定义了一个数组
注意:定义参数时,要把可变参数定义在末尾。因为是从前向后匹配
示例代码:
public class Change { /** * @param args */ public static void main(String[] args) { // TODOAuto-generated method stub change(2,3,5,7,2); change(2,34,5); change(3); } public static void change(int...cha){//可变参数 for(int i=0;i<cha.length;i++){ System.out.print(cha[i]+" "); } System.out.println(); }}运行结果:
2 3 5 7 2
2 34 5
3
三、枚举
实际上就是,不能定义其他的对象只能定义规定好了的对象。枚举类中定义的每一个对象都是唯一的。
摸弄枚举类的原理:
如下例子:
public abstract class WeekDay { private WeekDay(){}; public static WeekDay MON=new WeekDay(){ @Override public WeekDay nextDay() { // TODO Auto-generated method stub return SUN; }}; public static WeekDay SUN=new WeekDay(){ @Override public WeekDay nextDay() { // TODO Auto-generated method stub return MON; }}; public abstract WeekDay nextDay(); public String toString() { return (this==MON)?"MON":"SUN"; }}测试类:public class Test1 { /** * @param args */ public static void main(String[] args) { // TODOAuto-generated method stub WeekDay weekday = WeekDay.MON; System.out.println(weekday.nextDay()); }}
下面是用枚举类模拟了一个交通灯:
代码如下:
public enumtrafficLamp { RED(30){ @Override public trafficLamp nextLamp() { // TODO Auto-generated method stub return GREEN; } }, GREEN(45){ @Override public trafficLamp nextLamp() { // TODO Auto-generated method stub return YELLOW; }}, YELLOW(10){ @Override public trafficLamp nextLamp() { // TODO Auto-generated method stub return RED; }}; public abstract trafficLamp nextLamp(); private int time; private trafficLamp(int time) { this.time=time; } }
四、高级for循环
格式:for( 接受变量的类型 变量 : 待循环的变量 ){ }
注意:必须是Intertor的子类才可以使用高级for循环
在for循环体内中不能增删操作
示例代码:
import java.util.ArrayList;import java.util.List;public class ForDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub List<String> list=new ArrayList<String>(); list.add("aaaaa"); list.add("bbbbb"); list.add("ccccc"); for(String s:list){//高级for循环 System.out.println(s); } }}
运行结果:
aaaaa
bbbbb
ccccc
五、静态导入
importstatic java.lang.Math.*;//导入Math类中的所有方法
当你写类中的方法时,就不用写类名了。
示例代码:
import static com.demo.Change.*;//静态导入public class StaticImport { /** * @param args */ public static void main(String[] args) { // TODOAuto-generated method stub change(3,4,6,2,7); }}运行结果:3 4 6 2 7
六、泛型
其实就是限制一些数据的类型
泛型可以定义在类上,也可以定义在成员上。
当泛型定义在类上时,整个类的的类型都是一样的。
上限:<?>
ArrayList >
泛型中不存在继承关系:
ArrayList<Object>al=new ArrayList<String>();//错误
Vector<Integer> VectorList[]=new Vector<Integer>[10];//错误
Vector >
Vector<Object>>
泛型当编译完成后会去掉泛型的类型。
<?>通配符,当你不知道用什么类型时可以用?,也表示占位符。
通过反射技术来获取泛型的类型:
代码如下:
import java.lang.reflect.Method;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.List;public class Test2 { /** * @param args * @throws ClassNotFoundException */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Classclazz = Class.forName("lianxi.Test2"); Methodmethod = clazz.getMethod("get", List.class); Type[] type =method.getGenericParameterTypes(); for(Type t:type) { System.out.println(t); } } public static List<String> get(List<String> l) { return null; } }总结:Jdk1.5h是jdk的一次历史性的变革,它里面新添加了许多的类和方法。学习和应用新的方法可以让代码更简单,也可以是代码更加优化;新事物的出现一定是它更好的解决老的事件。在学习新的方法时,我们也不能忘记或不学以前的方法,老的是基础,新的特性只是高于基础,但他也源于基础;只有学好基础才能更好的理解新特性,我们才有可能去创造新特性。
- 黑马程序员_Java基础加强之JDK1.5的新特性
- 黑马程序员_java基础加强(二) JDK1.5新特性
- 黑马程序员_java基础加强学习笔记之(JDK1.5新特性)
- 黑马程序员_Java基础加强_1.5的新特性
- 黑马程序员_java基础加强(一) JDK1.5新特性
- 黑马程序员_学习日记十四_基础加强之JDK1.5的新特性
- 黑马程序员_基础加强(1) JDK1.5新特性
- 黑马程序员_基础加强(jdk1.5新特性)
- 黑马程序员-java基础加强-JDK1.5新特性
- 黑马程序员-java基础加强-JDK1.5新特性注解
- 黑马程序员-java基础加强-JDK1.5新特性-泛型
- 黑马程序员--基础加强(JDK1.5新特性)
- 黑马程序员---java基础加强---高新技术JDK1.5新特性
- 黑马程序员-->Java基础加强-->JDK1.5新特性
- 黑马程序员---基础加强:JDK1.5新特性
- 黑马程序员---Java基础加强---JDK1.5新特性
- 黑马程序员---Java基础加强---JDK1.5新特性:泛型
- 黑马程序员---Java基础加强---JDK1.5新特性:注解
- 帮警察数一数
- Java读取TXT文件的方法
- IOS学习笔记---UIKit之UILable
- js相关问题的解决方案
- 正确使用Qt多线程
- 黑马程序员_Java基础加强之JDK1.5的新特性
- 哥来了
- Linux C IO编程学习笔记(第一天:标准IO)
- 黑马程序员_7k面试题之交通灯管理系统
- C++的一些小知识点
- php利用反射真正实现多继承(非接口模拟)
- 取本周日期 C# .net
- 聊天室服务分析设计
- Linux的 标准GPIO及中断API函数