1 键盘录入 Scanner sc = new Scanner(System.in); int number = sc.nextInt(); String str = sc.nextLine();
2 生成随机数 Random r = new Random(); int number = r.nextInt(100); //0-100(包括0 不包括100)
3 字符串遍历 对象.charAt(); 对象.length();
4 StringBuilder append(); //添加数据 返回对象本身 reverse(); //反转 链式编程:sb.append().append().reverse() … toString(); // 返回字符串
5 ArrayList<String> array = new ArrayList<>(); add(); remove(); set(); get(); size();
6 static(静态) 静态: 随着类的加载而加载 非静态: 随着对象的创建而加载 静态不能访问非静态 静态成员可以直接用类名调用
7 极限修饰符
修饰符 同一个类中 同一个包中子类无关类 不同包的子类 不同包的无关类 private ✅ 默认 ✅ ✅ protected ✅ ✅ ✅ Public ✅ ✅ ✅ ✅
8 多态的前提和体现 有继承/实现关系 有方法重写 有父类引用指向子类对象
9 多态中成员访问特点 成员变量:编译看左 运行看左 成员方法:编译看左 运行看右
10 多态的向上转型和向下转型 向上转型:父类引用指向子类对象 向下转型:父类引用转为子类对象 ClassCastException 类型转换异常 关键字:instanceof //判断向下转型
11 接口中成员特点 成员变量:只能是常量 默认修饰符:public static final… 构造方法:无 成员方法:只能是抽象方法 默认修饰符:public abstract…
12 内部类的访问特点 内部类可以直接访问外部类的成员,包括私有。 外部类要访问内部类的成员,必须创建对象。
13 匿名内部类(局部内部类的一种) 前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类。 本质:是一个继承了该类或者实现了该接口的子类匿名对象。
14 Math(数学工具类) int abs(int a); 返回绝对值 double ceil(double a); double floor(double a); int round(float a); 四舍五入 int max(int a , int b); int min(int a , int b); double pow(double a , double b); 返回a的b次幂的值 double random(); 返回为double的正值,[0.0,1.0)
15 System exit(); currentTimeMillis();
16 Object equals(); toString();
17 冒泡排序 for(int x = 1 ; x < arr.length ; x++){ for(int i = 0 ; i < arr.length-x ; i++){ if (arr[i] > arr[i+1]) { int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } } }
18 Arrays工具类 toString(int[] a); sort(int[] a);
19 工具类 构造方法私有 成员方法静态
20 增强for循环 快捷生成键:iter
21 TreeSet 二叉树 接口Comparable 方法compareTo() this 是马上存储的元素 参数去点是已经存储的元素
22 什么是序列化? 就是将我们的java代码中的对象,以流的形式,写入到本地磁盘。 什么是反序列化? 将本地磁盘中的数据,以流的形式还原成Java中的对象。 如果一个对象想要被序列化,要满足什么条件? 类要实现序列化接口,Serializable 实现序列化接口,为什么不需要重写所有的抽象方法? 因为接口中没有方法。
23 Properties类 load(); store();
24 多线程 Thread 进程:正在执行的程序。 线程:是进程中的单个顺序控制流,是一条执行路径。 实现多线程的方式一:继承Thread类 start(); setName(); getName(); Thread.currentThread(); 线程的优先级:getPriority(); setPriority(); 范围1-10 线程控制:sleep(long millis); join(); 等待这个线程死亡 setDaemon(boolean b); 守护线程 线程的生命周期:
实现多线程方式二:实现Runnable接口 同步代码块格式:synchronized(任意对象){ 多条语句操作共享数据的代码 } 同步方法的格式:修饰符 synchronized 返回值类型 方法名(方法参数){ } 普通锁:this 静态锁:类名.class Lock 锁:lock(); 获得锁 unlock();释放锁
25 常用的函数式接口 Supplier<T> 生产型接口, 方法:T get(); Consumer<T> 消费型接口,方法:accept(T t); andThen(Consumer after); Predicate<T> 判断,方法:boolean test(T t); Predicate negate(); and(); or(); Function<T R> 转换,方法:R apply(T t); andThen(Function after);
26 Stream流 生产流的方式:集合名.stream() Stream.of(T…values) Stream流的中间操作方法: filter();过滤 limit();截取前几个元素 skip();跳过前几个元素,返回后面的元素 concat();合并两个流 distinct();去除重复元素 sorted();排序 sorted(Comparator);按照比较器排序 map(); mapToInt(); Stream流的终结操作方法: forEach(); count(); |
|