传智播客
寒夕若梦
公众号:Java面试百分百,大家可以关注一下呀!
趁着年轻生猛,我要再和生活死磕几年。要么我就毁灭,要么我就铸就辉煌。如果有一天,你发现我在平庸面前低了头,那么请向我开炮。
展开
-
太难了之带你飞
“老师,我先复习一遍再去找工作吧!现在疫情当下听朋友说岗位也不多,我想再等等。” 这或许是很多同学的心声吧!不仅仅如此,还有“投了简历没有回复,有回复也只是‘您的简历我们已收到,晚点给您安排面试’,疫情期间知识点遗忘确实较多不知道从何抓起,电话面试、视频面试等远程形式的面试一面就乱语无伦次……”大抵也是不少同学的‘通病’吧! 针对于此,很多同学都感到彷徨,不知道干点啥,在家复习吧!说实话委实收...原创 2020-03-18 18:38:36 · 654 阅读 · 3 评论 -
关于Java并发编程的总结和思考
编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 为什么需要并发 并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(...原创 2020-02-19 14:36:16 · 267 阅读 · 0 评论 -
编写更好的 Java 单元测试的 7 个技巧
测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。 虽然有三种主要类型的软件测试:单元测试,功能测试和集成测试,但是在这篇博文中,我们将讨论开发人员级单元测试。在我深入讲述具体细节之前,让我们先来回顾一下这三种测试的详细内容。 软件开发测试的类型 单元测试用于测试各个代码组件,并确保代码...原创 2020-02-19 14:27:22 · 195 阅读 · 0 评论 -
Java 线程池的理论与实践
前段时间公司里有个项目需要进行重构,目标是提高吞吐量和可用性,在这个过程中对原有的线程模型和处理逻辑进行了修改,发现有很多基础的多线程的知识已经模糊不清,如底层线程的运行情况、现有的线程池的策略和逻辑、池中线程的健康状况的监控等,这次重新回顾了一下,其中涉及大量java.util.concurrent包中的类。本文将会包含以下内容: Java中的Thread与操作系统中的线程的关系 线程切换的...原创 2020-02-19 14:21:49 · 180 阅读 · 0 评论 -
Java Socket 编程原理及教程
对于JavaSocket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这样就有两个Socket了,客户端和服务端...原创 2020-02-19 14:16:07 · 345 阅读 · 0 评论 -
HashMap实现原理解读
HashMap是Java开发当中使用得非常多的一种数据结构,因为其可以快速的定位到需要查找到数据,其最快的速度可以达到O(1),最差的时候也可以达到O(n)。本文以Java8中的HashMap做为分析原型,因为不同的JDK版本中的HashMap,可能存在着底层实现上的不一样。 HashMap是通过数组存储所有的数据,每个元素所存放数组的下标,是根据该存储元素的key的Hash值与该数组的长度减去...原创 2020-02-19 11:32:22 · 179 阅读 · 0 评论 -
什么是分布式系统?
微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现,服务调用的分布式事务问题变的非常突出。分布式事务已经成为微服务落地最大的阻碍,也是最具挑战性的一个技术难题。 1. 什么是微服务化带来的分布式事务问题? 首先,设想一个传...原创 2020-02-19 11:21:37 · 572 阅读 · 0 评论 -
淘宝服务端高并发分布式架构演进之路
1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。 2. 基本概念 在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍: 分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tom...原创 2020-02-19 11:00:27 · 293 阅读 · 0 评论 -
JVM 深入解读
Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域,如图: 1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。 2、虚拟机栈:虚拟机栈是Java...原创 2020-02-18 21:02:38 · 247 阅读 · 0 评论 -
Java 线程池设计思想及源码实现
我相信大家都看过很多的关于线程池的文章,基本上也是面试的时候必问的,如果你在看过很多文章以后,还是一知半解的,那希望这篇文章能让你真正的掌握好 Java 线程池。 本文一大重点是源码解析,同时会有少量篇幅介绍线程池设计思想以及作者 Doug Lea 实现过程中的一些巧妙用法。本文还是会一行行关键代码进行分析,目的是为了让那些自己看源码不是很理解的同学可以得到参考。 线程池是非常重要的工具,如果...原创 2020-02-18 21:00:08 · 241 阅读 · 0 评论 -
快手面试题目
快手高开及以上职级面试 是没有笔试或者机试的,所以从第一轮开始 就是直接面对面试官。 一轮 主要考察对Java基础的理解和深入程度。 Spring 原理,Spring IOC、AOP。 这个问题 最好可以多说一点,比如 对于IOC,不妨把Bean 如何加载、如何初始化以及如何注册到IOC容器中的详细过程说一下, 涉及BeanDefinition、BeanFactory也深入细节聊一下...原创 2020-02-18 20:58:09 · 1683 阅读 · 4 评论 -
Zookeeper超详细的面试题
1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所连接的zoo...转载 2020-02-18 20:57:12 · 412 阅读 · 0 评论 -
为什么需要消息队列?使用消息队列有什么好处?
一、消息队列的特性 业务无关,一个具有普适性质的消息队列组件不需要考虑上层的业务模型,只做好消息的分发就可以了,上层业务的不同模块反而需要依赖消息队列所定义的规范进行通信。 FIFO,先投递先到达的保证是一个消息队列和一个buffer的本质区别。 容灾,对于普适的消息队列组件来说,节点的动态增删和消息的持久化,都是支持其容灾能力的重要基本特性。当然,这个特性对于游戏服务器中大部分应用中的消息...原创 2020-02-18 20:55:31 · 686 阅读 · 0 评论 -
各个消息队列的属性对比
本文将从,Kafka、RabbitMQ、ZeroMQ、RocketMQ、ActiveMQ 17 个方面综合对比作为消息队列使用时的差异。 一、资料文档 Kafka:中。有kafka作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少。没有专门写zeromq的书,网上的资料多是一些代码的实现和简单介绍。rocketmq:少。没有专门写rocketm...原创 2020-02-18 20:53:42 · 396 阅读 · 0 评论 -
SpringCloud总结
首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟。 什么是Spring cloud 构建分布式系统不需要复杂和容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快...原创 2020-02-18 20:52:10 · 529 阅读 · 0 评论 -
Redis知识点整理
原创 2020-02-18 20:44:17 · 230 阅读 · 0 评论 -
Docker详解
一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。 与传统虚拟化技术相比,它的优势在于: (1)与宿主机使用同一个内核...原创 2020-02-18 20:39:00 · 512 阅读 · 0 评论 -
为什么微服务一定要有网关?
一、什么是服务网关 二、为什么需要服务网关 三、服务网关技术选型 1、总体流程 2、引入网关的注意点 3、服务网关基本功能 4、技术选型 1 什么是服务网关 服务网关 = 路由转发 + 过滤器 1、路由转发:接收一切外界请求,转发到后端的微服务上去; 2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校...原创 2020-02-18 20:25:06 · 182 阅读 · 0 评论 -
Elasticsearch面试篇
1、elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以 及一些调优手段 。 面试官 :想了解应聘者之前公司接触的ES使用场景、规模,有没有做过比较大规模的索引设计、规划、调优。 解 答 : 如实结合自己的实践场景回答即可。 比如:ES集群架构13个节点,索引根据通道不同共20+索引,根据日 期,每日递增20+,索引:10分片,每日递增1亿+...原创 2019-10-23 20:51:45 · 2550 阅读 · 2 评论