重踏学习Java路上_Day13(StringBuffer,Array与数组,Integer,Character)

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和数组的区别?
    (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)案例:
        统计字符串中大写,小写及数字字符出现的次数

时间: 2024-12-14 18:06:16

重踏学习Java路上_Day13(StringBuffer,Array与数组,Integer,Character)的相关文章

重踏学习Java路上_Day15(对象数组,集合类,列表)

1:对象数组(掌握)    (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组.    (2)案例:        用数组存储5个学生对象,并遍历数组. public class Student {    // 成员变量    private String name;    private int age; // 构造方法    public Student() {        super();    } public Student(String n

重踏学习Java路上_Day19(异常,File)

1:异常(理解) 异常的图解:     (1)异常就是Java程序在运行过程中出现的错误.    (2)异常的体系        Throwable            |--Error    严重问题,我们不处理.这种问题一般都是很严重的,比如说内存溢出.            |--Exception                |--RuntimeException  运行期发生问题:    这种问题我们也不处理,因为是你的问题,而且这个问题出现肯定是我们的代码不够严谨,需要修正代码的

重踏学习Java路上_Day27(反射,模式设计,jdk新特性)

1:反射(理解) (1)类的加载及类加载器 (2)反射: 通过字节码文件对象,去使用成员变量,构造方法,成员方法 (3)反射的使用 A:通过反射获取构造方法并使用 B:通过反射获取成员变量并使用 C:通过反射获取成员方法并使用 (4)反射案例 A:通过反射运行配置文件的内容 B:通过反射越过泛型检查 C:通过反射给任意的一个对象的任意的属性赋值为指定的值 (5)动态代理 2:设计模式 (1)装饰设计模式 BufferedReader br = new BufferedReader(new Inp

重踏学习Java路上_Day26(网络编程)

1:网络编程(理解)    (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享    (2)网络编程模型    (3)网络编程的三要素        A:IP地址            a:点分十进制            b:IP地址的组成            c:IP地址的分类            d:dos命令            e:InetAddress        B:端口            是应用程序的标识.范围:0-65535.其中0-1024不建议使

重踏学习Java路上_Day20(递归,IO流)

1:递归(理解)     (1)方法定义中调用方法本身的现象        举例:老和尚给小和尚讲故事,我们学编程    (2)递归的注意事项:        A:要有出口,否则就是死递归        B:次数不能过多,否则内存溢出        C:构造方法不能递归使用    (3)递归的案例:        A:递归求阶乘        B:兔子问题        C:递归输出指定目录下所有指定后缀名的文件绝对路径        D:递归删除带内容的目录(小心使用) 2:IO流(掌握)  

重踏学习Java路上_Day18(Map,Collections)

1:Map(掌握) Map接口概述 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构值针对键有效,跟值无关   Collection集合的数据结构是针对元素有效    (3)Map接口功能概述(自己补齐)        A:添加功能        B:删除功能        C:判断功能        

重踏学习Java路上_Day21(字符流,io小结,案例)

1:字符流(掌握)    (1)字节流操作中文数据不是特别的方便,所以就出现了转换流.       转换流的作用就是把字节流转换字符流来使用.    (2)转换流其实是一个字符流        字符流 = 字节流 + 编码表    (3)编码表        A:就是由字符和对应的数值组成的一张表        B:常见的编码表            ASCII            ISO-8859-1            GB2312            GBK            G

重踏学习Java路上_Day14(正则表达式,Math,Random,System,BigInteger,BigDecimal,Date,Calendar)

1:正则表达式(理解)    (1)就是符合一定规则的字符串    (2)常见规则        A:字符            x 字符 x.举例:'a'表示字符a            \\ 反斜线字符.            \n 新行(换行)符 ('\u000A')             \r 回车符 ('\u000D')                    B:字符类            [abc] a.b 或 c(简单类)             [^abc] 任何字符,除了

重踏学习Java路上_Day24(多线程锁,线程组,设计模式)

1:多线程(理解)     (1)JDK5以后的针对线程的锁定操作和释放操作        Lock锁    (2)死锁问题的描述和代码体现    (3)生产者和消费者多线程体现(线程间通信问题)         以学生作为资源来实现的                资源类:Student        设置数据类:SetThread(生产者)        获取数据类:GetThread(消费者)        测试类:StudentDemo                代码: