Application Programming Interface,应用程序编程接口
位于java.lang下的包不需要导包
Scanner sc = new Scanner(System.in); int num = sc.nextInt(); String str = sc.next();
匿名对象只能使用唯一的一次,如果确定一个对象只需使用唯一一次,就可以使用匿名对象。
匿名对象可以作为参数和返回值。
package:java.util
Random r = new Random(); int num = r.nextInt();//整个int范围,包含负数 int num = r.nextInt(3);//参数代表了范围,左闭右开区间[0,3)
package:java.util
package:java.util
泛型只能是引用类型,不能是基本类型
ArrayList<String> list = new ArrayList<>();//右侧<>中内容可以省略 boolean = list.add("example");//添加内容 String str = list.get(1);//参数为索引值 String rm = list.remove(0);//参数为索引值 int size = list.size();
对于ArrayList集合来说,直接打印得到的不是地址,而是内容
如果希望向集合ArrayList当中存储基本数据类型,必须使用基本数据了性对应的“包装类”,位于java.lang
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
程序中的所有字符串都是String类的对象,字符串的内容不可修改,可以共享使用,效果上相当于char[],底层原理是byte[]字节数组。
String str1 = new String(); char[] charArray = {'a','b','c'}; String str2 = new String(charArray); byte[] byteArray = {97,98,99}; String str3 = new String(byteArray); String str4 = "123";//不new也是字符串对象
字符串常量池:程序中直接写上的双引号字符串,就在字符串常量池中,而new出来的字符串不在池当中。字符串常量池在堆当中。
字符串对象其实存的是byte[]的地址。
对于基本类型来说, == 是进行数值的比较,对于引用类型来说, == 是进行地址的比较。
任何对象都能用Object接收。
boolean isOk1 = str1.equals(str2);//比较字符串的值 boolean isOk2 = "Hello".equals(str3);//equals方法具有对称性,推荐使用把常量放在前面,如果有常量的话 boolean isOk3 = str3.equals("Hello");//不推荐,如果str3为空指针则会报错,空指针异常NullPointerException,而常量放前面不会出现这种情况 boolean isOk4 = str4.equalsIgnoreCase(str5);//忽略大小写
int length = "abcdefg".length();//获取长度 //拼接字符串 String str1 = "a"; String str2 = "b"; String str3 = str1.concat(str2);//ab,为新的字符串,str1、str2未变,因为字符串不可改变 //获取指定索引位置的单个字符 char ch="Hello".charAt(1);//ch为e //查找参数字符串在本来字符串当中出现的第一次索引位置 //如果没有,返回-1 String str = "abcdefghcdefg"; int index = str.indexOf("cd");//index为2
//截取从参数位置一直到字符串末尾,返回新字符串 String str1 = "abcdefghcdefg"; String str2 = str1.subString(5); String str3 = str1.subString(4,8);//左闭右开,截取4-7
//将当前字符串拆分成为字符数组作为返回值 char[] chars="Hello".toCharArray(); //获得当前字符串底层的字节数组 byte[] bytes="Hello".getBytes(); //将所有出现的要替换字符替换为新的字符,返回新字符串 String str1="How are you?"; String str2=str1.replace("o","%");
//按照参数的规则,将字符串切分为若干部分 String str1 = “aaa,bbb,ccc"; String[] array=str1.split(",");//参数为正则表达式,要按"."拆分,则要转义,传参"\\."