黑马程序员技术交流社区

标题: JavaSE简洁 [打印本页]

作者: 改名字以注册    时间: 2019-9-19 16:13
标题: JavaSE简洁
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();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2