zoukankan      html  css  js  c++  java
  • 牛客网刷题笔记——错题集2

    1、代码 的运行结果是()

    1 package com.sunline.java;
    2 public class A implements B extends C{
    3     public static void main(String args[]){
    4         System.out.println("hello sunline!");
    5     }
    6 }

    错误答案:在控制台打印hello sunline!

    正确答案:编译错误

    解析:java中的类应该先继承后实现接口

    2、下列哪个对访问修饰符作用范围由大到小排列是正确的?

    A、private>default>protected>public
    B、public>default>protected>private
    C、private>protected>default>public
    D、public>protected>default>private

    错误答案:B

    正确答案:D

    解析:这道题目实在不改错,平时应用default和protected权限的时候比较少

    3、java接口的方法修饰符可以为?(忽略内部接口)

    A、private
    B、protected
    C、final
    D、abstract

    错误答案:C

    正确答案;D

    解析:接口是一种特殊的抽象类,并且接口所有方法全是抽象方法只能 public abstract修饰 (默认public abstract修饰 ),属性默认public static final修饰。

    抽象类除了包含抽象方法外与普通类无区别。

    4、下列不属于Java语言性特点的是

    A、Java致力于检查程序在编译和运行时的错误
    B、Java能运行虚拟机实现跨平台
    C、Java自己操纵内存减少了内存出错的可能性
    D、Java还实现了真数组,避免了覆盖数据类型的可能

    错误答案:C

    正确答案:D

    解析:注意,是避免数据覆盖的可能,而不是数据覆盖类型 ,真数组简介:

    程序设计语言中,数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为“真数组”。
    实现了真数组为Java语言健壮性的特点之一。
    5、以下代码将打印出
    1 public static void main (String[] args) { 
    2     String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
    3     System.out.println(classFile);
    4 }

    A、com. jd
    B、com/jd/MyClass.class
    C、///////MyClass.class
    D、com.jd.MyClass

    错误答案:B

    正确答案:C

    解析:由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是".",那么就要写成"\.".

    6、设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()

    1  
    2 boolean isOdd = false;
    3  
    4 for(int i=1;i<=2;++i)
    5 {
    6 if(i%2==1)isOdd = true7 else isOdd = false8 a+=i*(isOdd?1:-1);
    9 }

    A、-1
    B、-2
    C、0
    D、1

    错误答案:C

    正确答案:D 

    解析:因为多线程存在值覆盖的情况,根据下图补充一下,第二种情景还有可能是-3,所以可能的值为-1,-2,0,-3

    7、mysql数据库,game_order表表结构如下,下面哪些sql能使用到索引()?

    A、select * from game_order where plat_game_id=5 and plat_id=134
    B、select * from game_order where plat_id=134 and
    plat_game_id=5 and plat_order_id=’100’
    C、select * from game_order where plat_order_id=’100’
    D、select * from game_order where plat_game_id=5 and
    plat_order_id=’100’ and plat_id=134
    E、select * from game_order where plat_game_id=5 and plat_order_id=’100’

    错误答案:ABCDE

    正确答案:BCDE

    解析:

    这道题目想考察的知识点是MySQL组合索引(复合索引)的最左优先原则。最左优先就是说组合索引的第一个字段必须出现在查询组句中,这个索引才会被用到。只要组合索引最左边第一个字段出现在Where中,那么不管后面的字段出现与否或者出现顺序如何,MySQL引擎都会自动调用索引来优化查询效率。
    根据最左匹配原则可以知道B-Tree建立索引的过程,比如假设有一个3列索引(col1,col2,col3),那么MySQL只会会建立三个索引(col1),(col1,col2),(col1,col2,col3)。
    所以题目会创建三个索引(plat_order_id)、(plat_order_id与plat_game_id的组合索引)、(plat_order_id、plat_game_id与plat_id的组合索引)。根据最左匹配原则,where语句必须要有plat_order_id才能调用索引(如果没有plat_order_id字段那么一个索引也调用不到),如果同时出现plat_order_id与plat_game_id则会调用两者的组合索引,如果同时出现三者则调用三者的组合索引。
    题目问有哪些sql能使用到索引,个人认为只要Where后出现了plat_order_id字段的SQL语句都会调用到索引,只不过是所调用的索引不同而已,所以选BCDE。如果题目说清楚是调用到三个字段的复合索引,那答案才是BD。

  • 相关阅读:
    Java——Math,Set,List,map相关练习
    Java——单例模式、多线程
    Java——I/O入门相关练习代码
    Java——I/O相关练习代码
    Java——序列化与反序列化
    python-selenium-粘贴,删除,复制和悬停
    Typora图床设置(阿里云版,图片自动上传)
    图书管理系统(Java实现,十个数据表,含源码、ER图,超详细报告解释,2020.7.11更新)
    openresty的安装和使用
    工具丨超好用的免费AWR分析工具
  • 原文地址:https://www.cnblogs.com/fengyun2019/p/11167123.html
Copyright © 2011-2022 走看看