错题本(4)

Day13

在这里插入图片描述

  • 运行时数据区包括:程序计数器、虚拟机栈、本地方法栈、堆、元空间/方法区以及元空间中的运行时常量池。
  • 方法区/元空间、堆、运行时常量池都是线程共享的。
  • 其他几个都是线程私有的。
    在这里插入图片描述
    这道题有点憨了,这道题考查的是for循环的执行过程。
    for(语句A(一般为初始化语句); 语句B(一般为条件判断语句); 语句C)
    第一次循环,执行语句A;再执行语句B;判断B是否为true,为true就执行循环体,然后执行语句C,为false就直接跳出循环。
    第二次循环,判断语句B是否为true,如果是就执行循环体,然后执行语句C;如果为false,就跳出循环。这样依次循环,知道语句B为false。

在这里插入图片描述
A选项:java是解释型语言,java程序会被编译成字节码文件,(而不是直接编译成机器码文件,不然JVM吃干饭了)然后被JVM翻译为机器码。
B选项:java源文件生成的是class字节码文件,与操作系统无关。
C选项:java运行时字节码才会被JVM翻译成机器码文件,所以说java是解释型语言。
D选项:JVM的版本是有影响的。

在这里插入图片描述
接口中变量默认是 public static final 的;方法默认是 public abstract 的

Day14

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
A选项: 在jdk1.7中,ConcurrentHashMap使用Segment(继承自 ReentrantLock )分段锁来保证同步的,使用Synchronized关键字保证线程安全的是HashTable。
B选项:实现的是Map接口。
C选项:Arrays.asList方法是Arrays类的方法,返回的是一个ArrayList类型的对象,这个ArrayList类并不是java.util.ArrayList类,而是Arrays类的静态内部类。
D选项:SimpleDateFormal类原文复制:Date formats are not synchronized. It is recommended to create separate format instances for each thread. If multiple threads access a format concurrently, it must be synchronized externally. 他的方法都不是synchronized的,也没有采用其他的同步措施。

Day15

在这里插入图片描述
首先,如果要执行 java 类名 参数 这个命令,必须先找到.class文件才能执行。所以这个命令执行不会通过。
其次,如果这道题考的是下标越界的话,输入的参数只有三个,所以当取到arg[3]的时候,就会下标越界。

Day16

在这里插入图片描述

ServerSocket ss = new ServerSocket(int port); // 服务端
Socket s = new Socket(String host, int port); // 客户端

在这里插入图片描述
接口是用来描述对外提供的所有服务,所以必须是public修饰。AB错
接口中的方法默认是public abstract。 D对
abstract和final不能共用。C错
在这里插入图片描述
main()函数即主函数,是一个前台线程,前台线程是程序中必须完成的,而后台线程则是java中所有前台线程结束后结束,不管有没有完成。(后台线程主要是用来内存分配等方面)
前台线程和后台线程的区别和联系:

  1. 后天线程不会阻止进程的终止。属于某个进程的所有前台线程都终止后,进程就会被终止,所有剩余的后台线程都会停止且不会完成。
  2. 可以在任何时候将前台线程修改为后台线程,方法是设置Thread.isBackground属性。
  3. 无论是前台线程还是后台线程,如果线程出现异常,都会导致进程终止。
  4. 托管线程池中的线程都是后台线程,使用 new Thread方式创建的线程都默认是前台线程。
    在这里插入图片描述
    D选项的G1收集器实在jdk1.7中正式投入使用的。

在这里插入图片描述
instanceof运算符表示的是实例化,判断是否为实例化。

在这里插入图片描述

    static boolean a;
    static int b;
    static byte c;
    static short d;
    static long e;
    static String f;
    static char g;
    static double h;
    static float i;

    public static void main(String[] args) {
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
        System.out.println(i);
    }

在这里插入图片描述
static修饰的方法、变量等在类加载的准备阶段会分配内存空间并设置类变量初始值。boolean类型默认为false,String默认为null,byte/int/short/long默认为0,char没有默认值,float/double默认值为0.0。

在这里插入图片描述
在这里插入图片描述
计算机中进行符号数运算时,会用补码表示,符号位和数字位一起参与运算。a-b实际转换为[a-b]补=[a]补+[-b]补
转换了下[a]补=100100000000000000000000000000000000000000000000000000000000000000
[-b]补=100000000000000000000000000000000000000000000000000000000000000001
[a-b]补=1000100000000000000000000000000000000000000000000000000000000000001(65位,符号位溢出)
然后将溢出的符号位补上为100100000000000000000000000000000000000000000000000000000000000001
转换为原码1111000000000000000000000000000000000000000000000000000000000001

Day18

在这里插入图片描述
java中一个Unicode占两个2个字节,一个字节占8bit,所以每个Unicode码占16个字节。

Day19

在这里插入图片描述
线性表的链式结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各种数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。数据元素之间的逻辑关系是由指针域来确定的(插入和删除不用移动表中的元素,只需要改变结点的指针域即可)。
在这里插入图片描述
如果队列中只有一个元素,那么出队的时候队首队尾都要修改。

在这里插入图片描述
当一个函数也有一个分支不调用自身了,那递归就结束了。
在这里插入图片描述
100Mb内存,但是有1Gb,所以必然没办法一次性全部放到内存里面排序,所以只能外部排序。外部排序常采用多路归并排序。
在这里插入图片描述

Day20

无向图是没有方向的,所以它的邻接矩阵是对称的。AOV网是点表示活动的网;AOE网是边表示活动的网。
在这里插入图片描述
两栈共享空间采用顺序存储的方式存储,一个从下往上,一个从上往下,等到两个栈顶指针相遇,也就是top[1] + 1 = top[2];
在这里插入图片描述
栈和队列的插入和删除操作时间复杂度都是O(1)
在这里插入图片描述

根据二叉树的基本性质,对任何一棵二叉树,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。题目中度为 2 的结点为 199 个,则叶子结点为
199+1=200 。故本题答案为 B 选项。
在这里插入图片描述在这里插入图片描述
(1)如果n较小,可采用直接插入或者直接选择排序。当记录规模较小时,直接插入排序较好;
(2)若文件初识状态基本有序(正序),则应选用直接插入、冒泡或者随机的快速排序为宜。
(3)若n比较大,则应采用时间复杂度为O(nlogn)的排序方法:快速排序、堆排序或者归并排序。快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;堆排序所需要的辅助空间少于快速排序,并且不会出现快速排序可能出现的最坏的情况;这两种排序都是不稳定的,如果要求稳定排序,就需要归并排序。

Day21

在这里插入图片描述
虽然链表的插入操作时间复杂度为O(1),但是遍历链表需要的时间复杂度为O(n)。

在这里插入图片描述
散列表的查找性能在“没有冲突”的情况下,查找效率是最高的O(1)
但是真实情况下,没有冲突是不存在的,查找效率取决于:

  • 散列表是否均匀 —— 散列函数的好坏
  • 处理冲突的方法 —— 线性探测:产生堆积;链址处理:不会产生堆积
  • 装填因子:装填因子标志着散列表的装满的程度,= 填入表中记录的个数/散列表的长度;装填因子越大,产生冲突的可能性就越大。查找效率取决于装填因子。
    所以I增大装填因子是不对的。选D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值