12 2020 档案

摘要:数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。 常用的数据结构可根据数据访问的特点分为线性结构和非线性结构。线性结构包括常见的链表、栈 阅读全文
posted @ 2020-12-31 14:16 风平浪静如码 阅读(756) 评论(0) 推荐(0) 编辑
摘要:前言: Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多 阅读全文
posted @ 2020-12-30 15:58 风平浪静如码 阅读(1120) 评论(0) 推荐(0) 编辑
摘要:相信有很多同学在面对多线程代码时都会望而生畏,认为多线程代码就像一头难以驯服的怪兽,你制服不了这头怪兽它就会反过来吞噬你。 夸张了哈,总之,多线程程序有时就像一潭淤泥,走不进去退不出来。 可这是为什么呢?为什么多线程代码如此难以正确编写呢? 从根源上思考 关于这个问题,本质上是有一个词语你没有透彻理 阅读全文
posted @ 2020-12-29 14:32 风平浪静如码 阅读(317) 评论(0) 推荐(0) 编辑
摘要:什么是二叉树 在计算机科学中二叉树,binary tree,是一种数据结构,在该数据结构中每个节点最多有两个子节点,如图所示: 二叉树的定义就是这样简单,但这种看起来很简单的数据结构遍历起来一点都不简单。 如何遍历二叉树 所谓遍历简单的讲就好比在迷宫中寻宝,宝物就藏在某一个树节点当中,但我们并不知道 阅读全文
posted @ 2020-12-28 14:43 风平浪静如码 阅读(750) 评论(0) 推荐(1) 编辑
摘要:随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。 为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更多的场景中。 阅读全文
posted @ 2020-12-27 17:03 风平浪静如码 阅读(282) 评论(0) 推荐(0) 编辑
摘要:多进程 历史上最早出现也是最简单的一种并行处理多个请求的方法就是利用多进程。 比如在Linux世界中,我们可以使用fork、exec等系统调用创建多个进程,我们可以在父进程中接收用户的连接请求,然后创建子进程去处理用户请求,就像这样: 这种方法的优点就在于: 编程简单,非常容易理解 由于各个进程的地 阅读全文
posted @ 2020-12-24 14:38 风平浪静如码 阅读(210) 评论(0) 推荐(0) 编辑
摘要:一切要从CPU说起 你可能会有疑问,讲多线程为什么要从CPU说起呢?原因很简单,在这里没有那些时髦的概念,你可以更加清晰的看清问题的本质。 CPU并不知道线程、进程之类的概念。 CPU只知道两件事: 从内存中取出指令 执行指令,然后回到1 你看,在这里CPU确实是不知道什么进程、线程之类的概念。 接 阅读全文
posted @ 2020-12-23 14:52 风平浪静如码 阅读(343) 评论(1) 推荐(0) 编辑
摘要:什么是延迟任务? 顾明思议,我们把需要延迟执行的任务叫做延迟任务。 延迟任务的使用场景有以下这些: 红包 24 小时未被查收,需要延迟执退还业务; 每个月账单日,需要给用户发送当月的对账单; 订单下单之后 30 分钟后,用户如果没有付钱,系统需要自动取消订单。 等事件都需要使用延迟任务。 延迟任务实 阅读全文
posted @ 2020-12-22 15:04 风平浪静如码 阅读(251) 评论(0) 推荐(0) 编辑
摘要:这篇文章是基于Linux虚拟机安装的,所需要的资源环境还是相对复杂。而我们在日常学习Kubernetes的过程中,其实是更希望在开发电脑上直接部署一个简单的Kubernetes环境,这样学习起来会更加方便。今天的内容就给大家介绍下如何在Mac开发电脑上安装一个基于MiniKube的Kubernete 阅读全文
posted @ 2020-12-21 13:59 风平浪静如码 阅读(219) 评论(0) 推荐(0) 编辑
摘要:一般的面试题 对于HashMap,我们再熟悉不过了,日常开发最常用的Java集合类就是它了,而且面试的时候对于HashMap知识点基本是必问的,就拿我之前的面试经历来看,问的最多的无非是这么几个: HashMap的底层存储结构是怎样的啊? 线程安全吗?为什么不安全? 1.7和1.8版本的HashMa 阅读全文
posted @ 2020-12-20 14:18 风平浪静如码 阅读(272) 评论(0) 推荐(0) 编辑
摘要:synchronized关键字引入 我们知道,在多线程程序中往往会出现这么一个情况:多个线程同时访问某个线程间的共享变量。来举个例子吧: 假设银行存款业务写了两个方法,一个是存钱 store() 方法 ,一个是查询余额 get() 方法。假设初始客户小明的账户余额为 0 元。(PS:这个例子只是个  阅读全文
posted @ 2020-12-18 14:44 风平浪静如码 阅读(215) 评论(0) 推荐(0) 编辑
摘要:前言 后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过F5或者任何代理的方式就可以很好的解决。后文描述的主要是针对有状态的服务进行分析。服务端进行状态维护主要是通过磁盘或内存进行保存,比如MySQL数据库,redis等内存数据库。除了这两种类型 阅读全文
posted @ 2020-12-17 14:26 风平浪静如码 阅读(177) 评论(0) 推荐(0) 编辑
摘要:前言 为什么要学习数据结构和算法,这里我举个简单的例子。 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速 阅读全文
posted @ 2020-12-16 14:33 风平浪静如码 阅读(450) 评论(0) 推荐(0) 编辑
摘要:今天来分享几个MySQL常见的SQL错误(不当)用法。我们在作为一个初学者时,很有可能自己在写SQL时也没有注意到这些问题,导致写出来的SQL语句效率低下,所以我们也可以自省自检一下。 常见SQL错误用法 1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面 阅读全文
posted @ 2020-12-14 16:06 风平浪静如码 阅读(70) 评论(0) 推荐(0) 编辑
摘要:前言 最近公司在代码评审时,在使用DATE_FORMAT函数的问题上有了点不同的观点。具体DATE_FORMAT对索引会不会产生影响?哪种情况下会产生影响呢?周末无事,通过mysql的执行计划测试一波。 使用 explain 分析 执行计划就是展示Mysql如何执行一条Sql语句,使用 EXPLAI 阅读全文
posted @ 2020-12-11 14:49 风平浪静如码 阅读(1416) 评论(0) 推荐(0) 编辑
摘要:前言 Tomcat,这只3脚猫,大学的时候就认识了,直到现在工作中,也常会和它打交道。这是一只神奇的猫,今天让我来抽象你,实现你! Tomcat是非常流行的Web Server,它还是一个满足Servlet规范的容器。那么想一想,Tomcat和我们的Web应用是什么关系? 从感性上来说,我们一般需要 阅读全文
posted @ 2020-12-10 14:30 风平浪静如码 阅读(252) 评论(0) 推荐(0) 编辑
摘要:一、HTTP 协议 在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。 1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。 HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单 阅读全文
posted @ 2020-12-09 14:48 风平浪静如码 阅读(342) 评论(1) 推荐(0) 编辑
摘要:本篇文章给大家分享平时开发中总结的一点小技巧!在工作中写过Java程序的朋友都知道,目前使用Java开发服务最主流的方式就是通过Spring MVC定义一个Controller层接口,并将接口请求或返回参数分别定义在一个Java实体类中,这样Spring MVC在接收到Http请求(POST/GET 阅读全文
posted @ 2020-12-08 14:11 风平浪静如码 阅读(258) 评论(0) 推荐(0) 编辑
摘要:背景 在互联网行业,线上服务的升级更新可谓家常便饭。据统计,在过去的一个季度中闲鱼工程师们执行了千余次发布,总计更新的代码数量超过百万行。 这些发布中,有一些可能只更新了几行代码,而有一些可能执行了整个集群的迁移升级。而无论这些变更的影响面有多大,我们都必须保证线上服务的可用性,用户无感知。本文将以 阅读全文
posted @ 2020-12-06 14:42 风平浪静如码 阅读(138) 评论(0) 推荐(0) 编辑
摘要:面试官Q1:可以手写一个ArrayList的简单实现吗? 我们都知道ArrayList是基于数组实现,如果让你实现JDK源码ArrayList中add()、remove()、get()方法,你知道如何实现吗?这一节,我们不看源码,我们想想如何简单的实现ArrayList几个基本方法? 确定数据结构 阅读全文
posted @ 2020-12-04 14:40 风平浪静如码 阅读(129) 评论(0) 推荐(0) 编辑
摘要:监控系统是运维体系乃至整个软件产品生命周期中最重要的一环,完善的监控可以帮助我们事前及时发现故障,事后快速追查定位问题。而在以微服务为代表的云原生架构体系中,系统分为多个层次,服务之间调用链路复杂,系统中需要监控的目标非常多,如果没有一个完善的监控系统就难以保证整体服务的持续稳定。 监控对象及分层 阅读全文
posted @ 2020-12-03 14:03 风平浪静如码 阅读(573) 评论(0) 推荐(0) 编辑
摘要:请看图: 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数 阅读全文
posted @ 2020-12-02 13:51 风平浪静如码 阅读(125) 评论(0) 推荐(0) 编辑
摘要:作者:日拱一兵 来源:微信公众号 链接:https://mp.weixin.qq.com/s/ASFv-H9OqfMMMwOkv5dDzA Java SDK 为什么要设计 Lock 曾几何时幻想过,如果 Java 并发控制只有 synchronized 多好,只有下面三种使用方式,简单方便 publ 阅读全文
posted @ 2020-12-01 15:42 风平浪静如码 阅读(140) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示