但行好事,莫问前程

java基础总结1

数据类型:

1.    数据类型={整形{1字节byte、2字节short、4字节int、8字节long}、字符类型{2字节char}、浮点型{4字节float、8字节double}、布尔类型boolean};

分别对应{Byte/Short/Integer/Long/Character/Float/Double/Boolean}

String str="123";

    int inte=Integer.parseInt(str);//一种装换方式

    int inte2=new Integer(str);//two way

 

数值的表示可以用二八十十六进制的来表示,他们之间可以使用下划线来连接

int int1=0b1010;//整数的写法--binary,int1=0b10_10;

       int int2=012;  //整数的写法--octonary

       int int3=0xa;  //整数的写法--hexadecimal`

       char char1='';//采用16位的unicode来表示全世界的语言

       String str="if you can doeverything,tell me";

    double doubl=5.1e2;//this a 510.0

 

类和对象

1.    static修饰的东西属于类,不属于对象

2.    方法的引用必须有类或者对象为前提,少了有隐性的this

3.    参数的调用(可变参数和固定参数)

 public void run1(intx,String...book)

    {

       for(Stringstr:book)

       {

           System.out.println(str);

       }

    }

   

    public void run2(intx,String book[])

    {

       for(Stringstr:book)

       {

           System.out.println(str);

       }

    }

   

    public static void main(String[] args)

    {

       date_type da=new date_type();

       da.run1(2,"hello","every","one");

       da.run2(1,new String []{"hello","every", "one"});

    }

4.  this和super的使用,重构,封装,多态

5.  运行时候产生的数据是放在内存区(堆内存),并不是放在常量池

6.  Java类包含5种成员:成员变量、方法、构造函数器、初始化块、内部类

 class date//创建单个对象的类的实例

{

    private int age;

    private static date instance;

    private date(){}//隐去构造函数

    public static date getinstance()

    {

       if(instance==null)

       {

           instance=new date();

       }

       returninstance;

      

    }

}

public class date_type

{

    public static void main(String [] args)

    {

       date p1=date.getinstance();

       date p2=date.getinstance();

       System.out.println(p1==p2);

    }

}

}

7.  Fianl的成员变量的初始化不能在普通成员方法里面进行,函数里面就只有构造器里面可以初始化。如果定义的是局部变量,那就在局部变量的范围里面赋值。Final的意思也就是终态不可以被改变。

8.  抽象类只要里面存在抽象的方法,其余和正常类没区别

 abstract class date//

{

    private final int age=3;

    private static date instance;

    public abstract void perimeter();

    private void run()

    {

    }

   

}

public class

date_type extends date

{

    public void perimeter()

    {

      

    }

    public static void main(String [] args)

    {

       System.out.println("hello");

    }

}

}

 

9.  内部类的使用:内部内就相当于一个在类内部定义的成员变量,他可以使用外部类的所有资源,比如外部类的数据,定义。但是外部类不能直接访问非静态的内部类的实例变量,只有创建了内部类的对象,通过对象引用。(内部类的存在依赖外部类,所以当有内部类时,可以直接引用外部类的东西)

静态的东西不能访问非静态的

非静态内部类不能含有静态的变量

 package www.zylg.com;

 

public class innerclass//内部类的调用,在内部类调用外部的变量

{

    private Stringstr="i am out variate";

    private class inclass

    {

      

       private Stringstr="my name is innervariate";

       public void info()

       {

          

            String str="my name is local variable";

            System.out.println(innerclass.this.str);

            System.out.println(this.str);

            System.out.println(str);

       }

     }

    private static class staticinnerclass

    {

       private static int age=6;

       private Stringname="world";

    }

    public void test()

    {

       new inclass().info();                     

       System.out.println(staticinnerclass.age);  //静态内部类的调用

       System.out.println(new staticinnerclass().name);

    }

    public static void main(String[] args)

    {

       new innerclass().test();

       new innerclass().new inclass().info();//非静态内部类的调用

       System.out.println(new innerclass.staticinnerclass().name);//静态内部类的调用

    }

 

}

 

10. 局部内部类,在一个方法里定义的类,只是在这个方法的有效范围使用,所以没有修饰控制符和静态的声明

11. 匿名内部类,只是使用一次的类,但是需要继承接口或者类才行.

12. 枚举类,可以valueof(classname.class,“enum variate”)返回枚举类型,可以赋值枚举的变量和操作。Values()返回全部的枚举

 package www.zylg.com;

 

enum season//定义枚举类

{

    spring,summer,fall,winter;

    public Stringname;

    public void printer()

    {

       System.out.println(name);

    }

}

public class innerclass

{

    public void seasonjudge(season s)//找到相应的枚举,并为枚举的变量赋值

    {

       switch(s)

       {

           case spring:{seasona=season.valueOf(season.class,"spring");a.name="春天";a.printer();break;}

           case summer:{seasona=season.valueOf(season.class,"summer");a.name="夏天";a.printer();break;}

           case fall:{seasona=season.valueOf(season.class,"fall");a.name="秋天";a.printer();break;}

           case winter:{seasona=season.valueOf(season.class,"winter");a.name="冬天";a.printer();break;}

       }

    }

