java重要api个人笔记

来源:互联网 发布:java不等于符号 编辑:程序博客网 时间:2024/06/03 18:15

1、Math类
①Math.PI // 获取π的值;
②Math.sin(30)// 获取正弦的值
③Math.cos(30)//获取余弦的值
④Math.sqrt(16)//求平方根
⑤Math.pow(a,b)// a的b次幂
⑥Math.abs(-1)//取绝对值
七Math.floor(3.4)// 取 整小值,3
⑧Math.ceil(3.7)//取整大值 4
⑨Math.min(3,5) //取小值
⑩Math.max(3,5) //取大值
十一Math.random() //取随机数;
十二Math.round(4.6); //四舍五入;

2、日期类
Calendar类(日历)是一个抽象基类,主要用于完成日期字段之间相互操作的功能。既可以设置和获取
数据的特定部分。
获取Calendar类的实例的方法
Calendar calendar=Calendar.getInstance(); //创建对象
—-调用它的子类GregorianCalendar的构造方法
Calendar calendar=new GregorianCalendar();// 上转型;创建对象;
几个重要的方法:
①calendar.get(Calendar.MONTH) // 获取指定的日期;
②calendar.add(Calendar.HOUR,2) //设置时钟加两个小时
③calendar.add(Calendar.MONTH,-2)//设置月份 减两个小时;

    格式化输出:        Date date=new Date();        SimpleDateFormat form=new SimpleDateFormat("yyyy-MM-dd EEE hh:mm:ss");        System.out.println(form.format(date));   //  格式输出;Date类里面的一些知识:    date.getTime();//  获取当前的时间;

