一、数据类型

  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()