【解析】Java Skills For Interview

【解析】Java Skills For Interview

从网上偶得之,把每个函数弄明白,源码是怎么写的,为什么这么写。

代码


//import不要使用通配符,需要import哪一个就import哪一个。
import java.util.*;
 
public class JavaSkillsForInterview {
    public static void main(String[] args) {
        
        // String
        String s = "abc";
        s.charAt(0);//返回指定索引处的 char 值。
        s.length();//返回此字符串的长度。
        s.substring(0, 1);//返回字符串的子字符串。beginIndex - 起始索引(包括),endIndex - 结束索引(不包括)。左闭右开。
        s.substring(1);//返回beginIndex - 起始索引(包括)到字符串末尾的子字符串。
        s.equals("b");//将此字符串与指定的对象比较。
        s = s.trim();//返回字符串的副本,忽略前导空白和尾部空白。用于删除字符串的头尾空白符。
        s.indexOf("a");//返回指定字符在此字符串中第一次出现处的索引。如果此字符串中没有这样的字符,则返回-1。
        s.indexOf("a", 1);//返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
        s.lastIndexOf("a");//返回指定字符在此字符串中最后一次出现处的索引。
        s.lastindexOf("a", 1);//返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
        s.toCharArray();//【常用】将此字符串转换为一个新的字符数组。
        Integer.valueOf(s); // returns an Integer object,valueOf会返回一个Integer(整型)对象
        //【注意】Integer类有一个静态缓存,存储了256个特殊的Integer对象——每个对象分别对应`-128 和127之间的一个值。
        // Integer.valueOf("127")==Integer.valueOf("127");【true】
        // Integer.valueOf("128")==Integer.valueOf("128");【false】
        Integer.parseInt(s); // returns an int primitive, 将形参s转化为整数。Interger.parseInt("1")=1;
        String.valueOf(s); // integer to string 返回指定参数的字符串表示形式。

        // StringBuilder
        StringBuilder sb = new StringBuilder();
        sb.append("a");//将指定的字符串追加到此字符序列。
        sb.insert(0, "a"); //在index指示的字符之前插入指定的字符串。
        sb.deleteCharAt(sb.length() - 1); //在这个序列中的指定位置,此方法将删除字符。   
        sb.reverse(); //此方法会导致此字符序列被替换为该序列的反转序列。
        sb.toString(); //该方法返回一个字符串,它表示这个序列中的数据。
        //String 长度大小不可变
        //StringBuffer 和 StringBuilder 长度可变
        //StringBuffer 线程安全 StringBuilder 线程不安全
        //StringBuilder 速度快
        
        // Array
        int[] a = new int[10];//初始化方式1
        char[] b = {'a', 'b'};//初始化方式2
        int[][] c = new int[10][10];//二维数组
        int m = a.length;//数组长度
        int n = c[0].length;//二维数组的列数
        int max = Integer.MAX_VALUE; //MAX_VALUE = 0x7fffffff (Java语言规范规定int型为4字节)
        int min = Integer.MIN_VALUE; //MIN_VALUE = 0x80000000
        Arrays.sort(a);//数组升序排序 (import java.util.Arrays;)int[],double[],char[]等基数据类型的数组,只提供了默认的升序排列,没有提供相应的降序排列方法。
        for (int i = 0; i < c.length; i++) {
            System.out.println(c[i]);
        }// 遍历数组输出元素
        
        // List
        //List是一个接口,而ArrayList是一个类。 ArrayList继承并实现了List。 
        List list = new ArrayList();//List初始化
        ArrayList list1 = new ArrayList(); //ArrayList初始化
        List> list2 = new ArrayList>(); //而为List
        list.add(0);//指定元素E追加到列表的末尾。此方法返回true。
        list.add(0, 1);//方法将指定的元素E在此列表中的指定位置。此方法不返回任何值。
        list.addAll(list1);//方法会将所有指定集合中的元素添加到此列表的结尾。
        list.get(0);//此方法返回在此列表中的指定位置的元素。
        list.size();//此方法返回此列表中的元素数。
        list.remove(list.size() - 1);//此方法返回从列表中移除的元素。
        //Collections是一个类而Collection是一个接口。
        Collections.sort(list);//方法用于指定列表按升序进行排序,根据其元素的自然顺序。
        Collections.sort(list, Collections.reverseOrder());//反序排列。
        //自定义排序。根据Collections.sort重载方法来实现。
        Collections.sort(list, new Comparator() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;// 0->1
                // return o2 - o1; 1->0
            }
        });
        
        // Stack
        // import java.util.Stack;  
        Stack stack = new Stack();
        stack.push(0);//把项item压入栈顶,返回item参数。
        stack.pop();//返回位于堆栈顶部的元素,在这个过程中除去它。
        stack.peek();//返回到堆栈顶部的元素,但不会将其删除。
        stack.isEmpty();//栈是否为空。空返回true,否则false。
        // isEmpty() 和 empty()的区别:命名区别。
        // For example, it was named empty() in original class but was named isEmpty() of Collection interface.
        stack.size(); //栈中元素的个数。
        stack.search("code"); //此方法返回从1开始的位置,一个对象在栈中。栈顶位置为1。
        
        // Queue add ‐‐‐‐‐‐> remove, peek
        // import java.util.Queue;  import java.util.LinkedList;
        Queue q = new LinkedList();
        q.add(0);//增加一个元索。
        q.remove();//移除并返回队列头部的元素。
        q.peek();//返回队列头部的元素。
        //Queue使用也可以offer()来加入元素,使用poll()来获取并移出元素。
        q.isEmpty();//返回队列是否为空。
        q.size();//返回队列中元素的个数。
        
        // HashMap
        // import java.util.HashMap;
        HashMap map = new HashMap();//初始化。
        map.put('c', 1);//关联与此映射中的指定键指定的值。添加映射。
        map.get('c');//返回指定键映射在此标识哈希映射,或者null,如果映射不包含此键的值。
        if (map.containsKey('c')) {//如果此映射包含指定键的映射关系返回true。
        }
        if (map.containsValue(1)) {//如果此映射一个或多个键映射到指定值返回true。
        }
        for (Character d : map.keySet()) {//遍历Hashmap的键集合。Set keySet()返回此映射中包含的键的set视图。
        }
        for (Integer i : map.values()) {//遍历Hashmap的值集合。Collection values()返回此映射中包含的值的collection视图。
        }
        map.isEmpty();//如果此映射不包含键 - 值映射关系返回true。
        map.size();//返回键 - 值映射关系在这个映射中的数量。
        
        // HashSet
        // HashSet借助HashMap来实现的,利用HashMap中Key的唯一性,来保证HashSet中不出现重复值。
        // HashMap中的Key是根据对象的hashCode() 和 euqals()来判断是否唯一的。
        // import java.util.HashSet;
        HashSet set = new HashSet();//初始化。
        set.add(0);//将指定的元素添加到此集合,如果它是不存在的。
        set.remove(0);//从集合中删除指定的元素(如果存在)。
        if (set.contains(0)) {//如果此set包含指定的元素,则返回true。
        }
        set.isEmpty();//返回true如果此set不包含任何元素。
        set.size();//返回元素的数目(它的基数)。
        
        // mini heap
        // import java.util.PriorityQueue;
        PriorityQueue pq = new PriorityQueue();//初始化。
        pq.add(0);//该方法调用返回true(所指定的Collection.add(E))
        pq.offer(0);//该方法调用返回true(所指定的Queue.offer(E))
        pq.remove();//该方法调用返回true,如果此队列由于调用而更改的结果。
        pq.peek();//在方法调用返回此队列的头部,或null,如果此队列为空。但它不会将其删除。
        pq.poll();//方法用于检索并移除此队列的头,则返回null,如果此队列为空。 
        pq.isEmpty();//判读是否为空。
        pq.size();//在方法调用返回的元素在此集合数
        while (!pq.isEmpty()) {
        }
    }

}

阿里巴巴Java开发规范

你可能感兴趣的:(【解析】Java Skills For Interview)