码迷,mamicode.com
首页 > 其他好文 > 详细

4..21学习内容总结

时间:2018-04-25 22:14:37      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:byw999

一:
1.Object:是类层次结构的根类.每个类都使用 Object 作为超类(父类)
2.public int hashCode()返回该对象的哈希码值 . 把它理解地址值(不是实际意义 的地址值)
3.public final Class getClass()返回此 Object 的运行时类
4.Class类中有一个方法:
public String getName()以 String 的形式返回此
Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
5.Object中的一个方法:
public String toString(); 回该对象的字符串表示
6.1>public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
2> ==:比较的值相等(地址值)
3>equals:本身属于Object类中的方法,默认比较的是地址值是否相同
4>按照正常情况:equals方法底层实际执行的两个对象在==,比较是地址值;假如:学生的年龄和姓名一致,看成同一个人
5>在自定义的类中,重写Object中的equals()方法,比较是两个对象的成员变量的值是否同.

  1. 1>protected Object clone()创建并返回此对象的一个副本
    2>Object 类的 clone 方法执行特定的复制操作。首先,如果此对象的类不能实接口 Cloneable,则会抛出 CloneNotSupportedException。
    !!!!!注意,所有的数组都被视为实现接口 Cloneable.
    二:
    1.Scanner类: 简单文本扫描器。
    2.键盘录入的步骤
    1>需要创建键盘录入对象
    Scanner sc =new Scanner(System.in);
    2>导入包:import java.util.Scanenr; ctrl+shift+o
    接收数据
    XXX 变量名= sc.nextXXX();
    3> 构造方法:
    public Scanner(InputStream source): 以输入流的形式录入数据的
    InputStream:字节输入流
    InputStream in = System.in ; //底层执行返回的是一个字节输入流(标准输入流)
    3.Scanner类的一些常见的方法:
    1> XXX 变量名 = 键盘录入对象.nextXXX();
    2>在Scanner类中它提供一个判断功能:
    3>public boolean hasNextXXX():当前扫描器判断是否有下一个可以录入的XXX类型数据
    nextXXX()
    java.util.InputMismatchException:录入的数据和接收的数据类型不匹配异常
    三:

    1. String:表示字符串:
      2.字符串是常量;它们的值在创建之后不能更改。
      3.String是一种特殊的引用类型:

      1. 构造方法:
        String():无参构造
        String(byte[] bytes) :将字节数转换成字符串
        public String(byte[] bytes, int index,int length):将字节数组的一部分转换成字符串
        public String(char[] value):将字符数组转化成字符串 toCharArray():将字符串转换成字符
        public String(char[] value, int index, int count):将字符数组的一部分转换成字符串
        public String(String original):将一个字符串常量构造成一个字符串对象

        1. 常用的方法:
          public int length()返回此字符串的长度
          面试题:??
          数组中有没有length(),字符串中有没有length(),集合中有没有length()?
          数组中没有length()方法,只有length属性
          字符串中有length()
          6.String字符串的最大的特点:字符串一旦被赋值,其值不能被改变
          7.String类的常用的判断功能
          1>boolean equals(Object obj):将此字符串与指定的对象比较
          2>boolean equalsIgnoreCase(String str)将此 String 与另一个 String 比较,不考虑大小写
          3>boolean contains(String str):判断当前大川中是否包含子字符串 (重点)
          4>boolean startsWith(String str):以当前str字符串开头(重点)
          5>boolean endsWith(String str):以当前str字符串结尾(重点)
          6>boolean isEmpty():判断字符串是否为空
          7>public String concat(String str):字符串的特有功能:拼接功能和+拼接符是一个意思
          8.String类的常用获取功能:
          1> public int length():获取字符串的长度
          2>public char charAt(int index)返回指定索引处的 字符
          3>public int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引
          4> 问题:既然传入的字符:这里为什么用int类型
          ‘a‘和97 都表示a
          5>public int indexOf(int ch,int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
          6>public int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引
          7>public int indexOf(String str,int fromIndex)回在此字符串中第一次出现指定字符串处的索引,从指定的索引开始搜索。
          8>截取功能
          a> public String substring(int beginIndex):从指定位置开始截取,默认截取到末尾,返回新的字符串
          b>public String substring(int beginIndex, int endIndex):从指定位置开始到指定位置末尾结束,包前不包含
          9>String的常用转换功能:
          a> public byte[] getBytes() :将字符串转换为字节数组
          b>public char[] toCharArray() :将字符串转换成字符数组(重点)
          c> public static String valueOf(int i):将int类型的数据转换成字符串(重点)
          d>这个方法可以将任何类型的数据转化成String类型
          c>public String toLowerCase():转成小写
          d>public String toUpperCase():字符串中所有的字符变成大写
          10>String类型的其他功能:
          a>public String replace(char oldChar,char newChar):将大字符串中的某个字符替换掉成新的字符
          b>public String replace(String oldStr,String newStr):将大串中的某个子字符串替换掉
          c>public String trim():去除字符串两端空格
          d>public int compareTo(String anotherString)按字典顺序比较两个字符串
          四:
          StringBuffer:线程程安全的可变字符序列
          1.线程的安全问题,是难点(多线程属于难点) 多线程------>解决了多线程安全问题------>是死锁 :生产消费模式(Java中等待唤醒机制)

                           2. 线程安全    --->同步的---->执行效率低
                           3. 举例:
                                  银行的网站,医疗平台...
          
                           4. 线程不安全---->不同步---->执行效率高
                              举例:
                              新闻网站,XXX论坛...

    !!!! 面试题:

    1. StringBuffer和String的区别?
      1> 前者是一个可变的字符序列,后者是不可变的字符序列
      2>如果从内存角度考虑,String定义的时候,会在常量池中开辟空间,比较耗费内存
      3>而StringBuffer,字符串缓冲区(里面存储的全部都是字符串),它会释放掉
      1. StringBuffer的构造方法:
        1> StringBuffer() :无参构造的形式,初始容量16
        2>StringBuffer(int capacity) :指定容量构造一个字符串缓冲区
        3>StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
      2.                              1>StringBuffer的获取功能:
                                        2>public int length()返回长度
                                     3>public int capacity()返回当前容量 (如果超过容量,系统自动分配(存储字符串的时候,英文的))

        4.StringBuffer的添加功能
        1>(实际开发中用的多):public StringBuffer append(String/boolean....) :在字符串缓冲区中追加数据(在末尾追加),并且返回字符串缓冲区本身
        2>public StringBuffer insert(int offset,String str):将当前str字符串添加到指定位置处,它返回字符串缓冲区本身
        5.StringBuffer的删除功能:
        1> public StringBuffer deleteCharAt(int index):移除指定位置处的字符..
        2>public StringBuffer delete(int start,int end):移除从指定位置处到end-1处的子字符串...
        3>StringBuffer的反转功能:
        public StringBuffer reverse() :将缓冲区中的字符序列反转取代,返回它(字符串冲)本身
        5>StringBuffer的截取功能:
        public String substring(int start):从指定位置开始截取,默认截取到末尾,返回值不在是缓冲区本身,而是一个新的字符串
        7> public String substring(int start,int end) :从指定位置开始到指定位置结束截取,包前不包后,返回值不在是缓冲区本身,而是一个新的字符串
        8> StringBuffer的替换功能:
        a>public StringBuffer replace(int start,int end,String str)
        b>从指定位置到指定位置结束,用新的str字符串去替换,返回值是字符串缓冲区本身
        !!!!!!几个面试题:
        1.StringBuffer,String,StringBuilder的区别?
        StringBuffer和StringBuilder都是一个可变的字符序列,提供一个缓冲区.(两者都看做容器)
        StringBuffer:线程安全的,同步的,执行效率低
        StringBuilder:线程不安全的,不同步的,执行效率高,并且单线程中优先采用StringBuilder
        StringBuffer 执行效率虽然低,但是由于String类型,并且他可变的字符序列,提供了缓冲区
        2 StringBuffer和数组的区别?
        数组:它是可以存储多个数据的容器,并且多个数据的类型必须一致
        数组长度功能:length属性
        StringBuffer:它是容器,它在缓冲区始终存储的只能字符串类型的数据
        获取缓冲区的长度:length()
        Integer类是int类型的包装类类型
        ??问题: 需要将100十进制 (整数默认十进制) 它的二进制,八进制,十六进制...
        1>需求:获取Integer的最值
        public static final int MAX_VALUE
        public static final int MIN_VALUE
        Integer提供了静态功能:
        public static String toBinaryString(int i)
        public static String toOctalString(int i)
        public static String toHexString(int i)
        2> 基本类型对应都有一个保证类型,目的就为了将基本数据类型可以String类型之间进行互相转换
        byte Byte
        short Short
        int Integer (讲)
        long Long
        float Float
        double Double
        char character (讲)
        boolean Booleaan
        3.Integer的构造方法:
        public Integer(int value)
        public Integer(String s)
        4.如何将int转换为String类型?
        1>valueOf(int i) ;
        2>将String转换为int类型
        3>static int parseInt(String s)
        5.JDK5 以后提供了自动拆装箱
        1> 可以将Integer-->拆箱 int类型
        2>可以将int类型--->装箱 Integer类型
        JDK5 还提供了哪些特性:
        1> 泛型,可变参数,增强for循环(在集合中)等等..
        6.JDK8特性:
        1>Stream流 --> 表达式
        2>Character类:
        3>Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。
        以确定字符的类别(小写字母,数字,等等),
        4>构造方法:
        public Character(char value)
        7.Character类的判断功能:
        1>public static boolean isDigit(char ch)确定指定字符是否为数字。
        2>public static boolean isLowerCase(int ch): 确定是否是小写字母字符
        3>public static boolean isUpperCase(int ch):确定是否大写字母字符
        8.两个转换功能:
        1>public static int toLowerCase(int codePoint)
        2>public static int toUpperCase(int codePoint)
        9.冒泡排序: 两两比较,大的往后放,第一次比较完毕最大值出现在最大索引处...
        10.选择排序: 用0索引对应的元素依次后面索引对应的元素进行比较, 1索引..... 小的数据往前方法,就可以得到一个排好序的数组...
        11.数组中的元素查找法(基本查找法)
        折半查找(二分查找) :数组一定是有序
        分析:
        A:定义最小索引和最大索引
        B:计算中间索引
        C:中间索引对应的元素和需要查找的元素比较
        相等,直接返回中间索引
        不相等:
        大了,左边找
        max = mid -1 ;
        小了,右边找
        min = mid + 1 ;
        E:重新计算中间索引 ,回到B继续查找

4..21学习内容总结

标签:byw999

原文地址:http://blog.51cto.com/13677893/2107861

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!