byte,short,char -- int -- long -- float -- double
byte,short,char可以直接进行数学运算,且在运算的时候,会先被提升成为int类型,再运算
规则是数据范围从小到大(与字节数不一定相关)
强制转换:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
强制转换有可能会导致数据溢出或精度损失
boolean类型不能发生数据类型转换
ASCII(American Standard code for Information Interchange)
增加:
public boolean add(E e);//将指定的元素添加到此列表的尾部。
void add(int index, E element);//将指定的元素插入此列表中的指定位置,原来的元素会自动往后移
对于ArrayList集合来说,add添加动作一定是成功的,但是对其他集合来说,add添加动作不一定成功
删除:
public E remove(int index);//根据索引删除元素,返回被删除的元素
查:
public E get(int index);//返回集合中指定索引处的元素
public int size();//获取集合的长度,返回值是集合中包含的元素个数
public boolean contains(Object o)//如果此列表中包含指定的元素,则返回 true
修改:
set(int index ,Object obj);//修改指定位置上的元素
list.set(index,list.get(index2));//将一个元素替换另一个元素
Collections.shuffle(ArrayList<E>);//将集合中的元素打乱顺序
ArrayList的扩容机制
如果希望往集合中储存基本数据类型,就必须使用基本数据类型的包装类
int --Integer
char -- Character
其他都是首字母变大写
从JDK1.5+开始,支持自动装箱,自动拆箱,即基本类型<-->包装类型
String s = Integer.toString(int i);//将int类型的数据转为String类型
int i = Integer.parseInt(String s);//将String类型的数据转为int类型
int类型的包装类
public String;//创建一个空白字符串
public Stirng(char[] array);//将字符数组转换为字符串
public String(byte[] array);//将字节数组转换为字符串
String类的功能方法
无论是拼接,截取,原字符串都不会改变,因为字符串不会改变,当字符串被重新赋值时,实际上直接将对象保存的地址值改变了
判断:
public boolean equals(Object obj);//进行内容比较(区分大小写)
public boolean equalsIgnoreCase(String str);//忽略大小写(指英文中的大小写),进行内容比较
boolean starsWith(String str);//判断字符串对象是否以指定的str开头
boolean endsWith(String str);//判断字符串是否以指定的str结尾
equals使用注意事项:任何对象都能用Object接收;equals方法具有对称性,即a.equals(b)和b.equals(a)效果相同;比较一个常量和一个变量,将常量字符串写前面,避免空指针异常
获取:
public int length();//获取字符串的长度,即字符的个数
public String concat(String str);//将当前字符串与参数字符串拼接为一个新的字符串
public char charAt(int index);//获取指定索引位置的单个字符
public int indexOf(String str);//获取str在字符串首次出现的索引,如果没有则返回-1
public int indexOf(int ch, int fromIndex);//返回在此字符串中第一次出现指定字符处的索引,并从指定的索引开始搜索
public String substring(int start);//从start处开始截取字符串
public String substring(int start,int end);//从start开始,end结束截取字符串(截取结果包括左边 不包括右边)
转换:
public char[] toCharArray();//将字符串拆成字符数组返回
public byte[] getBytes();//获得字符串底层的字节数组
public String toLowerCase();//把字符串转换为小写字符串
public String toUpperCase();//把字符串转换为大写字符串
public String replace(CharSequence oldString, CharSequence newString);//用newString字符串替换所有的oldString,并以新串返回,利用这个功能可以实现删除字段
字节数组在IO流常用到
分割:
public String[] split(String regex);//按照指定符号分割字符串(. ? + * 不能随意作为分割符号,如要用必须加\\,意为转义)
其他功能:
public String trim();//去除字符串两端空格
字符数组与字符串
字符数组可以直接转为字符串
char[] chs = .....;
String ss = new String(chs);
static的特点
java.util.Arrays是一个与数组相关的工具类,提供了大量的静态方法
public static String Arrays.toString(数组);//将数组变为变成字符串
public static Object Arrays.binarySearch(数组,Object o);//在数组中搜索是否有符合的内容,并返回索引
public static void sort(数组);//按照默认升序对数组的元素进行排序
使用sort方法时,如果是自定义类型的数组,那么自定义的类需要有Comparable或者Comparator接口的支持
数学工具类Math
java.util.Math数学相关工具类,提供大量静态运算相关方法
public static double abs(double num);//获取绝对值
public static double ceil(double num);//向上取整
public static double floor(double num);//向下取整,抹零
public static long round(double num);//四舍五入
Math.PI代表近似的圆周率常量
Day09
继承
继承是多态的前提
继承主要解决的问题:共性抽取
父类也称基类,超类;子类也称派生类
public class 子类名称 extends 父类名称{}
父子类中的方法使用问题:创建的对象是谁,就优先用谁,如果没有则向上找
继承的三个特点
常用成员方法:
public int capacity();//返回当前容量
public int length();//返回长度(字符数)
容量为理论值,长度为实际值
public StringBuilder append(任意类型);//追加任意类型的数据到该字符串中
public StringBuilder reverse();//将字符串翻转
StringBuilder与StringBuffer的区别