WinddSnow

WinddSnow

所有的如果,都没有意义。

Java面试题07Mybatis框架
谈一谈你对 Mybatis 框架的理解MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 在 mybatis 中,${} 和 #{} 的区别是什么? #{} 是占位符,预编译处理,${}是字符串替换。 Mybatis 在处理#{}时,会将 sql 中的#{...
Java面试题06数据库
连接查询 左连接-(左外连接)以左表为基准进行查询,左表数据会全部显示出来,右表 如果和左表匹配 的数据则显示相应字段的数据,如果不匹配,则显示为 NULL; 右连接-(右外连接)以右表为基准进行查询,右表数据会全部显示出来,右表 如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为 NULL; 聚合函数SQL 中提供的聚合函数可以用来统计、求和、求最值等等。 COUNT:统计行数量 SUM:获取单个列的合计值 AVG:获取某个列的平均值 MAX:获取列的最大值 MIN:获取列的最小值 SQL 关键字 分页-MySQL 的分页关键词 limitSELECT * FROM ...
Java面试题05Web
TCP 与 UDP 区别?TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于 IP 的传输层协议。 UDP 是 User Datagram Protocol 的简称,中文名是用户数据报协议,是 OSI 参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 TCP 和 UDP 都是来自于传输层的协议。传输层位于应用层和网络层之间,负责位于不同主机中进程之间的通信。 TCP 基于连接 UDP 无连接 TCP 要求系统资源较多,UDP 较少 TCP 保证数据正确性,UDP 可能丢...
Java面试题04JVM
JDK1.8 JVM 运行时内存 程序计数器:线程私有的(每个线程都有一个自己的程序计数器), 是一个指针. 代码运行, 执行命令. 而每个命令都是有行号的,会使用程序计数器来记录命令执行到多少行了.记录代码执行的位置 Java 虚拟机栈:线程私有的(每个线程都有一个自己的 Java 虚拟机栈). 一个方法运行, 就会给这个方法创建一个栈帧, 栈帧入栈执行代码, 执行完毕之后出栈(弹栈)存引用变量,基本数据类型 本地方法栈:线程私有的(每个线程都有一个自己的本地方法栈), 和 Java 虚拟机栈类似, Java 虚拟机栈加载的是普通方法,本地方法加载的是 native 修饰的方法.nat...
Java面试题03多线程
什么是线程?线程和进程的区别?线程:是进程的一个实体,是 cpu 调度和分派的基本单位,是比进程更小的可以独立运行的基本单位。 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位。特点:线程的划分尺度小于进程,这使多线程程序拥有高并发性,进程在运行时各自内存单元相互独立,线程之间 内存共享,这使多线程编程可以拥有更好的性能和用户体验。 创建线程有几种方式 继承 Thread 类并重写 run 方法创建线程,实现简单但不可以继承其他类 实现 Runnable 接口并重写 run 方法。避免了单继承局限性,编程更加灵活,实现解耦。 实现 ...
Java面试题02集合相关
常见的数据结构常用的数据结构有:数组,栈,队列,链表,树,散列,堆,图等 数组是最常用的数据结构,数组的特点是长度固定,数组的大小固定后就无法扩容了 ,数组只能存储一种类型的数据 ,添加,删除的操作慢,因为要移动其他的元素。 栈是一种基于先进后出(FILO)的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。 队列是一种基于先进先出(FIFO)的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它按照先进先出的原则存储数据,...
Java面试题01基础
Java8大基本类型和包装类byte、short、int、long、float、double、boolean、charByte Short Integer Long Float Double Boolean Character 面向对象的特征:封装、继承、多态、抽象。封装:就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性。 继承:子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提高了代码的复用性。 多态:...
MySQL优化
先言 不要听信你看到的关于优化的“绝对真理”,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设。 具体业务场景的不同,使用的MySQL服务版本不同,都会使得优化方案的制定也不同。 数据库任何操作都需要慎之又慎,即使所谓优化,也需要尽可能组织涉及到的所有业务部门具体商议,非常有可能,对你的业务来说是优化,却会影响他人业务! 切记,你需要清楚的知道,你的操作所带来的一切结果,测试环境不等于生产环境,风险操作,备份先行。 优化有风险,涉足需谨慎! 优化可能带来的问题 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统! 优化手段有很大的风险,一定要意识到...
RabbitMQ
RabbitMQ微服务通信微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。-Feign调用 异步通讯:就像发邮件,不需要马上回复 -消息队列两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。 事件模式 在事件模式中,支付服务是事件发布者(publisher),在支付完成后只需要发布一个支付成功的事件(event),事件中带上订单id。 订单服务和物流服务是事件订阅者(Consumer),订阅支付成功的事件,监听到事件后完成自己业务即可。 为了解除事件发布者与订阅者之间的耦合,两者并不...
ELK搜索
ELK技术栈 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据-elasticsearch底层是基于lucene来实现的 以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch 正向索引和倒排索引正向索引 用户搜索数据,条件是title符合"%手机%" 逐行获取数据,比如id为1的数据 判断数据中的title...
avatar
WinddSnow
Simple is best.
FRIENDS
friendA friendB