十七:枚举(enum)
固定个数的实例(对象)集合
17.1 枚举的定义
public enum MyEnum {
//枚举的成员
myenum1,
myenum2
}
十八:Java中的api
18.1 api是什么?
application program interface(应用程序编程接口)。
api在这指的是sun公司针对底层的功能的封装,供我们开发者更加方便的使用的功能就是api
18.2 java中我们原来使用过api吗?
System这个类是在rt.jar这个jar包中,这个jar包中有一个子包 java.lang
这个子包很特殊,我们使用这个包中的api时,不用导入包的,因为jvm启动时会把java.lang
包中的内容全部加载进来。
十九:hello world解密
System:
System
不能被实例化,那我们调用的时候就只能使用类名。
二十: 断点调试(debug调试)
IDEA中跟踪程序的执行过程
f6: 继续执行下一步
f5:进入方法
f7:跳出方法
f8:跳过当前的断点,继续下一个断点
ctrl+f5:智能进入
二十一:String类型的api
java.lang.String
21.1 字符串的创建
String str1 = new String("hello");
String str2 = "hello";
21.2 字符串的比较
String str1 = new String("hello");
String str2 = new String("hello");
String str3 = "hello123";
String str4 = "hello123";
String str5 = "hello";
System.out.println(str1 == str2);//false
System.out.println(str3 == str4);//true
System.out.println(str1 == str5);//false
**== **比较的是对象的内存地址
21.3 字符串的创建原理
使用new关键字创建的对象,不会进行判断,字节开辟空间使用。
使用字节赋值的方式创建字符串对象,首先会进行内容的比较(hash),如果相同,则不会开辟新的内存空间,直接使用,如果不相同会开辟新的内存空间;
21.4 字符串的内容比较
字符串的内容比较使用继承自Object的equals方法,对equals进行了重写,功能就不是原来的比较字符串对象的内存地址了,而是比较字符串内容;
21.5 字符串的hash算法
*所以我们来看一下我们猜想的是否正确?
21.6 字符串的toString方法
21.7:String类型的其他方法
str.length();//获取字符串的长度
str.toCharArray();//把字符串转换为字符数组
String str2 = str.concat("好");//拼接字符串返回新的字符串(原来的str没有改变)
byte[] bytes = str.getBytes();//获取字符串说对应的字节数组(编码方式)
str.charAt(4);//截取字符串中指定位置的字符,返回截取到的字符,把这个字符返回
str.indexOf("e2l");//返回给定子串在str中出现的位置str.lastIndexOf("l");//返回给定子串在str中最后一次出现的位置str.isEmpty();//判断字符串的内容是否为"",返回布尔值(一般不用)
str.replace("h", "d");//替换字符串的部分子串
str.split(":");//分隔字符串,以固定的格式
str.substring(2,3);//截取字符串,区间为:左闭右开,返回截取到的子串
21.8 字符串的解码
编码: 把字符串—>字节数组
解码: 把字节数组—>字符串
String str = "a你";
//编码操作 默认编码方式UTF-8
byte[] byts = str.getBytes();
//解码 默认的解码方式UTF-8
String s = new String(byts);
System.out.println(s);
在实际开发中,编码方式和解码方式使用的编码表和编码方式一定要一致,要不肯定会出现乱码