四常用类

包装类的基本用法

      为什么需要包装类(Wrapper Class):java并不是纯面向对象的语言。Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如:集合的操作中。这时,我们就需要将基本类型数据转化成对象!
       
 1 package com.zqf.wrapper;
 2 public class TestInteger {
 3  public static void main(String[] args) {
 4   Integer i1 = new Integer(123);
 5   Integer i2 = new Integer("123");
 6   System.out.println("i1==i2:"+(i1==i2));    //false
 7   System.out.println("i1.equals(i2):"+i1.equals(i2));   //内容     true
 8   System.out.println(i2.toString());    //说明Integer类重写了toString方法
 9   Integer i3 = new Integer(128);
10   System.out.println(i1.compareTo(i3));  //-1
11   System.out.println(i1.compareTo(i2));  //0
12   System.out.println(i3.compareTo(i2));  //1
13   
14   //(1)Integer- ->int       包装类对象,intValue()
15   int i= i1.intValue();
16   System.out.println(Integer.max(10, 20));
17   //(2)int - ->Integer 
18   Integer i4 = Integer.valueOf(123);
19         //(3)String  - - >int      包装类类名.parseInt(String s)
20   int ii=Integer.parseInt("234");
21   //(4)int -->String
22   String str= ii+"";
23   String s = String.valueOf(ii);
24   //(5)String - - > Integer
25   Integer i5 = new Integer("345");
26   //(6)Integer -- >String 
27   String ss = i5.toString();
28   System.out.println(i5.toString());
29  }
30 }
 

 

   自动装箱和拆箱

      自动装箱  auto-boxing
 基本类型就自动地封装到与它相同的类型的包装类中
1  Interger i = 100;

编译器调用了valueOf()方法

 1  Integer i= Integer.valueOf(100);
 2 package com.zqf.wrapper;
 3 public class TestAutoBoxing {
 4  public static void main(String[] args) {
 5   Integer a= 100;
 6   Integer b= 100;
 7   System.out.println(a==b); //数值相等
 8   Integer aa= 1000;
 9   Integer bb = 1000;
10   System.out.println("aa==bb"+(aa==bb)); //false
11  }
12 }

 

   自动拆箱 UNboxing

      包装类对象自动转换成基本类型数据
      
int a = new Integer(100);

   编译器为我们添加了:

int a = new Integer(100).intValue();
 1 package com.zqf.wrapper;
 2 public class TestUniBoxing {
 3  public static void main(String[] args) {
 4   int a = new Integer(100);
 5   //以上的代码相等于Integer(100).intValue();
 6   
 7   Integer b= null;
 8   int c=b; //自动拆箱
 9   int cc = b.intValue();
10   
11   System.out.println(c);
12  }
13 }

 

String类底层分析_JDK源码分析

    String的底层数据结构
 String的底层数据结构是char类型的数组
 String的相应方法的实现实际上就是对数组的一个操作 
 

Math类

Math类的常用方法:
 1 package com.zqf.math;
 2 public class TestMath {
 3  public static void main(String[] args) {
 4   System.out.println("绝对值:"+Math.abs(23)+"\t"+"绝对值:"+Math.abs(-23));
 5   System.out.println("向上取整再转double:"+Math.ceil(23.00001)+"\t"+Math.ceil(-9.999999));
 6   System.out.println("向下取整再转double:"+Math.floor(23.9999)+"\t"+Math.floor(-23.000001));
 7   System.out.println("取最值:"+Math.max(10, 20)+"\t"+Math.min(3, 40));
 8   System.out.println("5的二次方:"+Math.pow(5, 2));
 9   System.out.println("随机数[0,1):"+Math.random());
10   int ran=(int)(Math.random()*9000)+1000;
11   System.out.println("1000-9000之间的随机数:"+ran);
12   System.out.println("四舍五入:"+Math.round(34.567));
13  }
14 }

File类

  文件和目录路径名的抽象表示形式,一个File对象可以代表一个文件或目录

  可以实现获取文件和目录属性等功能

  可以实现对文件和目录的创建,删除等功能

  File不能访问文件内容

   File类操作文件

 1 package com.zqf.file;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 
 6 public class TestFile {
 7     //使用File操作文件
 8     public static void main(String[] args) throws IOException {
 9         //创建File类的对象
10         File f1 = new File("C:\\a.txt");    //绝对路径
11         File f2 = new File("C:/a.txt");        
12         File f3 = new File("a.txt");        //相对路径
13         File f5 = new File("C:\\test");        //目录
14         File f4 = new File(f5,"a.txt");
15         File f6 = new File("C:"+File.separator+"a.txt");
16         /**File操作文件的相应方法*/
17         //System.out.println(f1.createNewFile());
18         System.out.println(f1.delete());       //直接从磁盘上删除
19         System.out.println(f1.exists());    //判断是否存在,不存在false,存在true
20     }
21 
22 }

 

   File类操作目录

 1 package com.zqf.file;
 2 
 3 import java.io.File;
 4 
 5 public class TestDirectory {
 6     public static void main(String[] args) {
 7         //创建File类的对象
 8         File f = new File("C:"+File.separator+"test");
 9         System.out.println("目录是否存在"+f.exists());
10         System.out.println("是目录还是文件:"+f.isDirectory());
11         System.out.println("是目录还是文件:"+f.isFile());
12         
13         File f2 = new File("C:\\aa\\bb\\cc");  //层目录
14         f2.mkdirs();  //用于创建目录,多层目录
15         f.delete();
16         File parent=f2.getParentFile();        //获取cc目录的父级目录
17         System.out.println(parent);
18         parent.delete();        //delete删除目录时,只允许删除空目录
19         f2.delete();  //删除cc
20         parent.delete();    //删除bb
21         
22         File f3 = new File("C:\\");
23         String [] strFile= f3.list();
24         System.out.println(strFile.length);  //数组中元素的个数
25         for(String s:strFile){
26             System.out.println(s);
27         }
28     }
29 }

递归算法遍历目录

  编写一个程序,以树状结构展现特定的文件夹及其子文件(夹)(使用递归来做)

 1 package com.zqf.file;
 2 
 3 import java.io.File;
 4 
 5 public class TestFile2 {
 6     public static void main(String[] args) {
 7         File f= new File("C:\\a.txt"+ "");
 8         printFile(f,0);
 9     }
10     public static void printFile(File file,int level){
11         //打印树状结构的层次关系
12         for(int i=0;i<level;i++){
13             System.out.print("-");
14         }
15         //输出目录或文件的名称
16         System.out.println(file.getName());
17         if(file.isDirectory()){        //判断File对象是否是目录
18             File [] listFiles=file.listFiles();
19             for (File temp:listFiles){
20                 //自己调用自己
21                 printFile(temp,level+1);
22             }
23         }
24     }
25 }

 

后面有Calender 日历类,File类,java.util.Date类,递归算法遍历目录,枚举详细介绍等,因不小心删除而丢失

posted @ 2019-02-28 18:17  齐方  阅读(162)  评论(0编辑  收藏  举报