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。

  • 相关阅读:
    httpcontext in asp.net unit test
    initialize or clean up your unittest within .net unit test
    Load a script file in sencha, supports both asynchronous and synchronous approaches
    classes system in sencha touch
    ASP.NET MVC got 405 error on HTTP DELETE request
    how to run demo city bars using sencha architect
    sencha touch mvc
    sencha touch json store
    sencha touch jsonp
    51Nod 1344:走格子(贪心)
  • 原文地址:https://www.cnblogs.com/fengyun2019/p/11167123.html
Copyright © 2011-2022 走看看