    public static void main(String[] args)

    {

       for(seasons:season.values())//直接获取全部的枚举

       {

           new innerclass().seasonjudge(s);

       }

    }

 

}

13. 一个对象在堆内存之中运行,有三种状态可达、可恢复、不可达,只有在对象被销毁时才进入可恢复状态,强制回收System.gc()和Runtime.getRuntime().gc();

14. 对象的强strongreference、软softreference、弱weakreference和虚phantomreference引用

 package www.zylg.com;

 

import java.lang.ref.SoftReference;

import java.lang.ref.WeakReference;

 

public class innerclass

{

    public static void main(String[] args)

    {

       String str1=new String("hello zylg");

       WeakReference wr=new WeakReference(str1);//weak reference

       str1=null;//取出弱引用的对象

       System.out.println(wr.get());

       System.gc();//强制回收

       System.runFinalization();//强制回收

       System.out.println(wr.get());

      

       String str2=new String("hello world");

       SoftReference wr2=new SoftReference(str2);//软引用

       str2=null;//取出弱引用的对象

       System.out.println(wr2.get());

       System.gc();//强制回收

       System.runFinalization();//强制回收

       System.out.println(wr2.get());

      

    }

 

}

 

基础类库

1.  scanner获取键盘输入new Scanner(System.io)

 package www.zylg.com;

 

import java.io.File;

import java.io.FileNotFoundException;

import java.util.Scanner;

 

public class innerclass

{

    static Filefl=new File("J:\\java\\day\\hellp\\src\\www\\zylg\\com\\1.txt");

    public static void main(String[] args) throws FileNotFoundException

    {

       Scanner sc=new Scanner(fl);

       while(sc.hasNextLine())//has*判断是否存在

       {

           System.out.println(sc.nextLine());

       }

    }

 

}

 

2.  system

 package www.zylg.com;

 

import java.io.IOException;

import java.util.Map;

import java.util.Properties;

 

public class innerclass

{

    public static void main(String[] args) throws IOException

    {

       Map<String,String> env=System.getenv();//获取所有环境变量的值

       for(Stringname:env.keySet())

       {

//         System.out.println(name+"----->"+env.get(name));

       }

       //获取单个环境变量的值

       System.out.println(System.getenv("java_home"));

       //获取所有的系统属性

       Properties pro=System.getProperties();

//     pro.store(newFileOutputStream("F:\\临时文件夹1\\pro.txt"), "系统属性");

       for(Objectstr1:pro.keySet())

       {

           System.out.println(str1+"----->"+ System.getProperty(str1.toString()));

       }

    }

 

}

3.  runtime类

 package www.zylg.com;

 

import java.io.IOException;

import java.util.Scanner;

 

public class innerclass

{

    public static void main(String[] args) throws IOException

    {

       Runtime rt=Runtime.getRuntime();//将运行的进程和runtime类相关联

       System.out.println("freemomery="+rt.freeMemory());

       System.out.println("totalmemory="+rt.totalMemory());

       System.out.println("maxmemory"+rt.maxMemory()/1000000);

       System.out.println(rt.availableProcessors());//处理器数量

       Scanner sc=new Scanner(System.in);

       String str;

       while(true)

       {

           str=sc.next();

           if(str.equals("exit"))break;

           rt.exec(str);

       }

    }

 

}

4.  object是所有类的父类

5.  string被创建以后字符序列是不可以变得、stringbuffer看可以使用append等改变、stringbuilder不和stringbuffer一样具有安全性

6.  math函数

7.  random随机数

8.  高精度的浮点数计算类bigdecimal

9.  时间和日期,在time包里面特别多

 package www.zylg.com;

 

import java.util.Calendar;

import java.util.Date;

 

public class innerclass

{

    public static void main(String[] args

    {

       Date d1=new Date();

       System.out.println(d1);

      

       Calendar cal=Calendar.getInstance();

       Date d2=cal.getTime();

       System.out.println(d2);

      

       cal.set(2022, 9, 30, 23, 30, 31);

       cal.set(Calendar.YEAR, 2019);

       cal.add(Calendar.MONTH, -2);

       cal.roll(Calendar.DATE, -10);

       System.out.println(cal.get(Calendar.YEAR)+""+cal.get(Calendar.MONTH)+""+cal.get(Calendar.DATE)

       +"  "+cal.get(Calendar.HOUR)+":"+cal.get(Calendar.MINUTE)+":"+cal.get(Calendar.SECOND));

    }

 

}

10. 正则表达式

 package www.zylg.com;

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

public class innerclass

{

    public static void main(String[] args

    {

       String str[]={"13289762351","13289897655","16709876543","1321234567890"};

       System.out.println("查找132开头的电话号码:");

       Pattern p=Pattern.compile("132\\d{8}$");

       Matcher m=null;

       for(Stringst:str)

       {

           m=p.matcher(st);

           if(m.find())

           {

              System.out.println(m.group());

           }

       }

    }

 

}

 

 

Java集合

1.集合概述

