java学习第十三天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习第十三天相关的知识,希望对你有一定的参考价值。

1:StringBuffer(掌握)
    (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了
       一个字符串缓冲区类。StringBuffer供我们使用。
    (2)StringBuffer的构造方法
        A:StringBuffer()
        B:StringBuffer(int size)
        C:StringBuffer(String str)
    (3)StringBuffer的常见功能(自己补齐方法的声明和方法的解释)
        A:添加功能
        B:删除功能
        C:替换功能
        D:反转功能
        E:截取功能(注意这个返回值)
    (4)StringBuffer的练习(做一遍)
        A:String和StringBuffer相互转换
            String -- StringBuffer
                构造方法
            StringBuffer -- String
                toString()方法
        B:字符串的拼接
        C:把字符串反转
        D:判断一个字符串是否对称
    (5)面试题
        小细节:
            StringBuffer:同步的,数据安全,效率低。
            StringBuilder:不同步的,数据不安全,效率高。
        A:String,StringBuffer,StringBuilder的区别
        B:StringBuffer和数组的区别?
        二者可以看出是一个容器,装其他的数据
        但是StringBuffer的数据最终是一个字符串数据
        而数组可以放置任意类型的同一种
数据
    (6)注意的问题:
        String作为形式参数,StringBuffer作为形式参数。
    
2:数组高级以及Arrays(掌握)
    (1)排序
        A:冒泡排序
            相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。
            
            public static void bubbleSort(int[] arr) {
                for(int x=0; x<arr.length-1; x++) {
                    for(int y=0; y<arr.length-1-x; y++) {
                        if(arr[y] > arr[y+1]) {
                            int temp = arr[y];
                            arr[y] = arr[y+1];
                            arr[y+1] = temp;
                        }
                    }
                }
            }
            
        B:选择排序
            把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。
            
            public static void selectSort(int[] arr) {
                for(int x=0; x<arr.length-1; x++) {
                    for(int y=x+1; y<arr.length; y++) {
                        if(arr[y] < arr[x]) {
                            int temp = arr[x];
                            arr[x] = arr[y];
                            arr[y] = temp;
                        }
                    }
                }
            }
    (2)查找
        A:基本查找
            针对数组无序的情况
            
            public static int getIndex(int[] arr,int value) {
                int index = -1;
                
                for(int x=0; x<arr.length; x++) {
                    if(arr[x] == value) {
                        index = x;
                        break;
                    }
                }
                
                return index;
            }
        B:二分查找(折半查找)
            针对数组有序的情况(千万不要先排序,在查找)
            
            public static int binarySearch(int[] arr,int value) {
                int min = 0;
                int max = arr.length-1;
                int mid = (min+max)/2;
                
                while(arr[mid] != value) {
                    if(arr[mid] > value) {
                        max = mid - 1;
                    }else if(arr[mid] < value) {
                        min = mid + 1;
                    }
                    
                    if(min > max) {
                        return -1;
                    }
                    
                    mid = (min+max)/2;
                }
                
                return mid;
            }
    (3)Arrays工具类
        A:是针对数组进行操作的工具类。包括排序和查找等功能。
        B:要掌握的方法(自己补齐方法)
            把数组转成字符串:
            排序:
            二分查找:
    (4)Arrays工具类的源码解析
    (5)把字符串中的字符进行排序
        举例:
            "edacbgf"
            得到结果
            "abcdefg"

3:Integer(掌握)
    (1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型
        byte         Byte
        short        Short
        int            Integer
        long        Long
        float        Float
        double        Double
        char        Character
        boolean        Boolean
    (2)Integer的构造方法
        A:Integer i = new Integer(100);
        B:Integer i = new Integer("100");
            注意:这里的字符串必须是由数字字符组成
    (3)String和int的相互转换
        A:String -- int
            Integer.parseInt("100");
        B:int -- String
            String.valueOf(100);
    (4)其他的功能(了解)
        进制转换
    (5)JDK5的新特性
        自动装箱    基本类型--引用类型
        自动拆箱    引用类型--基本类型
        
        把下面的这个代码理解即可:
            Integer i = 100;
            i += 200;
    (6)面试题
        -128到127之间的数据缓冲池问题

4:Character(了解)
    (1)Character构造方法    
        Character ch = new Character(‘a‘);
    (2)要掌握的方法:(自己补齐)
        A:判断给定的字符是否是大写
        B:判断给定的字符是否是小写
        C:判断给定的字符是否是数字字符
        D:把给定的字符转成大写
        E:把给定的字符转成小写
    (3)案例:
        统计字符串中大写,小写及数字字符出现的次数

 

以上是关于java学习第十三天的主要内容,如果未能解决你的问题,请参考以下文章

java学习--基础知识进阶第十三天--笔记

DAY13JAVA第十三天I/O学习笔记

第十三天学习笔记

IT十八掌掌第十三天课程总结

第十三天

高强度学习训练第十三天总结:使用Netty实现一个http服务器