一、数据类型
1.java中,所有的数值类型所占的字节数量和平台无关,java中没有无符号类型
2.对于溢出的浮点型,用NaN表示。Double.isNaN(x)
3.char类型占2个字节
4.布尔类型不能与整数互相转换,避免了c++中if(x=3)的问题,若实在要转换可以用?:
5.&& || 会短路
6.两个操作数 如果有一个是double,则另一个将转成double
如果有一个是float,则另一个将转成float
如果有一个是long,则另一个将转成long;否则都是int
二、字符串
1.java字符串就是Unicode字符序列。
2.1 String类对象是不可变字符串,可以修改字符串变量,让它引用到另外一个字符串。
优点:编译器可以让字符串共享,各种字符串在公共存储池中。只有字符串常量是共享的,而+或者substring等操作产生的结果是不能共享的;
equals比较内容,而==只比较位置
2.2 常用api:
charAt()、compareTo() endWith() equals() equalsIgnoreCase() indexOf()
lastIndexOf() length() replace() substring() toLowerCase() toUpperCase() trim()
3.构建字符串
StringBuilder效率高,适用于单线程
StringBuffer 效率低,适用于多线程
4.Scanner
Scanner(InputStream in) Scanner(new File()) Scanner(String str)
nextLine()行 next()词 nextInt() nextDouble() hasNext()
PrintWriter(File f) 构造一个写入文件的PrintWriter
四、数组
1.Array.copyOf(oldArray,length)常用来扩容,数组分配在堆上。
2.Array.toString(type[] a)
3.Array.sort() binarySearch() fill()