一.Object类的定义以及常用的方法
Object类的定义:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法。
Object类的常用方法:
1).public final class getclass() ; 返回此 Object 的运行时类class,如果直接输出类对象,则会打印出 class 包名.类名
2)public int hashCode();返回该对象的哈希码值
Object类中方法的运用如下图所示:
注释:上图中p.getClass().getName()语句,其实分两步
* 1. p.getClass();是p调用object类里面的方法
* 调用该方法返回的是一个object运行时的类的实体名称,该类是class类
* 则有 class p1=p.getClass();
* 2.p1.getName();getName是class类里面的方法
3) protected Object clone() 返回值为任意对象 Object 类的 clone 方法执行特定的复制操作。
注意: 1. 如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException.
2.所有的数组都被视为实现接口 Cloneable.并且在实现类中clone方法必须重写
4) public boolean equals(Object obj);指示其他某个对象是否与此对象“相等”
二. Scanner类的使用及方法
Scanner类:简单文本扫描器
键盘录入的步骤:
1) 创建键盘录入对象: Scanner sc=new Scanner(System.in)
2)导入包:import java.util.Scanner
3)接受数据: xxx 变量名=sc.nextxxx();
Scanner构造方法:
public Scanner(InputStream source): 以输入流的形式录入数据
InputStream:字节输入流
InputStream in=System.in //底层执行返回的是一个字节输入流(标准输入流)
Scanner类的常用方法 (xxx代表除Char类型的基本数据类型)
1): public xxx nextxxx() 录入一个xxx基本类型的数据
2): public String nextline() 录入一个字符串
使用如图:
注意:先输入数字的话则就不会录入字符串,因为有空格存在,系统默认字符串为空字符串
3): public boolean hasNextxxx() 判断录入的数据是否为xxx数据类型 ,如果是xxx数据类型的话,则返回true,否则返回 false
4): public boolean hasNexline() 判断录入的数据是否为String类型,如果是String类型的话,则返回true,否则返回 false
使用如图:
三.String类的特点和功能
String字符串最大的特点:
不可变的字符序列, 字符串一旦被赋值,字符串当参数传递时其值则不会改变,如图所示:
String类的常用转换功能
1): public byte[] getBytes();将字符串转换为字节数组
2): public char[] tocharArray();将字符串转换为字符数组
3): public static String valueof(int i);将int类型的数据转换为字符串 //这个方法可以将任意类型转换为字符串类型
4): public String toLowerCase();转成小写
5): public String toUpperCase();转成大写
6): public String concat(String str):字符串的特有功能:该方法和"+"拼接符是一个功能
String类的常用获取功能:
1): public int length();获取字符串的长度
2): public char charAt(int index);返回指定索引处的字符
3): public int indexof(int ch);返回指定字符在字符串中第一次出现的索引
4): public int indexof(int ch,int fromindex);返回此字符中第一次出现在字符串处的索引,并从此开始搜索
5): public int indexof(String str);返回子字符串在此字符串中第一次出现的索引
6): public int indexof(String str,int fromindex);回到此字符串中第一次出现指定字符串的索引,并从此搜索
String类的常用截取功能
1): public String substring(int begineindex);从指定位置开始截取,默认截取到末尾,返回新的字符串
2): public String substring(int begineinex,int endindex);从指定位置截取开始到指定位置结束 ,取左不取右(左闭右开)
1): boolean equals(Object obj)
2): boolean equalsIgnore(String str):将此String与另一个String比较,不考虑大小写
3): boolean contains(String str):判断当前字符串中是否包含该字符串
4): boolean startWith(String str):以当前str字符串开始
5): boolean isEmpty():判断字符串是否为空
StringBuffer提供一个字符串缓冲区,里面存储着可变序列的字符串
StringBuffer的构造方法
1): StringBuffer():无参构造的形式,初始容量16
2): StringBuffer(int capacity):指定容量构造一个字符缓冲区
3): StringBuffer(String str):构造一个字符串缓冲区,并将内容初始化为指定的字符串内容
StringBuffer的获取功能
1) public int length()返回长度
2) public int capacity()返回当前容量(如果超过容量,系统自动分配)
StringBuffer的反转功能
public StringBuffer reverse():将缓冲区里面的字符序列反转取代,返回它(字符串)本身
StringBuffer的截取功能;
1): public String substring(int start);从指定位置开始截取,默认截取到末尾,返回新的字符串
2): public String substring(int start,int end);从指定位置截取开始到指定位置结束, 返回的不在是缓冲区本身(左闭右开)
StringBuffer的删除功能
1): public StringBuffer deleteCharAt(int index):移除指定位置的字符
2): public StringBuffer deleteCharAt(int start,int end):移除指定位置的字符串到end-1处
注意: 在java或java相关的语言中,如果方法中的参数是两个索引的话,都是左闭右开
StringBuffer的替换功能
public StringBuffer replace(int start,int end,String str) 从指定位置开始到指定位置结束,用新的字符串str替换
StringBuffer的添加功能
1): public StringBuffer append(String/int.....):在字符缓冲区的末尾追加数据,并且返回字符串缓冲区本身
2): public StringBuffer insert(int offset,String str):将当前str字符串添加到指定位置,并返回字符串缓冲区本身
思考题:
1. String ,StringBuffer,StringBuilder的区别?
StringBuffer和StringBuilder都是一个可变的字符序列,提供一个缓冲区,(两者都看作容器)StringBuffer:线程安全,同步的,执行效率低
StringBuilder:线程不安全,不同步的,执行效率高,并且单线程中优先采用StringBulider
StringBuffer 执行效率虽然低,但是由于它可以转换为String类型,并且提供他可变的字符序列,提供了缓冲区
2. StringBuffer和数组的区别?
数组:它是可以存储多个数据的容器,并且多个数据的类型必须一致数组长度功能:length属性
StringBuffer:它是容器,他的缓冲区始终存储的只能是字符串的数据
获得缓冲区的长度:length()
五.Integer的引入及其构造方法的介绍
Integer是int的包装类, 包装类的目的是为了保证基本数据类型可以和String类型相互转换
Integer类常用的最值
1): public static final int MAX_VALUE //最大值 231-1
2): public static final int MIN_VALUE //最小值 -231
Integer提供的常用方法:
1): public static String toBinaryString(int i) 将int类型的数转换为二进制
2): public static String toOctalString(int i) 将int类型的数转换为八进制
3): public static String toHexString(int i) 将int类型的数转换为十六进制
4): public stastic Integer valueof(int i) 返回一个表示指定的 int 值的 Integer 实例
5): public int intValue() 以 int 类型返回该Integer的值
Integer的构造方法
1): public Integer(int value)
2): public Integer(String str) 注意: str必须为数字字符串
包装类的装箱操作和拆箱操作
1)装箱操作: 把一个基本数据类型转换为其包装类的对象 //装箱分为两种,自动装箱和手动装箱(见下图)
2)拆箱操作: 把包装类的对象转换为基本数据类型
int类型和String类型之间的转换
1): int类型转换为String类型有三种方式
1. 直接拼接
2. 利用Valueof(int i) int----->Integer---->String
3. 利用静态toString方法
2): String类型转换为int类型有两种方式
1. 利用public int intValue()方法 String----->Integer---->int
2. 利用public static int parseInt(String str)
六.数组的排序方法和查找方法
1).冒泡排序
思想:两两比较,大的往后放,第一次完毕之后,最大值就出现在最大索引处,然后依次这样比较,就可以得到一个排好序的数组,
用两个循环的嵌套可以实现,外层循环控制循环的次数,内层循环来比较相邻元素的值,假设该数组有m个元素,则比较m-1次,共执行
m-1次循环
2).选择排序
思想:从0索引对应的元素依次和后面索引对应的元素进行比较,小的往前放,第一次比较完毕之后,最小值就出现在最小索引处,然后依次这样比较,就可以得到一个排好序的数组
3)折半查找(二分查找)
前提:该数组必须有序
分析:
1.定义个最大索引和最小索引
2.计算中间索引
3.中间索引的元素和查找元素数值进行比较,三种情况:
查找元素数值=中间索引元素数值:左边找: 直接返回中间索引
查找元素数值>中间索引元素数值:左边找, max=mid-1;
查找元素数值<中间索引元素数值:右边找, min=mid+1
4.重新计算中间索引,回到第二步继续运算,直到找出查找元素,结束循环