zoukankan      html  css  js  c++  java
  • JDK 5.0特性

    1,静态导入

    import static java.lang.Math.*;
    //静态导入的是静态方法和静态类,或者是静态成员变量
    class StaticImport 
    {
    	public static void main(String[] args) 
    	{
    		 int a=Math.max(10,20);
    		 int b=Math.min(10,20);
    		 System.out.println(a);
    		 System.out.println(b);
    	}
    }
    

     2,装箱和拆箱

    //装箱和拆箱
    //值类型转换为引用类型---装箱
    //引用类型转换为值类型---拆箱
    class BoxAndUnBox 
    {
    	public static void main(String[] args) 
    	{
    		//5.0之后才可以这样写
    		// Integer i=new Integer(0);
    		// int j=i;   //将值类型转换为封装类型,即装箱
    		 //4.0版本 需要进行封箱,和拆箱
              Integer i=new Integer(10);
    		  int j=i.intValue();
               System.out.println(j);
    
    		  Double dou=new Double(20.0);
    		  double d=dou.doubleValue();
    		  System.out.println(d);
    		  //反之
    		  int int1=1;
    		  Integer int2=new Integer(int1);
               System.out.println(int2);
    
    
             System.out.println(i+"...."+j);
    
    
    		 int x= 0;
    		 Integer y=x;
    		 System.out.println(x+"..."+y);
             
               /*
    		   *0....0
               *0...0
    		   
    
    		   //在基本数据类型中,会出现int-- short--long--float--double之间的转换
    		    //例如:
    			*/
    			int z=10;
    			print(10);  //此时调用 print(int i),若将 print(int i)注释掉,则会调用 print(short i)。。。。一次类推
    
                
    
    			
    	}
    
    	public static void print(int i)
    	{
    		 System.out.println(i);
    	}
    	public static void print(short i)
    	{
    		 System.out.println(i);
    	}
    	public static void print(long i)
    	{
    		 System.out.println(i);
    	}
    	public static void print(float i)
    	{
    		 System.out.println(i);
    	}
    	public static void print(double i)
    	{
    		 System.out.println(i);
    	}
    	
    }
    

    3,可变类型

    class Variable 
    {
    	public static void main(String[] args) 
    	{
    		Integer[] numsInteger={1,2,3,4,5,6,7};
    		print(numsInteger);
    		/*
    		1
    		2
    		3
    		4
    		5
    		6
    		7
    		This is print[]
    		*/
    
    		//int[] numsInt={1,2,3,4,5,6,7};
    		//print(numsInt);//这样写将报错
    		/*
    		    需要: Integer[]
    			找到: int[]
    			原因: 无法通过方法调用转换将实际参数int[]转换为Integer[]
    		*/
    
    
    		printVar(1,2,3,4,5,6);//调用可变类型参数方法
    
            printVar(numsInteger);
    
    
    		
    
    	}
    	public static void print(Integer[] num)  
    	{
    		for (int i=0;i<num.length ; i++)
    		{
             	System.out.println(num[i]);
    		}
    		System.out.println("This is print[]");
    	}
    	public static void printVar(Integer... num)  //这里使用可变类型,可变类型默认为数组,
    	{
    		for (int i=0;i<num.length ; i++)
    		{
             	System.out.println(num[i]);
    		}
    		System.out.println("This is printVar[]");
    	}

                       //public static void printVar(Integer[] num)
                       //此方法不能与可变参数 public static void printVar(Integer... num) 同时存在,因为可变参数最终被当做数组使用

                      //实际参数是组数,数组将被打散最终以printVar(1,2,3,4,5,6,7)进行传入

                      //可变参数只能放在方法参数列表的最后一位:一个方法只能有一个可变参数

                      // public static void printVar(Integer... num,int a)错误

           // public static void printVar(Integer... num,String... str) 错误

    }
    

    4,泛型

    package cn.itcast.base;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.Map.Entry;
    
    public class GenericTest {
    	
    	public static void main(String[] args) {
    		
    		/*
    		 * 格式:类型<类型[,类型...]>
    		 * * 泛型使用必须前后相同
    		 * * 泛型是在编译前进行类型约束,在字节码文件中不存在泛型信息
    		 */
    		
    		List<String> list = new ArrayList<String>();
    		list.add("abc");
    //		list.add(123);
    		
    		
    		Map map = new HashMap();
    		map.put(123, 123);
    		
    		//没有泛型的map 的遍历
    		Set s = map.entrySet();
    		Iterator ite = s.iterator();
    		while(ite.hasNext()){
    			Map.Entry entry = (Entry) ite.next();
    			Integer key = (Integer) entry.getKey();
    			Integer value = (Integer) entry.getValue();
    			System.out.println("*** " + key + ":" + value);
    		}
    		
    		
    		
    		Map<String,Integer> map2 = new HashMap<String, Integer>();
    		map2.put("123", 456);
    		map2.put("abc", 789);
    		
    		
    		//遍历map  [key,value][key,value]
    //		map2.keySet()  获得所有的键值 key
    		Set<Map.Entry<String,Integer>> set = map2.entrySet();  //获得每一组 Entry(key,value)
    		//迭代器
    		Iterator<Entry<String,Integer>> it = set.iterator();
    		while(it.hasNext()){
    			Map.Entry<String, Integer> entry = it.next();
    			String key = entry.getKey();
    			Integer value = entry.getValue();
    			System.out.println(key + ":" + value);
    		}
    		
    		
    	}
    	
    /*	
     * 不能同时存在
     * public void demo(List<String> list){
    		
    	}
    	
    
    	public void demo(List<Integer> list){
    		
    	}*/
    
    }
    

    5,foreach

    package cn.itcast.base;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ForEachTest {
    	
    	public static void main(String[] args) {
    		
    		List<String> list = new ArrayList<String>();
    		list.add("abc");
    		//list.add(123);
    		
    		//遍历list
    		for(int i = 0 ; i < list.size(); i ++){
    			String obj = list.get(i);
    			System.out.println(obj);
    		}
    		
    		for(String s:list){
    			System.out.println("##" + s);
    		}
    		
    		
    		
    		//没有泛型
    		List l = new ArrayList();
    		l.add("abc");
    		l.add(123);
    		
    		for(Object o :l){
    			System.out.println("---" + o);
    		}
    		
    		
    		String[] str = {"abc","edc"};
    		for(String s:str){
    			System.out.println("string " + s);
    		}
    		
    		/* foreach
    		 * for(类型   变量名 : 集合(Iterable)|数组){}
    		 * 
    		 *  * 需要实现Iterable接口的所有的集合。只要能够迭代的所有的集合
    		 */
    		
    		
    	}
    
    }
    

      

    package cn.itcast.base;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;
    
    public class ForEachTestDemo {
    	
    	public static void main(String[] args) {
    		List<String> list = new ArrayList<String>();
    		list.add("abc");
    		list.add("abcd");
    		list.add("asf");
    		list.add("ceg");
    		list.add("daf");
    		list.add("dfs");
    		
    		//迭代器
    		Iterator<String> it = list.iterator();
    		while(it.hasNext()){
    			String str = it.next();
    			if(str.contains("a")){
    				//list.remove(str);  //java.util.ConcurrentModificationException
    				it.remove();
    			}
    		}
    		
    		System.out.println(list);
    		
    		
    		
    	}
    	
    	public void demo3(){
    		//java.util.Arrays.ArrayList  
    		List<String> list = Arrays.asList("abc","bcd", "asf", "ceg", "daf", "dfs");  
    		
    		for(int i = 0 ; i < list.size() ; i ++){
    			String str = list.get(i);
    			if(str.contains("a")){
    				//java.lang.UnsupportedOperationException
    				list.remove(i);
    			}
    		}
    		
    		
    		System.out.println(list);
    	}
    	
    	public void demo2(){
    		//不能删除
    		List<String> list = new ArrayList<String>();
    		list.add("abc");
    		list.add("abcd");
    		list.add("asf");
    		list.add("ceg");
    		list.add("daf");
    		list.add("dfs");
    		
    		//java.util.ConcurrentModificationException
    		for(String s:list){   //foreach不能删除
    			if(s.contains("a")){
    				list.remove(s);
    			}
    		}
    		
    		System.out.println(list);
    	}
    	
    	
    	public void demo(){
    		
    		List<String> list = new ArrayList<String>();
    		list.add("abc");
    		list.add("abcd");
    		list.add("asf");
    		list.add("ceg");
    		list.add("daf");
    		list.add("dfs");
    		list.add("abc");
    		
    		for(int i = 0 ; i < list.size(); i++){
    			String str = list.get(i);
    			if(str.contains("a")){  //确定是否包含字符串a
    				//移除
    				list.remove(i);
    //				list.remove(str);
    				i --;
    			}
    			//System.out.println(str);
    		}
    		
    		System.out.println(list);
    		
    	}
    
    }
    

      

  • 相关阅读:
    基础概述 01
    VMware Workstation Pro 无法在Windows 上运行 检查可在Windows上运行的此应用的更新版
    在博客园安家
    mysql的主从复制配置
    PHP 9 大缓存技术总结
    Mysql分库分表方案
    VMware 虚拟机的网络连接方式详解
    关于memecache的使用及清楚示意
    SVN:冲突解决 合并别人的修改
    Linux环境Nginx安装多版本PHP
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3023253.html
Copyright © 2011-2022 走看看