zoukankan      html  css  js  c++  java
  • 错题整合

    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补码表示形式。

  • 相关阅读:
    Leetcode 50.Pow(x,n) By Python
    Leetcode 347.前K个高频元素 By Python
    Leetcode 414.Fizz Buzz By Python
    Leetcode 237.删除链表中的节点 By Python
    Leetcode 20.有效的括号 By Python
    Leetcode 70.爬楼梯 By Python
    Leetcode 190.颠倒二进制位 By Python
    团体程序设计天梯赛 L1-034. 点赞
    Wannafly挑战赛9 C-列一列
    TZOJ Start
  • 原文地址:https://www.cnblogs.com/xinghaonan/p/11973633.html
Copyright © 2011-2022 走看看