引用类型String和StringBuffer
String类型的赋值理解
Int a=3;
a = 5;
这段代码的含义是:首先申请内存单元,命名为a 同时将3这个值存储内存单元中,然后又将5这只存入内存单元中,这个内存单元的之前的只在被赋值后就被修改了。
String str =new String(“abc”)
Str = “123”;
对于引用而言 赋值并不是改变与原来的引用对象的值 而只是调整了引用的关系 所以在使用“==”符号进行比较时 需要特别的注意
publicstatic void main(String[] args) {
String str=newString(“abc”);
String str1=newString(“abc”);
System.out.println(str ==str1);//比较地址
System.out.println(str.equals(str1));//比较值
}
}
因为str和str1 引用的事不同的对象,所以str==str1
因为str和str1 引用的字符串内容是相同的所以 str.equals(str1)为真。
String类常用的方法:eaquals,length,charAt(取字符串里面的一个字符),format(把字符串格式化)substring(切割字符串)indexof(找指定字符)lastindexof(返回最后一次出现在指定字符在此字符串的索引)replace(新的字符代替老的字符所有)
截取,trim(去除头部尾部空白)
StringBuffer:append(在字符串后面添加字符),
insert
(指定字符串一个位置,然后插入字符串),deleteCharAt(删除一个字符),delete(从字符串里面删除一节字符串),replace(把字符串的其中一节替换为传入新的字符串),setCharAt(找字符串里面的一个下标然后改变这个下标代表的值),reverse(字符串反向排列)
1.2数组对象
Arrays提供了数组的常见操作,比如查找,排序等,且他的方法都是静态的,所以实际上他是一个工具类提供方法,方便编程。
Fill(把数组内所有数改为你想改的数)sort(数组排序 从小到大)
MATH类
静态的常量e π
Abs绝对值,sprt平方根,Max最大,pow返回第一个参数的第二个参数次幂的值,min最小,floor向下取整,round(四舍五入,random(随机生成)
1.3日期类
public static void
main(String[]args) {
Calendar calendar =Calendar.getInstance();//获取当前时间的所有信息
/* System.out.println(calendar);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MARCH));
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.HOUR));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));*/
calendar.setLenient(
false
);
//关闭默认模式如果设置方法会报错
System.
out
.println(calendar.get(Calendar.
DAY_OF_MONTH
));
System.
out
.println(calendar.get(Calendar.
WEEK_OF_MONTH
));
System.
out
.println(calendar.get(Calendar.
WEEK_OF_YEAR
));
System.
out
.println(calendar.get(Calendar.
DAY_OF_WEEK_IN_MONTH
));
}
}
日期格式化输出
public staticvoid
main(String[] args) {
SimpleDateFormat simpleDateFormat=
new
SimpleDateFormat(
“yyyy-MM-dd HH:mm:ss”
);
//
格式化排列时间
Datedate =
new
Date();
System.
out
.println(date);
System.
out
.println(simpleDateFormat.format(date));
}
}
1.4包装类
为什么要用包装类,因为基础类型和其他类型处理是有不同的
基础类型的赋值,是直接修改变量里面的值,准确的说,是修改了内存单元里面的内容。
其他类型的赋值,是改变了引用的指向。
很多地方统一(尤其是范形),系统就提供了我们基本类型所对应的包装类。
int-Integer
char-Character
其他六个类型首字母大写就是包装类
集合框架
2.1vector
Vector(向量):动态数组
为什么需要动态数组很多时候 我们无法事先去确定数组的元素个数 如果使用了静态数组,小了不够用 大了会造成内存空间的浪费 这个时候我们就需要动态的数组,可以按照一定增量来增加容量。
Vecton 的初始默认容量和增量都是10,可以通过他的构造方法来设置容量和增量,所谓的增量,就是在容量不够时,增加的量。
Size、capacity、add
Remove<Int index>删除指定位置的元素
Remove<Int object o>删除指定元素 (第一个)
Contains 输入一个数查找是否有 有了返回true 没有false
indexOf通过元素找下标
get通过下标找元素
trimToSize将容量调至最小
几个常用方法
、
2.2栈stack
栈的特点:先进先出,后进后出
Push 增加
Peek 栈顶
Search 查找
Pop 删除栈顶
Stack<Integer> stack =
new
Stack<>();
stack.push(
1
);
//
增加
stack.push(
2
);
stack.push(
3
);
stack.push(
4
);
stack.push(
5
);
stack.push(
6
);
System.
out
.println(stack.peek());
/*stack.pop();
System.out.println(stack.peek());*/
System.
out
.println(stack.search(
6
));
}
2.3List
List : 是一个接口 继承自collection接口,常用的实现类:ArrayList、LinkList
public static void
main(String[] args) {
List<Integer> list =
new
ArrayList<>();
list.add(
1
);
list.add(
2
);
list.add(
3
);
list.add(
4
);
list.add(
5
);
//
添加
list.add(
8
);
System.
out
.println(list.size());
//
返回列表中的元素数
System.
out
.println(list.contains(
5
));
//
如果有输入的元素则输出
true
System.
out
.println(list.get(
4
));
//
返回列表指定位置的元素
System.
out
.println(list.isEmpty());
//
如果列表不包含元素则返回
false
}
2.4Set
Set也是一个接口,它表示一个无重复元素的集合,无序,唯一(它是通过判断hashcode来判断是否重复,如果得不到我们想要的结果,那就重写equals 方法)
Set 的实现类:hashSet