zoukankan      html  css  js  c++  java
  • 04端木公司

    1.XML映射中,如何使用LIKE进行模糊查询

    1.直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中。
    
    2.CONCAT()函数 MySQL的 CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一。
    
    3.使用mybatis标签<bind value='' name=''/>
    
    4.在mybatis中xml文件中配置 name LIKE '%${name}%' 或者是 address LIKE "%"#{address}"%"

    2.XML映射中,如何批量插入传入的集合(Collection<E>)?,即如何根据集合生成如下SQL?

    INSERT INTO TABLE_NAME(a,b,c) VALUES (a1,b1,c1),(a2,b2,c2)

    3.XML映射中,如何在插入的同时获取MYSQL自增字段(AUTO_INCREMENT)生成的值?

    使用select last_insert_id()

    @Insert("insert into table(content,questionid,active,submit,createtime) values(#{content},#{questionid},1,#{submit},#{createtime})")
        @SelectKey(statement="select last_insert_id()",before=false,keyProperty="_id",resultType=Integer.class,keyColumn="_id")
        int insertQuestionItem(QuestionItemInfo questionItemInfo);

     4.BlockingQueue相比普通的Queue最大的区别是什么?

    阻塞队列是与普通队列的区别有两点
    
    1.阻塞队列获取元素时,如果队列为空,则会等待队列有元素,否则就阻塞队列(普通队列返回结果,无元素)
    
    2.阻塞队列放入元素时,如果队列满,则等待队列,直到有空位置,然后插入。(普通队列,要么直接扩容,要么直接无法插入,不阻塞)
    
     
    
    阻塞队列的最佳场景就是生产者和消费者,使用代码时无需判断直接获取并处理(普通队列得判断有没有元素,阻塞队列不用判断,无元素自身就会阻塞,直到有东西)

    5.Thread.sleep()可能抛出的InterruptedException代表什么?如何处理?

    当一个方法后面声明可能会抛出InterruptedException异常时,说明该方法是可能会花一点时间,但是可以取消的方法。
    
    抛InterruptedException的代表方法有:
    
    1.Java.lang.Object类的wait方法
    
    2.Java.lang.Thread类的sleep方法。
    
    3.Java.lang.Thread类的join方法。
    
    
    
    这里我们只看sleep方法。
    
    interrupt方法是Thread类的实例方法,在执行的时候并不需要获取Thread实例的锁定,任何线程在任何时刻,都可以通过线程实例来调用其他线程的interrupt方法。当在sleep中的线程被调用interrupt方法时,就会放弃暂停的状态,并抛出InterruptException异常,这样一来,线程的控制权就交给了捕获这个异常的catch块了。
    
    
    
    Interrupt方法的作用-------
    
    interrupt方法只是改变了中断状态
    
    sleep方法内部会不断的检查中断状态的值,从而自己抛出InterruptedException.
    
    由 Thread 提供并受 Thread.sleep() 和 Object.wait() 支持的中断机制就是一种取消机制;它允许一个线程请求另一个线程停止它正在做的事情。当一个方法抛出 InterruptedException 时,它是在告诉您,如果执行该方法的线程被中断,它将尝试停止它正在做的事情而提前返回,并通过抛出 InterruptedException 表明它提前返回。 行为良好的阻塞库方法应该能对中断作出响应并抛出 InterruptedException,以便能够用于可取消活动中,而不至于影响响应。
    ————————————————
    版权声明:本文为CSDN博主「Silvia_flora」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lilylove1994/article/details/78964330

    6.如何实现一个方法,该方法执行某项任务并设定某个时间限制,如果该任务能在限制时间内完成则返回任务执行结果,否则返回null?写出核心代码

    ScheduledExecuterService service = Executors.newSinglThreadSchduledExecetor();
    
    ScheduledFuture f = service.scheduleAtFixedDelay(task, initialDelay, period, time unit);
    
    if currentDate = 00:00
    f.cancel()
    service.shutdown()

     7.

    a.下述代码在多线程环境中是否存在问题?若有,如何修正?

    b.下述代码中的volatile关键字是什么意思?如果删除对该段代码有何影响?

    class Counter{
        private volatile int count = 0;
    
        public int getNext(){
            return ++count;    
        }     
    }

    8.@Controller中,跳转("redirect:url")和转发("forward:url")有什么区别?

    1.从地址栏显示来说
    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
    redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
    2.从数据共享来说
    forward:转发页面和转发到的页面可以共享request里面的数据.
    redirect:不能共享数据.
    3.从运用地方来说
    forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
    redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
    4.从效率来说
    forward:高.
    redirect:低.

    9.

    10.使用注解(如@Component)声明Bean,如何指定Bean加载顺序?

    @Primary 注解

    当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。下面将给出一个实例代码来说明这一特性:

     

    11.多个同类型的Bean,使用注解注入时如何指定?

    @Qualifier 注解

    当系统中存在同一类型的多个Bean时,@Autowired在进行依赖注入的时候就不知道该选择哪一个实现类进行注入。此时,我们可以使用@Qualifier注解来微调,帮助@Autowired选择正确的依赖项。下面是一个关于此注解的代码示例:

  • 相关阅读:
    全美在线上云 保证上千考场统一监考
    如何构建一个较为通用的业务技术架构
    在tomcat下context.xml中配置各种数据库连接池
    Java中的多线程
    彻底理解ThreadLocal
    plsql工具使用
    软件清单
    EL表达式
    AOP(execution表达式)
    JSTL标签库之核心标签
  • 原文地址:https://www.cnblogs.com/lingboweifu/p/11905464.html
Copyright © 2011-2022 走看看