3、Random类
①Random():创建一个新的随机数生成器(使用当前时间毫秒值为种子)
②Random(long seed):使用单个long种子创建一个随机数生成器。
如果用相同的种子创建两个Random实例,则对每个实例进行相同的
方法调用序列,它们将生成并返回相同的数字序列。
例如:Random r=new Random(1);
Random ran=new Random(1);
这样它们生成的随机数一样;
③nextInt() 产生一个int类型的随机数,值位于int类型的取值范围。
nextInt(int n)———————–值大于等于0,并且小于n。
以此。。。。nextFloat() nextDouble() nextLong();
4、enum枚举类:
直接用例子;
enum Color{
RED,GREEN,BLUE;
}

        public class EnumDemo{            public static void main(String args){                Color c=Color.RED;              //枚举可以用作类;                System.out.println();            }            Color[] color=Color.values();           //枚举的使用;            for(int i=0;i<color.length;i++){                System.out.println(color[i]);             }        }

5、虚拟机
Runtime runtime=Runtime.getRuntime();
System.out.println(“TolalMemory:”+(runtime.totalMemory()/1024/1024)+”M”); //总
System.out.println(“freeMemory::”+(runtime.freeMemory()/1024/1024)+”M”); //自由
System.out.println(“MaxMemory::”+(runtime.maxMemory()/1024/1024)+”M”);//最大
6、StringBuffer类

解释:线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。     StringBuffer buffer=new StringBuffer("abcdegfaga");①buffer.append("123");//追加 字符②buffer.insert(2,'2');  //在索引 位置前插入;③buffer.toString();// 回归字符串④buffer.reverse();//  反转⑤buffer.delete(2,6);// 索引2-6删除;⑥split();       方法的使用;    String str3="aaa123bbb345ccc44d5f";    String[] arr=str.split("\\d+");    for(String e:arr){        System.out.println(e);    }

7、String
①str1.equalsIgnoreCase(str2); // 不区分大小写;
②str1.compareTo(str2); //相等返回0 包含返回正,不包含返回负;
③str1.comparetoIgnoreCase(str2) //忽略大小写;
④str1.endWith(“.mp3”);// 检索文件中 以.mp3结束的文件;
⑤str1.startWith(“abc”);// 以abc开始的文件。
⑥str.substring(3); //从0–3进行截取;
⑦str.substring(2,4);// 截取一段位置;
⑧str.concat(“uyt”);// 连接
⑨str.replace(‘c’,’a’);//替换;
:::::::::::::::::::::::::::::::::::::::::::::::::::::

8、集合框架(把图片变为文字)
(箭头表示 :继承)
ListIterator——–>Iterator

<class>ArrayList-------------><Interface>List----------------><Interface>Collection--------><Interface>Iterator <class>LinkedList------------><Interface>List----------------><Interface>Collection--------><Interface>Iterator <class>LinkedHashSet-------><class>HashSet---------------><Interface>Set-----------------><Interface>Collection<class>TreeSet---------------><Interface>SortedSet<Interface>Set-----------------><Interface>Collection<class>Properties------------><class>Hashtable---------><Interface>Map<class>HashMap----------------><Interface>Map<class>TreeMap----------------><Interface>SortMap------><Interface>Map通过这个:继承关系图,明白他们之间的关系;

①Iterator接口
所有实现了Collection接口的集合类都有一个iterator()方法用以返回一个实现Iterator接口对象。
例如:List list=new ArrayList();
(接口的多态,接口通过子类引用,实现自己的抽象方法)
Iterator是专门的迭代输出接口。所谓的迭代输出就是将元素进行判断,判断是否有内容,
如果有内容则把内容取出。
Iterator it=list.iterator(); //
例如:while(it.hasNext()){ // list.hasNext() 返回为 布尔型;
System.out.println(it.next());
方法:
-boolean hasNext();//判断游标游标是否有元素。
-Object next();//返回游标右边的元素 并将游标移到下一个位置。
-void remove();//删除左边的元素;(很死板,只删除左边的元素,不移动)
(习惯:Iterator迭代器遍历集合) }
②List接口
1、实现List接口的集合类中的元素是有序的,且允许重复。
2、List集合中的元素都存在索引。
方法:
1、public Object get(int index)
返回列表中的元素数;
2、public Object add(int index,Object element);
在列表的指定位置插入指定元素,将当前处于该位置的元素
和所有后续元素向后移动。 ———可以是:基本数据类型、boolean型、字符串
3、public Object set(int index,Object element);
用指定元素替换列表中指定位置的元素。
4、public Object remove(int index);
用于移除指定索引的元素;
③ArrayList类
特点:数组结构 优点:使用索引取出元素有较好的效率。
缺点:元素的插入、删除,效率低;

        例子:List<Class> list=new ArrayList<Class>();  //利用的就是接口借用子类实现                                              自己方法的多态;            故:要实现List中 的方法,                list.get(1);     //获取索引处的值;                list.add(2,"d");//插入                list.set(2,"d");//替换

④LinkedList类
特点:使用双向表实现的集合。 优点:便于插入或删除元素。

⑤Set接口
特点:实现Set接口的集合类的元素是不可重复 且 无序。 存、取、删除对象有很高的效率。
存放原理:根据每个对象的哈希码值(调用hashCode()获得)用固定
的算法算出它的存储索引,把每个对象放在一个叫散列表的相应位置。
–没有其他元素,就只需要直接存入。
–若该位置有了元素,会将新对象跟该位置的所有对象进行比较(调用equals()),
以查看是否已经存在。
–对于要存放到Set集合中的对象,对应的类一定要重写equals()和hashCode(Object obj)
方法以实现对象相等规则。

    重写方式:    public int hashCode(){            int result=this.name.hashCode;   //  比较hashCode            return result;        }        例如:class Dog{            String name            public Dog(String name){                this.name=name;            }            public boolean equals(Object obj){                if(this.name==((Dog)(obj)).name){                    return true;                }else{                    return false;                }            }        }解释:在对于已经有的元素进行对比的时候,要先对比的是  hashCode  (哈希码)当哈希码一样时,再通过equals比较 他们的内容,如果还是一眼,那就是相同。相同在set集合中不重复;全部方法:    ①boolean add();set.add("a");//添加元素;    ②boolean contains();set.contains("d");//判断是否包含;    ③set.size();//长度    ④Object []obj=set.toArray();//  将集合变为数组;        例子:            Object obj[]=set.toArray();            String str[]=new String[set.size()];            for(int i=0;i<set.size;i++){                str[i]=(String)obj[i];            }

⑥HashSet接口
特点:不保存元素的加入顺序。根据哈希码进行存放,也可以通过哈希码快速找到。
Set set=new HashSet(); (重写hashCode 和 equals 来进行保证不重复)

LinkedHashSet是其子类,   --特点:就是怎么输入,怎么输出;

⑦TreeSet接口
特点:元素必须是可“排序”的。<对于基本数据类型如:整型-存入后就给拍好序>

排序的方法有两种:    ①构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。        插入该 set 的所有元素都必须实现 Comparable 接口。        另外,所有这些元素都必须是可互相比较的:        对于 set 中的任意两个元素 e1 和 e2,执行 e1.compareTo(e2)         都不得抛出 ClassCastException。    解释:Comparable    让封装的类来实现 Comparable接口,然后重写 里面的方法     public int compareTo(Dog o){           //括号里面写 类;        if(this.age>o.age){            return 1;  //大于返回 1;        }else if(this.age<o.age){            return -1;//小于返回 -1;        }else{            return 0;//相等;   则重复不输出;            //  如果,还要 比较第二个属性;        }   

¥¥¥¥¥¥¥ 注意: 如果是字符串比较要用: compareTo()方法;
①返回 1 正序 排序;《1在前 -1在后》
②返回 -1 逆序 排序;《1在后 -1在前》
③有时候再:对第一个字段保证不重复时,我们要去除排序方法,然后用
重写 hashCode 和equals 的方法来实现。
④hashSet是无序的利用散列表进行存储,
TreeSet是红黑树(有序)。
⑤清楚:
public boolean equals(Object obj) {
if(this.name.equals(((Dog)(obj)).name)){
return true; //True是 有重复,则去除;
}else{
return false;
}
}
}
⑥顺一遍:
HashSet中重写hashCode和equals 方法可以去除重复,
但是不能排序,要想排序最好 用list.
TreeSet中重写 comparable 因为它本身是有序,但是要 操控顺序则需要重写。
还有就是:如果要保证某个字段不重复那就利用,hashCode equals 但不能有比较器。

    ②由于:使用Comparable接口定义排序顺序有局限性,实现此接口的类只能按照        compareTo()定义的这一种方式排序。        如果同一类对象要有多种排序方式,应该为该类定义不同的比较器。    Comparator接口:        Comparator接口中的比较方法:            public int compare(Object a,Object b);            1、如果返回0,表示 this==obj(元素相同)            2、返回正数,表示this>object            3、返回负数,表示this<obj    TreeSet有个构造方法允许给定比较器,它就会给比较器对元素进行排序。    例如:        CatComparatorUp  cc=new CatComparatorUp();        Set<Cat> set=new TreeSet<Cat>(cc);           ///排序;

⑧Collections类 该类是继承 Object类
该类有很多方法,但是从API中明显可以看出,很多方法是 静态方法。(括号里面写集合)
1、static void sort(List list); //根据元素的自然顺序对指定列表进行排序。
2、static void swap(List

原创粉丝点击