WinddSnow

WinddSnow

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

Java面试题12阿里Dubbo
什么是 dubboDubbo 是工作在 soa 面向服务分布式框架中的服务管理中间件。Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。 它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo 采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容。 Dubbo 使用的是缺省协议, 采用长连接和 ni...
Java面试题11SpringCloud
SOA 和微服务的区别?到 SOA 和微服务的区别, 那咱们先谈谈架构的演变 集中式架构 项目功能简单, 一个项目只需一个应用, 将所有功能部署在一起, 这样的架构好处是减少了部署节点和成本. 缺点: 代码耦合,开发维护困难, 无法水平扩展, 单点容错率低,并发能力差 垂直拆分架构 当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分: 优点:系统拆分实现了流量分担,解决了并发问题,可以针对不同模块进行优化, 方便水平扩展,负载均衡,容错率提高 缺点:系统间相互独立,会有很多重复开发工作,影响开发效率 分布式服务 当垂直应用越来越...
Java面试题10SpringBoot
SpringBoot 是什么是 Spring 的子项目,主要简化 Spring 开发难度,去掉了繁重配置,提供各种启动器,可以让程序员很快上手,节省开发时间. SpringBoot 的优点SpringBoot 对上述 Spring 的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。 版本锁定:解决是 maven 依赖版本容易冲突的问题,集合了常用的并且测试过的所有版本 使用了 Starter(启动器)管理依赖并能对版本进行集中控制,父工程带有版本...
Java面试题09SpringMVC框架
谈一下你对 SpringMVC 框架的理解SpringMVC 是一个基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻量级 Web框架,通过把 Model,View,Controller 分离,将 web 层进行职责解耦,把复杂的 web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 在我看来,SpringMVC 就是将我们原来开发在 servlet 中的代码拆分了,一部分由SpringMVC 完成,一部分由我们自己完成 SpringMVC 主要组件 前端控制器 DispatcherServlet :接收请求、响应结果,相当于转发器,有了Dispat...
Java面试题08Spring框架
Spring的两大核心是什么?谈一谈你对IOC的理解? 谈一谈你对DI的理解?谈一谈你对 AOP 的理解?Spring 的两大核心是:IOC(控制反转)和 AOP(面向切面编程) DI(依赖注入)IOC 的意思是控制反转,是指创建对象的控制权的转移,以前创建对象的主动权和时机是由程序员自己把控的,而现在这种权力转移到 Spring 容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用。最直观的表达就是,IOC 让对象的创建不用去 new 了,可以由 spring 根据我们提供的配置文件自动生产,我们需要对象的时候,直接从 Sprin...
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 方法。避免了单继承局限性,编程更加灵活,实现解耦。 实现 ...
avatar
WinddSnow
Simple is best.
FRIENDS
friendA friendB