1.mybatis中$和#的区别

答:1.#将获取的值转为字符串,并对自动传入的参数添加双引号;

2.$会将获取的值直接显示在SQL中;

3.#可以避免大部分的SQL注入;

4.在传递的参数是数据库对象时需要使用$.

2.MySQL中excel批量导入通过mybatis使用什么SQL

答:使用select标签执行插入语句,在VALUES关键字后使用foreach标签循环获取传入的参数

<select id="batchInsertion" parameterType="java.util.List">
        INSERT INTO product_process_drawback
        (created,drawback_id,information )
        VALUES
        <foreach collection="list"  index="index" item="item" separator=",">
            (#{item.created},#{item.drawbackId},#{item.information})
        </foreach>
    </select>
 

3.用过的分布式

4.MySQL的主从机制

答:当主节点宕机后,其他节点可以立即提供服务。有三种复制机制:

MySQL源生复制和semi-sync半同步复制,Group Replication全同步复制的差异是:

  1. 全同步复制,主备无延迟,一个节点宕机后其他两个节点可以立即提供服务,而semi-sync需要应用(执行)完所有relay log,并依赖第三方高可用软件实现数据不丢失;
  2. 事务冲突检测保证数据一致性,多个节点可以同时读写数据,可以极大简化数据访问;
  3. 行级别并行复制,MySQL 5.7/MariaDB 10.0之前slave sql线程只有一个,这个长期饱受诟病,是导致slave落后master的主要原因。

5.对反射的理解

答:Java反射机制主要提供了以下功能:在运行时构造一个类的对象;判断一个类所具有的成员变量和方法;调用一个对象的方法;生成动态代理。反射最大的应用就是框架。

获取反射的三种方式:

I:String s = "ziwenxie"; Class<?> c = s.getClass();

II:Class<?> c = Class.forName("java.lang.String");

III:Class<?> c = String.class;

6.对动态代理的理解

7.在项目中负责的模块

8.Oracle中如何做excel批量新增,另外Oracle中自增怎么操作

答:Oracle批量新增和MySQL差不多,都可以使用mybatis中的foreach标签实现。Oracle通过创建一个自增序列实现自增

9.hashcode方法和equle方法的作用和差别

答:

1、如果两个对象相同,那么它们的hashCode值一定要相同;

2、如果两个对象的hashCode相同,它们并不一定相同(上面说的对象相同指的是用eqauls方法比较。)

10.在开发过程中遇到的错误

答:NUllPointException  FileNotFoundException  EOFException

11.对两个list进行合并去除重复元素并排序

答:实现方法一:

I 创建一个set ,循环两个list,把list中的元素放到set中   ,可以实现合并去重;

II 创建一个新数组,把set中的元素放到数组中,进行排序 ,使用Arrays.sort(arrays);可以进行排序

实现方法二:

I 把需要合并的两个list放到一个新的list中,使用Collections.sort对list中的元素进行排序  ,实现排序;

II 使用for循环判断list中前后两个元素是否相同,如果相同就移除一个

实现方法三:

I for循环一个list,在for循环中再for循环一个list,判断元素是否相同,如果相同就移除一个 ,去重

II  把去重后的两个list进行合并 , 合并

II  使用Collections.sort对list中的元素进行排序 ,排序

12.实现在数组中指定位置新增一个元素

答:因为数组长度是固定的,所以需要新建一个数组,然后使用for循环把数组中指定位置前的元素放到新数组中,然后把新增元素放到指定位置,然后再把指定元素后的元素安装索引+1放到新数组中

13.redis可以存放的五种数据类型和场景

少量数据存储,高速读写访问,是Redis最主要的适用场景

答:string     hash      list      set      sorted set

① string 是 redis 最基本的类型,是最常用的一种数据类型,普通的key/ value 存储都可以归为此类,是二进制安全的,值最大能存储 512MB

使用场景:常规key-value缓存应用。常规计数: 微博数, 粉丝数。

实现方式如下

② hash 是一个键值(key => value)对集合。Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象

使用场景:存储部分变更数据,如用户信息等

实现方式如下

③ Redis list 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

常用命令:lpush(添加左边元素),rpush,lpop(移除左边第一个元素),rpop,lrange(获取列表片段,LRANGE key start stop)等。

  应用场景:Redis list的应用场景非常多,也是Redis最重要的数据结构之一,比如twitter的关注列表,粉丝列表等都可以用Redis的list结构来实现。

    List 就是链表,相信略有数据结构知识的人都应该能理解其结构。使用List结构,我们可以轻松地实现最新消息排行等功能。List的另一个应用就是消息队列,
可以利用List的PUSH操作,将任务存在List中,然后工作线程再用POP操作将任务取出进行执行。Redis还提供了操作List中某一段的api,你可以直接查询,删除List中某一段的元素。

  实现方式:Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。

  Redis的list是每个子元素都是String类型的双向链表,可以通过push和pop操作从列表的头部或者尾部添加或者删除元素,这样List即可以作为栈,也可以作为队列。 获取越接近两端的元素速度越快,但通过索引访问时会比较慢。

使用场景:

  消息队列系统:使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统。比如:将Redis用作日志收集器,实际上还是一个队列,多个端点将日志信息写入Redis,然后一个worker统一将所有日志写到磁盘。

实现方式如下:

 set是string类型的无序集合。集合是通过hashtable实现的,概念和数学中个的集合基本类似,可以交集,并集,差集等等,set中的元素是没有顺序的。所以添加,删除,查找的复杂度都是O(1)

常用命令:sadd,spop,smembers,sunion 等。

  应用场景:Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。

实现方式如下:

⑤ Sorted Set 和 set 一样也是string类型元素的集合,且不允许重复的成员

常用命令:zadd,zrange,zrem,zcard等

  使用场景:Redis sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。当你需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。和Set相比,Sorted Set关联了一个double类型权重参数score,使得集合中的元素能够按score进行有序排列,redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。比如一个存储全班同学成绩的Sorted Set,其集合value可以是同学的学号,而score就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序。另外还可以用Sorted Set来做带权重的队列,比如普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务。让重要的任务优先执行。

实现方式如下:

14.监听器、过滤器、Servlet和拦截器的区别

答:

I.servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,

可以动态生成web页面它工作在客户端请求与服务器响应的中间层;

  II.filter:filter是一个可以复用的代码片段,可以用来转换HTTP请求,响应和头信息。

它不能产生一个请求或者响应,它只是修改对某一资源的请求或者响应;

  III.listener:监听器,通过listener可以坚挺web服务器中某一执行动作,并根据其要求作出相应的响应。

就是在application,session,request三个对象创建消亡或者往其中添加修改删除属性时自动执行代码的功能组件;

  IIII.interceptor:拦截器是对过滤器更加细化的应用,他不仅可以应用在service方法前后还可以应用到其他方法的前后

拦截器;

  IIIII.servlet,filter,listener是配置到web.xml中,interceptor不配置到web.xml中,spring的拦截器配置到spring.xml中;

15.drop 、truncate和delete的区别

答:drop是删除一个表,执行drop后,表就不存在了;

truncate是清除表中的数据,清除的同时,表中的索引也会被删除;

delete是清除表中的数据,但是是一行一行的进行删除,数据被删除后,索引还是存在的,只是表中数据被删除;

2020年Java面试题相关推荐

  1. 2020最新Java面试题

    2020最新Java面试题 序 Java基础 JVM Redis 序 研发了这么多年,每天都在搬砖,斗转星移,从一个被面试者,成为了一个面试者.总感觉自己在面试的时候提出的问题没有一个由浅入深的感觉, ...

  2. 2020最新Java面试题大全,赶紧收藏吧!

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一.Java 基础 1. JDK 和 J ...

  3. [转载] 2020最新Java面试题,常见面试题及答案汇总

    参考链接: Java程序的输出| 18(重写Override) 发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 博主已将以下这些面试题 ...

  4. 2020年java面试题(十一)-人事面试问题汇总1

    1.请介绍一下你自己 这是面试官100%会问的问题,一般人回答这个问题过于平常,只说姓名.年龄.爱好.所学专业等,如果你用一分钟来重复你的简历,那么,你的印象加分没有了! 不妨坦诚自信地展现自我,重点 ...

  5. 2020后端Java面试题汇总

    总结了一些相关的java面试题,虽然我是比较反感背面试题的,但是还是需要了解一些基础概念的,不然面试真的可能会很尴尬 1 java基础: 1 介绍一下Java中常见的容器2 Iterator 和 Li ...

  6. 2020最新Java面试题(java,JavaWeb,数据库,框架),常见面试题及答案汇总

    1.面试题模块汇总 面试题包括以下十九个模块:Java 基础.容器.多线程.反射.对象拷贝.Java Web 模块.异常.网络.设计模式.Spring/Spring MVC.Spring Boot/S ...

  7. 用友2020校招java笔试题_用友Java类笔试题大全

    如下为大家汇总的是一份用友Java类笔试题,欢迎大家关注! 1.Hashtable和HashMap有什么区别? a.Hashtable是继承自陈旧的Dictionary类的,HashMap继承自Abs ...

  8. 2020年Java面试题及答案_Java面试宝典_Java笔试题(持续更新中)

    推荐面试视频教程 2019年最新Java互联网大厂面试精粹 前言 前言: 少年易老学难成,一寸光阴不可轻.未觉池塘春草梦,阶前梧叶已秋声 .-朱熹<劝学诗> 勤奋才是改变你命运的唯一捷径. ...

  9. 2020最新java面试题库(杭州)

    目 录 1.常见的集合有哪些?都有什么区别: 1 2.HashMap的底层原理: 1 3.sleep和wait的区别 1 4.run方法和start方法的区别: 1 5.Threadlocad的作用: ...

  10. 京东面试官总结2020京东Java面试题,让你轻松拿下offer!

    京东是中国一家自营式B2C购物网站,创始人刘强东担任京东集团CEO.旗下设有京东商城.京东金融.拍拍网.京东智能.O2O及海外事业部.2013年正式获得虚拟运营商牌照.2014年5月,在美国纳斯达克证 ...

最新文章

  1. “N+虚拟现实行业高峰论坛”成功举办,共创VR美好未来
  2. shell 语法格式
  3. iOS设计模式 - 组合
  4. Windows Server 2008 R2 之二十一远程桌面服务RD之二
  5. 众成翻译2.0上线,翻译即有机会获赠图书
  6. LNMP架构的简单应用--部署论坛
  7. Android集成百度语音识别API
  8. Layui表单自定义验证规则
  9. Jquery 进度条集锦
  10. 计算机绘图中有六种方法绘圆,圆的绘制教案
  11. 江城子/乙卯正月二十日夜记梦——苏轼
  12. matlab图像噪声处理,基于matlab图像处理的去噪处理.doc
  13. 论文笔记:Integrated Object Detection and Tracking with Tracklet-Conditioned Detection
  14. 知乎 | 一个博士生接受怎样的训练是完整的科研训练?
  15. js判断一个元素是否在数组中存在
  16. 官方免费的正版Xshell,人人都可以马上拥有
  17. 2022-2027年中国紫苏行业市场全景评估及发展战略规划报告
  18. 关于89 jb2上的自动设置按键唤醒系统的功能以及L版本上设置唤醒键
  19. 什么是VLAN?为什么要划分VLAN?
  20. 计算机启动报警,我台式电脑开机报警四声什么問題?

热门文章

  1. 酷!不用外挂,Win7资源监视器查看QQ好友IP
  2. www.javaei.com网站建设手记——(15)h2p被开源中国收录为开源项目
  3. 很酷的一套 Flex/AIR 皮肤 (KingnareStyle)
  4. 直线电机原理动画_每周一品 · 直线电机(Linear Motor)中的磁性材料
  5. c语言 双线程,如何用C语言实现多线程
  6. 动态给a标签赋值_怎样利用Excel制作抖音上的心形动态函数图像?
  7. 过河问题matlab建模,matlab三对夫妻过河问题
  8. java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
  9. 实用计算机相关日语词汇,计算机相关日语词汇整理2
  10. 空值替换为0_「Excel」是零值还是空值,你可以自由掌控