 package www.zylg.com;

 

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashSet;

import java.util.Iterator;

 

public class innerclass

{

    public static void main(String[] args

    {

       Collection c1=newArrayList(); //add()  remove()  removeall()  size

       c1.add("专业路过");c1.add("你好");c1.add("6");

       c1.remove("6");

       System.out.println("集合的大小"+c1.size()+"\t"+c1);

      

       Collection c2=newHashSet();               //addall()   

       c2.addAll(c1);c2.add("大家好");

       c2.forEach(obj->System.out.println(obj));

      

       c2.retainAll(c1);              //c2只是包含c1的数据

       Iterator it=c2.iterator();

       while(it.hasNext()){System.out.println(it.next());}

    }

 

}

 

Linkedhashset添加和输出的元素顺序一致

Treeset

 package www.zylg.com;

 

import java.util.TreeSet;

 

public class innerclass

{

    public static void main(String[] args) //int float  double longstream操作数据

    {

       TreeSet nums=newTreeSet();//两个对象必须那能够作比较,不然会抛出异常

       nums.add(1);

       nums.add(2);

       nums.add(3);

       nums.add(4);

       nums.add(5);

       nums.add(6);

       nums.add(7);

       nums.add(7);

       System.out.println(nums.first());//第一个元素

       System.out.println(nums.last());//最后一个元素

       System.out.println(nums.headSet(3));//小于3的元素

       System.out.println(nums.tailSet(6));//不小于6的元素

       System.out.println(nums.subSet(3, 5));//大于或等于3小于5的元素

    }

 

}

 

Enumset

package www.zylg.com;

 

import java.util.EnumSet;

 

public class innerclass

{

    enum season

    {

       spring,summer,fall,winter;

    }

    public static void main(String[] args)

    {

       EnumSet es1=EnumSet.allOf(season.class);//专门为枚举的集合

       es1.add(season.winter);

       EnumSet es2=EnumSet.copyOf(es1);

       System.out.println(es1);

       System.out.println(es2);

      

    }

 

}

 

List集合是有序可以重复的集合

package www.zylg.com;

 

import java.util.ArrayList;

 

public class innerclass

{

    public static void main(String[] args) //list are order and repetition

    {

       ArrayList li1=newArrayList();//vector is like arraylist

       li1.add("有些话");

       li1.add("不说");

       li1.add("也知道");

       li1.add("吗?");

       li1.remove(0);

       System.out.println(li1.get(1));

       System.out.println(li1.subList(1, 3));

      

    }

 

}

 

Queue队列集合“先进先出”

Hashmap

package www.zylg.com;

 

import java.util.HashMap;

import java.util.Map;

 

public class innerclass

{

    public static void main(String[] args) //key is only

    {

       Map m=newHashMap();

       m.put("language", 80);

       m.put("math",99);

       m.put("english", 70);

       m.put("english", 80);//it is will replaceenglishvalue

       System.out.println(m);

       for(Objectstr:m.keySet())

       {

           System.out.println(str+":"+m.get(str));

       }

    }

}

 

此外,linkedhashmap具有顺序性,treemap和sortedmap用于比较(不知道), identityhashmap必须key和key相等才算相等

Collection工具

排序

Void reverse(List list)//反转list集合中元素的顺序

Void shuffle(List list)//随机排序

Void sort(List list)//对集合进行升序排序

Void sort(List list,Comparator c)//根据c进行排序

Void swap(List list,int I,int j)

Void rotate(List list,distace d)//移动d的元素

查找、替换

Int binarysearch(List list,Object key)//二分法查找,必须保证list有序

Object max(collection coll)返回最大元素

Object min(Collection colll)返回最小元素

Void fill(List list,Object obj)让obj替换list的所有元素

Int frequency(Collection c,Object o)返回集合中指定元素出现的次数

Boolean replaceall(List list,Object old,Objectnew)用新值替换旧值

同步控制

Collections.synchronizedCollection(newArrayList<>());

 

 

泛型

packagecom.zylg.www;

 

importjava.util.ArrayList;

importjava.util.Collection;

 

public class find

{

   static <T>void fromarraytocollection(T[] a,Collection<T>c)//声明泛型

   {

      for(T o:a)

      {

         c.add(o);

      }

   }

   public static void main(String[] args)

   {

      Object[] oa=new Object[100];

      Collection<Object> co=new ArrayList<>();

      fromarraytocollection(oa,co);

     

      String[] str=new String[10];

      Collection<String> co2=new ArrayList<>();

      fromarraytocollection(str,co2);

   }

 

}

 

异常处理,try里面可以添加throw抛出,finally始终会执行,可以嵌套

Try{}

Catch{}

Finally{}

posted @ 2017-12-28 20:34  专业路过  阅读(217)  评论(0)    收藏  举报