• 错题整合


    1.sql语句的优化?

    答案:(1)where子句中:where表之间的连接必须写在其他where条件之前,那样可以过滤掉最大数量记录的条件必须写在where子句的末尾having之后。

          (2)使用exist替代in,用not exist替代not in(exist查询条件的时候使用了索引,速度更快)

       (3)避免使用索引上使用计算

       (4)避免在索引上添加 null 和not null

       (5)对查询进行优化,应尽量避免全盘扫描,首先应该考虑在where和order by涉及的列上建立索引

       (6)应尽量避免在where子句使用对字段进行null值判断,否则将导致引擎放弃使用索引转而使用全盘扫描

       (7)应避免在where子句字段进行表达式操作,将导致引擎放弃使用索引转而使用全盘扫描

    2.JSON 与 JS 对象的关系

    很多人搞不清楚 JSON 和 JS 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:
    JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
    1
    var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
    1
    var json = '{"a": "Hello", "b": "World"}'//这是一个 JSON 字符串,本质是一个字符串

       JSON 和 JS 对象互转

    要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:
    1
    var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}
    要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:
    1
    var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'

    3.创建线程的几种方式

     

    一般有四种方法,Thread,Runnable,Callable,使用Executor框架来创建线程池。

    Runnable和Callable的区别是,
    (1)Callable规定的方法是call(),Runnable规定的方法是run().
    (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得
    (3)call方法可以抛出异常,run方法不可以
    (4)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

    4.@Autowired和@Resources的区别:

    @Autowired默认按照类型进行注入,如果需要使用名称来进行查找,则需要配合使用@Qualifier(name="被代理类对象 ")使用

    @Resources默认使用名称进行注入,名称找不到会按照类型进行注入,如果使用了名称则按照名称注入

    5.AcriveMq是什么?为什么要是用AcriveMq?

    概述:ActiveMq是基于java中的JMS消息服务规范实现的一个消息中间件

    ActiveMq的优势:

        (1)解耦合:上层发送方不用去关心下层服务调用方的问题

        (2)异步调用:各个微服务之间所需要的时间(即时效性要求不同),使用Mq的异步调用合理处理

        (3)流量削峰:大型数据访问的时候,使用消息中间件,超出消息中间件排队等候,减小服务器压力

    AcriveMq消息发送方式和区别:

      (1)点对点模式(Queue):每个消息只有一个消费者,消息保证送达,离线消费者可以在下次上线后收到之前积压的消息

      (2)订阅模式(Topic):

              普通订阅:不区分消费者,当前有几个客户端在线,就发送几条广播给客户端。

               持久化订阅:  区分消费者,消费者在线则直接发送消息广播给消费者,消费者离线,只要该消费者有topic 登记,就会为其保留消息直至其再次连接后一次性推送,消息可以积压。

    6.Spring如何管理事务:

    1. 编程式事务管理: 直接使用PlatformTransactionManager实现或使用TransactionTemplate模板类
    2. 声明式事务管理: 这意味着你的业务代码将于事务管理分开,只用注解或基于XML配置来管理事务
    3. 我们项目中使用的是声明式事务管理,它通过注解@Transcation 将事务管理代码从业

      务方法中分离出来,以声明的方式来实现事务管理。事务管理作为一种横切关注点,可

      以通过 AOP 方法模块化。Spring 通过 Spring AOP 框架支持声明式事务管理

    7.为什么使用redis?

    (1)读写性能高:每秒读写10万数据量

    (2)丰富的数据类型:包含5种数据类型:String,list,hash,set,zest

    (3)原子性:redis存储数据要么全部成功,要么全部失败回滚

    (4)丰富的特性:redis还包含publish/subscribe(发布/订阅),通知,key过期处理等。

     错题整理:
    1.
     
    2.
      运行结果为:编译通过,但无输出
     
    如果是这种:

     3.LR分析是当前最一般的分析方法。它对文法的限制最少,现今能用上下文无关文法描述的程序设计语言一般均可用LR方法进行有效的分析。

    4.模块序号 = 访存地址 % 存储器交叉模块数。

    5.表示层功能:数据的编码、翻译、压缩、解压缩、加密、解密,将数据翻译为相对应的编码格式,然后展现到应用程序中,包含JPEG 、 ASCII 、 TIFF 、 GIF 、 PICT 、加密、 MPEG 、 MIDI。
    ASCII格式和EBCDIC,用于表示数字的1S或2S补码表示形式。

  • 相关阅读:
    计算机组成原理
    爬取斗图
    视频爬取
    经典段子爬取
    爬取哈哈笑话
    爬取昵图网
    爬取校花网
    python操作docker
    正则表达式
    UUID
  • 原文地址:https://www.cnblogs.com/xinghaonan/p/11973633.html
Copyright © 2020-2023  润新知