牛客java专项练习错题记录(持续记录)

在这里插入图片描述
A.一个类里面多个内部类,构造方法名是与和.java文件同名的public类名。内部类也是类,构造方法名和内部类名不同。
B.记住概念,构造方法不返回任何值,也没有返回类型
C.子类在构造方法里面调用父类的构造方法时,会在第一行使用“super(参数列表)”显示调用父类的构造方法。这里是显示地直接调用,而且没有创建新对象。
D.构造方法允许重载。内部类也可以有多个构造方法,而匿名内部类一个构造方法都没有。(我想到的是我们可以自己写不同的构造方法)

在这里插入图片描述
考察java重载的题目见了很多,有些及其具有迷惑性,所以我总结了一下重载的概念:
(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或**数量相同而类型和次序不同,**则称为方法的重载(Overloading)。
最常用的地方就是构造器的重载。
(2)无法以返回值类型作为重载函数的区分标准。2个返回值类型不同而参数相同的方法会报错,而返回值类型和参数不同的方法不会报错。
在这里插入图片描述
1如果是本类使用,可以直接就用静态变量名。
2如果是其他类使用,可以使用类名来调用,也可以创建一个实例对象来调用。
3如果静态变量所在的类是静态类,那么不管在本类里或者在其他外部类,都可以直接使用静态变量名。

在这里插入图片描述
解析:final作为对象成员存在时,必须初始化;但是,如果不初始化,也可以在类的构造函数中初始化。
我在IDE里敲了一下,如果是final int i会报错,如果是static int i则不会,而且默认初始值为1.

在这里插入图片描述
记住所有线程安全的集合:
Vector
Statck
HashTable
ConcurrentHashMap
SynchronizedMap

在这里插入图片描述

没有接触过这个东西。。。。
解析:
ThreadLocal不是一个线程而是一个线程的本地化对象。当工作于多线程环境中的对象采用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程分配一个独立的副本。每个线程都可以独立的改变自己的副本,而不影响其他线程的副本。

在这里插入图片描述
其实我对于final关键字也不熟。。。写项目的时候基本没用到。。。
但是B的#define是C和C++的,一开始我还选了const,后来才意识到它也是C和C++的。。。。

在这里插入图片描述
要熟悉异或、与或运算。。。

在这里插入图片描述
要熟悉java命令行操作。。。。

在这里插入图片描述
在这里插入图片描述
复制的解析:
用户线程(user-level threads)指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。
CMS的GC过程有6个阶段(4个并发,2个暂停其它应用程序)

  1. 初次标记(STW initial mark)
  2. 并发标记(Concurrent marking)
  3. 并发可中断预清理(Concurrent precleaning)
  4. 最终重新标记(STW remark)
  5. 并发清理(Concurrent sweeping)
  6. 并发重置(Concurrent reset)
    在初次标记,重新标志的时候,要求我们暂停其它应用程序,那么这两个阶段用户线程是不会参与的

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章