Java架构
Bertha wang
这个作者很懒,什么都没留下…
展开
-
java中的内存模型
概述Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Java同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型。究竟什么是内存模型?内存模型描述了程序中各个变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和...原创 2019-11-20 10:50:58 · 177 阅读 · 0 评论 -
Java中的锁深入理解
Java中的锁常见的锁有synchronized、volatile、偏向锁、轻量级锁、重量级锁1、synchronizedsynchronized是并发编程中接触的最基本的同步工具,是一种重量级锁,也是java内置的同步机制,首先我们知道synchronized提供了互斥性的语义和可见性,那么我们可以通过使用它来保证并发的安全。synchronized三种用法:对象锁当使用synchr...原创 2019-11-07 16:49:26 · 175 阅读 · 0 评论 -
SpringMVC详解(三)------基于注解的入门实例
目录1、在 web.xml 文件中配置前端处理器2、在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器3、编写 Handler4、编写 视图 index.jsp5、在浏览器中输入:http://localhost:8080/SpringMVC_03/hello前两篇博客我们讲解了基于XML 的入门实例,以及SpringMVC运行的详细流程。但是我们发现基于...原创 2019-10-31 13:42:02 · 146 阅读 · 0 评论 -
SpringMVC讲解(二)------详细架构
目录1、SpringMVC 详细介绍2、SpringMVC 处理请求流程3、配置前端控制器4、配置处理器适配器5、编写 Handler5、配置处理器映射器6、配置视图解析器7、DispatcherServlet.properties通过这篇博客我们详细讲解一下SpringMVC 编写的好处1、SpringMVC 详细介绍通过入门实例,我们大概知道 SpringMVC 的作用,...原创 2019-10-31 12:03:37 · 182 阅读 · 0 评论 -
SpringMVC详解(一)------入门实例
目录1、什么是 SpringMVC ?2、创建 web 工程,并导入相应的 jar 包。3、新建 SpringMVC 全局配置文件4、在 web.xml 文件中配置前端过滤器 5、编写处理器 Handler6、在 springmvc.xml 文件中配置 Handler,处理器映射器,处理器适配器,以及试图解析器 7、在 /WEB-INF/view 目录下创建 index.jsp ...原创 2019-10-31 11:26:04 · 175 阅读 · 0 评论 -
Spring中ioc的实现原理
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一.对Ioc的分析1.1、IoC是什么 Ioc—Inversion of Control,...原创 2019-10-29 10:27:34 · 158 阅读 · 0 评论 -
微服务架构
今日总结了一下关于微服务架构的知识目录如下一、微服务架构介绍二、出现和发展三、传统开发模式和微服务的区别四、微服务的具体特征五、SOA和微服务的区别六、如何具体实践微服务七、常见的微服务设计模式和应用八、微服务的优点和缺点九、思考:意识的转变一、微服务架构介绍微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中...原创 2019-10-24 16:34:51 · 244 阅读 · 1 评论 -
Redis系列二:redis集群高可用
Redis集群的概念: RedisCluster是redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当一个服务挂了可以快速的切换到另外一个服务,当遇到单机内存、并发等瓶颈时,可使用此方案来解决这些问题一、分布式数据库概念分布式数据库把整个数据按分区规则映射到多个节点,即把数据划分到多个节点上,每个节点负责整体数据的一个子集。比如我们库有900条用...原创 2019-10-22 16:23:43 · 194 阅读 · 0 评论 -
Redis系列一:redis主从复制和哨兵
一、Redis主从复制主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性1. 主从复制的相关操作a,配置主从复制方式一、新增redis6380.conf, 加入 slaveof 192.168.152.128 6379, 在6379启动完后再启6380,完成配置;****b,配置主从复制方式二、redis-server --slaveof 192.1...原创 2019-10-22 15:26:25 · 154 阅读 · 0 评论 -
Redis分布式锁解决方案
我们知道分布式锁的特性是排他、避免死锁、高可用。分布式锁的实现可以通过数据库的乐观锁(通过版本号)或者悲观锁(通过for update)、Redis的setnx()命令、Zookeeper(在某个持久节点添加临时有序节点,判断当前节点是否是序列中最小的节点,如果不是则监听比当前节点还要小的节点。如果是,获取锁成功。当被监听的节点释放了锁(也就是被删除),会通知当前节点。然后当前节点再尝试获取锁,如...原创 2019-10-21 16:53:01 · 181 阅读 · 0 评论 -
JVM 工作原理和流程
Java 详解 JVM 工作原理和流程<div class="article-info-box"> <div class="article-bar-top d-flex"> <span class="time">2015年08月04日 19:08:28</sp...转载 2019-10-18 10:59:03 · 141 阅读 · 0 评论 -
.NET面试题解析(07)-多线程编程与线程同步
关于线程的知识点其实是很多的,比如多线程编程、线程上下文、异步编程、线程同步构造、GUI的跨线程访问等等,本文只是从常见面试题的角度(也是开发过程中常用)去深入浅出线程相关的知识。如果想要系统的学习多线程,没有捷径的,也不要偷懒,还是去看专业书籍的比较好。常见面试题目:描述线程与进程的区别?为什么GUI不支持跨线程访问控件?一般如何解决这个问题?简述后台线程和前台线程的区别?说说常用的...原创 2019-10-17 13:58:44 · 264 阅读 · 0 评论 -
JAVA面试题合集 JAVA面试题
分布式数据库面试专题系列:分布式通讯面试专题系列:分布式限流面试专题系列:常见算法面试题:开发框架面试题:面试扩充:面试经验:BAT面试常问:性能优化面试题:想获取面试题集和更多学习资料可以扫描下方二维码或点击链接对标阿里P6架构师...原创 2019-10-15 11:45:19 · 471 阅读 · 0 评论 -
Java并发之CountDownLatch、Semaphore和CyclicBarrier
JAVA并发包中有三个类用于同步一批线程的行为,分别是CountDownLatch、Semaphore和CyclicBarrier。CountDownLatchCountDownLatch是一个计数器闭锁,通过它可以完成类似于阻塞当前线程的功能,即:一个线程或多个线程一直等待,直到其他线程执行的操作完成。CountDownLatch用一个给定的计数器来初始化,该计数器的操作是原子操作,即同时...原创 2019-10-14 16:52:32 · 146 阅读 · 0 评论 -
高并发架构面试题之缓存七
面试题redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?面试官心理分析这个也是线上非常常见的一个问题,就是多客户端同时并发写一个 key,可能本来应该先到的数据后到了,导致数据版本错了;或者是多客户端同时获取一个 key,修改值之后再写回去,只要顺序错了,数据就错了。而且 redis 自己就有天然解决这个问题的 CAS 类的乐观锁方案。面试题剖...原创 2019-09-30 16:56:22 · 161 阅读 · 0 评论 -
高并发架构面试题之缓存(六)
面试题了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?面试官心理分析其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。面试题剖析缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请...原创 2019-09-29 15:58:57 · 172 阅读 · 0 评论 -
高并发架构面试题之缓存(五)
面试题redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?面试官心理分析在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有 codis,或者twemproxy,都有。有一些 redis 中间件,你读写 redis 中间件,redis 中间件负责将你的...原创 2019-09-29 14:32:14 · 210 阅读 · 0 评论 -
高并发架构面试题之缓存(三)
面试题4.redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?面试官心理分析如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当然的认为写进 redis 的数据就一定会存在,后面导致系统各种 bug,谁来负责?常见的有两个问题:往 redis 写入的数据怎么没了?可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去...原创 2019-09-27 14:40:57 · 215 阅读 · 0 评论 -
Java 最常见19个模块面试题: 第四,五模块答案
Java 最常见19个模块面试题:第四,五模块答案反射什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:a. 在运行时判断任意一个对象所属的类。b.在运行时构造任意一个类的对象。c.在运行时判...原创 2019-09-12 14:16:30 · 423 阅读 · 0 评论 -
Java 最常见19个模块面试题: 第六模块答案
Java 最常见19个模块面试题:第六模块答案Java Web1 jsp 和 servlet 有什么区别?a.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)b.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。c.Servlet中没有内置对象,J...原创 2019-09-12 14:39:38 · 203 阅读 · 0 评论 -
Java 最常见19个模块面试题—第七模块答案
Java 最常见19个模块面试题—第七模块答案第七模块答案异常1. throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。2. final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表示...原创 2019-09-16 12:03:54 · 179 阅读 · 0 评论 -
Java 最常见19个模块面试题—第八模块答案
Java 最常见19个模块面试题—第八模块答案第八模块答案网络1. http 响应码 301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Move...原创 2019-09-16 13:47:47 · 203 阅读 · 0 评论 -
Java 最常见19个模块面试题—第九和第十模块答案
Java 最常见19个模块面试题—第九和第十模块答案九、设计模式说一下你熟悉的设计模式?参考:常用的设计模式汇总,超详细!简单工厂和抽象工厂有什么区别?简单工厂模式:这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。它由三种角色组成:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不...原创 2019-09-17 11:35:53 · 484 阅读 · 0 评论 -
Java 最常见19个模块面试题—第十一块答案
Java 最常见19个模块面试题—第十一块答案十一、Spring Boot / Spring Cloud1. 什么是 spring boot?在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖...原创 2019-09-17 12:48:30 · 261 阅读 · 0 评论 -
Java 最常见19个模块面试题—第十二块答案
Java 最常见19个模块面试题—第十二块答案十二、Hibernate1. 为什么要使用 hibernate?对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。hibernate...原创 2019-09-18 11:07:45 · 175 阅读 · 0 评论 -
Java 最常见19个模块面试题—第十四块答案
第十四块答案十四、RabbitMQ1. rabbitmq 的使用场景有哪些?①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。②. 多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在...原创 2019-09-18 13:22:20 · 212 阅读 · 0 评论 -
《Java最常见的19模块面试题及答案》目录
《Java 最常见的19个模块道面试题》的答案已经全部更新完了,有些答案是本人自己总结的,也有些答案是在网上搜集整理的。这些答案难免会存在一些错争议,仅供大家参考。如果发现错误还望大家包涵,赐教,谢谢~特意整理出这个目录,方便大家平时复习和收藏哈。希望正在准备面试的朋友们能顺顺利利找到自己心仪的工作,加油!!!Java最常见的19模块面试题:第一模块答案Java 最常见的 19个模块面试题:...原创 2019-09-20 10:28:06 · 259 阅读 · 0 评论 -
高并发面试题系类—如何保证消息队列的高可用?
面试题如何保证消息队列的高可用?面试官心理分析如果有人问到你 MQ 的知识,高可用是必问的。上一讲提到,MQ 会导致系统可用性降低。所以只要你用了 MQ,接下来问的一些要点肯定就是围绕着 MQ 的那些缺点怎么来解决了。要是你傻乎乎的就干用了一个 MQ,各种问题从来没考虑过,那你就杯具了,面试官对你的感觉就是,只会简单使用一些技术,没任何思考,马上对你的印象就不太好了。这样的同学招进来要是做...原创 2019-09-23 18:12:48 · 134 阅读 · 0 评论 -
高并发面试题系类---如何保证消息消费的幂等性?
面试题如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?面试官心理分析其实这是很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是 MQ 领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。面试题剖析回答这个问题,首先别听到重复消息这个事...原创 2019-09-24 11:17:24 · 347 阅读 · 0 评论 -
高并发架构之消息对列面试题集(一)
面试题为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西?不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从...原创 2019-09-24 15:33:12 · 138 阅读 · 0 评论 -
高并发架构面试题之搜索引擎(一)
面试题es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)?面试官心理分析在搜索这块,lucene 是最流行的搜索库。几年前业内一般都问,你了解 lucene 吗?你知道倒排索引的原理吗?现在早已经 out 了,因为现在很多项目都是直接用基于 lucene 的分布式搜索引擎—— ElasticSearch,简称为 es。而现在分布式搜索基本已经成为大部分互联网行业的 Java 系...原创 2019-09-25 17:23:03 · 677 阅读 · 0 评论 -
高并发架构面试题之搜索引擎(二)
面试题1es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。这样就很懵,每个用户第一次访问都...原创 2019-09-26 16:51:50 · 218 阅读 · 0 评论 -
Java 最常见19个模块面试题
Java 最常见19个模块面试题第一模块本篇是这19个模块题集中,第一部分“Java 基础”模块的题和答案。Java 基础JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供...原创 2019-09-10 22:07:43 · 407 阅读 · 0 评论