Scanner scanner = new Scanner(System.in);
    导包:
    util包:scanner,List,ArrayList

    常用类中的方法:
    基础数据

    常见类:
    数组长度为 array.length -> 是一个属性
    字符串长度为 String.length() -> 是一个方法

    数据转换成 二进制
    常用方法一览:
    String

    • charcAt()
    • length()
    • concat(String str)
    • indexOf()

    StringBuilder - 对比 StringBuilder 和 String 之间的方法区别
    Character

    • isLetter()

    Collections

    • sort()
    • reverse()

    Character

    • isLetter()

    BigDecimal
    BigInteger - HJ57 高精度整数加法

    基础点:

    • 数据类型
      • char, byte, short, int, long, double, float, boolean
      • 八种数据类型 + 取值范围 + 之间的转换关系 + 封装类 + 封装类的创建、构造器
      • 基础数据与String之间的转换
    • HashMap类
      • contains()
      • replace()
      • put()
    • StringBuilder 类
      • append()
      • insert()
      • replace()
      • reverser()
      • substring(), toString()
    • Character 类
      • isLetter()
      • isDigit
      • isLetterOrDigit
      • isUpper/LowerCase
    • String类的常用api
      • 直接定义一个String变量和new一个String变量的区别
        • String str = “test”; 定义一个String变量JVM会首先字符串实例池中寻找有没有相同的实例,有的话就会直接将该实例的地址返回给赋值,没有的话就会在实例池中创建新对象
        • String str = new String(“test”); 在堆中创建这个对象,并将堆中的地址返回赋值给引用;而引用是保存在栈中的
      • String.valueOf(),String类的静态方法,将其他类型的数据转化为String字符串
        • 接受8种基本数据类型 & char[] & Object
      • charAt(int index);compareTo(String anotherString);concat(String str);endsWith(String suffix);indexOf(String str);isEmpty();lastIndexOf(String str);length();matches(String regex);split();startsWith(String prefix);toUpperCase();toLowerCase();
      • String.indexOf(),其实也是接收单个字符的,不过只能用 ascii 值来表达该字符
    • 封装类
      • Boolean
        • logicalAnd();logicalOr();toString(boolean b);valueOf(boolean b);valueOf(String s)
      • Integer
        • bitCount(),返回二进制中表示1的个数
        • Constructor,可以使用 String 或者 int 类型数据来构造 Integer
        • equals(),如果双方是两个 Integer,则比较的是它们的值
        • max(int a, int b),min(int a, int b) -> 比较两个数的大小,静态方法
          • 跟 Integer.max 和 Integer.min 底层其实也是调用了 Math.max 和 Math.min,所以两者本质上是一样的,唯一区别就是 Integer.max 和 Integer.min 只能接收 int 数据作为参数,而Math中的两个方法实现了重载,可以接收 int, long, double, float 类型的数据
        • sum(int a, int b) -> 返回和
        • parseInt(String s),String to int
          • 可以加多一个 int radix 参数,表示使用的进制
        • toBinaryString(int i)
        • toString (int i)
        • valueOf(),接受 String & int
    • 类型转换
    • 运算符
      • 算数运算符 - 加减乘除,取余,自增自减
      • 关系运算符 - 等于,不等于,大于小于(等于)
      • 逻辑运算符 - 与 (&& &) 或 (|| |) 非 异或
        • 异或:两者不相同时表达为 true,相同时表达为 false
      • 位运算符 - 与 或 非 异或 右移 左移 不补零右移
      • 赋值运算符
    • 顺序结构
      • switch () { case : break; }
    • 栈、堆、对象的创建初始化
    • 常见集合
      • Collection 是一个集合类的顶级接口,而Collections是针对Collection对象的一个常用工具类
        • Collections的常用api(工具),sort(List list),swap(List<?> list, int i, int j),reverse(List<?> list),shuffle(List<?> list)
      • ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap
    • 常见类及其api

    Note:

    • 要考虑输入字符串中有空格的情况(如果题目中没有说明是否会有空格出现的话)
    • String 之间的比较要用 equals()?不用 ==?
    • 可以多复习复习 TreeSet / TreeMap
    • HashSet的自动排序假象
    • java的排序算法
    • 正则表达式
    • 线程:HJ49
    • 16进制
    • BigDecimal & BigInteger

    正则表达式:

    • ?:问号,表示前面的字符可以出现0次或者1次
    • *:星号,表示其那面的字符可以没有,也可以出现多次,但不可以是1次
    • +:加号,表示前面的字符要出现1次 以上(含?)
    • {}:花括号,表示前面的字符 要出现花括号中的次数
    • 字符类:
      • 方括号:表示用方括号中元素组成的字符串
      • a-z
      • A-Z
      • 0-9

    question?

    • 需要保证输入数据的正确性吗?

    常用方法?

    • isPrime() - HJ60

    image.png

    • 递归 - HJ61,放苹果