一、介绍在实际的软件项目开发过程中,我可以很负责任的跟大家说,如果你真的实际写代码的时间过5年了,你对增删改查这类简单的功能需求开发,可以说已经完全写吐了,至少我就是这种类型的。但是呢,不可否认,绝大多数的软件功能,向下追随到最基本的单元,也基本都是单表的增、删、改、查!只是随着用户需求不断增多,原来可能一个张单表就可以搞定的事情,现在可能需要多张表,或者多个库才能搞定,代码层就像堆积木一样,越...
2022-09-28 11:25:56 4648浏览 0点赞 0回复 0收藏
前段时间的时候,阿粉给大家在一篇文章中讲了关于如何安装RabbitMQ,以及如何在Windows下安装RabbitMQ的文章,但是后台就有粉丝说,为啥不讲RabbitMQ在Linux下的安装呢,我在Linux下安装了好几次都失败了,然后我还不知道是什么问题。于是阿粉专门整了个小小的云服务器,就打算在自己的云服务器上装上RabbitMQ并且给大家详细说一下安装的命令。RabbitMQ安装前准备如果有条件的同胞们,可以在阿里云和华为云上租个服务器,最低配...
2022-09-28 11:25:39 5373浏览 0点赞 0回复 0收藏
前段时间阿粉的一个朋友和阿粉吃饭,在吃饭的时候和阿粉疯狂的吐槽面试官,说面试官问的问题都是些什么问题呀,我一个干了三四年的开发,也不说问点靠谱的,阿粉很好奇,问题问完基础的,一般不都是根据你自己的简历进行提问么?而接下来他说的出来的问题,阿粉表示,阿粉需要继续学习了。Mybatis是什么?说到这个,读者大人们肯定心想,阿粉是在开玩笑么?你一个Java程序员,你不知道Mybatis是啥么?不就是个持久层的框架么,...
2022-09-28 11:25:22 4348浏览 0点赞 0回复 0收藏
一、介绍昨天介绍了API接口设计token鉴权方案,其实token鉴权最佳的实践场景就是在单点登录系统上。在企业发展初期,使用的后台管理系统还比较少,一个或者两个。以电商系统为例,在起步阶段,可能只有一个商城下单系统和一个后端管理产品和库存的系统。随着业务量越来越大,此时的业务系统会越来越复杂,项目会划分成多个组,每个组负责各自的领域,例如:A组负责商城系统的开发,B组负责支付系统的开发,C组负责库存系统的开...
2022-09-28 11:25:04 4716浏览 0点赞 0回复 0收藏
一、摘要在实际的业务开发过程中,我们常常会碰到需要与第三方互联网公司进行技术对接,例如支付宝支付对接、微信支付对接、高德地图查询对接等等服务,如果你是一个创业型互联网,大部分可能都是对接别的公司api接口。当你的公司体量上来了时候,这个时候可能有一些公司开始找你进行技术对接了,转变成由你来提供api接口,那这个时候,我们应该如何设计并保证API接口安全呢?二、方案介绍最常用的方案,主要有两种:token方案...
2022-09-28 11:24:47 5208浏览 0点赞 0回复 0收藏
一、介绍公司最近在搞服务分离,数据切分的工作,因为订单和订单项表的数据量实在过大,而且每天都是以50万的数据量在增长,基于现状,项目组决定采用分库的方式来解决当前遇到的问题。那具体怎么切分呢?分库的策略其实还比较简单,主要是要确定分片的字段和策略。最开始是想通过主键ID的奇、偶数来分两个库,order1库主要用于存储奇数的ID,order2库主要用于存储偶数的ID。但是这种切分,局限性非常大,因...
2022-09-28 11:24:10 5300浏览 0点赞 0回复 0收藏
Hello大家好,我是阿粉,前面有篇文章给大家介绍了动态规划,并通过两个案例给大家演示,后台很多小伙伴也提供了很多建议,没看过的小伙伴可以去看下什么是动态规划——从青蛙跳台阶开始了解。今天再给大家介绍两个案例,帮助大家更好的掌握也顺便回顾一下。案例1问:给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小,其中arr[m][n]表示具体的值。每...
2022-09-28 11:23:51 5045浏览 0点赞 0回复 0收藏
大家看到这个标题的时候,是不是感到有些惊讶,为什么阿粉能够这么敏锐,这都发现同事是培训出来的,但是还不好戳穿人家,毕竟人家面试都能通过,说明了技术是不是已经上升到这个水平了,阿粉今天就来给大家说说这是怎么一回事。兄弟,这块代码应该怎么写?阿粉相信大家肯定都遇到过这种情况,当一个同事新入职之后,一般领导给出的活都是第一天安装环境,第二天熟悉数据库和代码,第三天一般还是会让你熟悉公司的业务逻辑,可...
2022-09-28 11:17:48 3320浏览 0点赞 0回复 0收藏
一、介绍数据库连接是一项非常关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。记得之前做的一个项目,当时的应用程序配置的c3p0数据库连接池,最大允许的连接数是500,结果上线没多久,并发量直接上来了,导致大量的数据插入失败,当晚的心情可想而知~从那一次事故之后,让我对应用程序的数据库连接数有了一次深刻的认识,为了防止再次栽跟头,特意抽了一个时间来编写程序测试案例,用于测试各个...
2022-09-27 14:25:46 4401浏览 0点赞 0回复 0收藏
之前还记得阿粉给大家讲了关于RabbitMQ的经典实用还有整合到SpringBoot项目中的案例么?最近一段时间,阿粉的朋友问我说,公司安排他让他研究一下如何在前端实现对RabbitMQ发送消息的实时监控,而这也涉及到了阿粉的知识盲区,于是阿粉就开始了学习的道路,接下来就跟着阿粉一起来学习一下这关于如何在前端监听到RabbitMQ发送消息,以便实现自己项目中的功能吧。RabbitMQ支持的协议stomp协议stomp协议即Simple(orStreaming)Text...
2022-09-27 14:24:36 7734浏览 0点赞 0回复 0收藏
Hello大家好,我是阿粉,动态规划(DynamicProgramming),简称DP相信大家在日常的工作或者学习的过程中都遇到过这个词,而且动态规划也是面试过程中最喜欢被问到的题目,阿粉在经历的不多的几场面试中都被问到了,实在是苦不堪言,不过好在阿粉还是有学过的,一些简单的套路阿粉还是懂的。下面就从一个很多人应该都不陌生的题目讲起。案例1问:一只青蛙一次可以跳上1级台阶,也可以跳上2级,求该青蛙跳上一个n级的台阶...
2022-09-27 14:23:57 5941浏览 0点赞 0回复 0收藏
一、介绍在日常的web开发中,熟悉java的同学一定知道,SpringMVC可以说是目前最流行的框架,之所以如此的流行,原因很简单:编程简洁、上手简单!我记得刚开始入行的时候,最先接触到的是Struts1+Hibernate+Spring来web系统的整体开发框架,简单的描述一下当时的编程心情:超难用,各种配置项很多,而且不容易快速入手!之后,新的项目换成了Struts2+hibernate+spring来作为主体开发框架,Struts2...
2022-09-27 14:23:40 4257浏览 0点赞 0回复 0收藏
Hello大家好,相信大家跟阿粉一样,在成为卓越的Java程序员的路上从未停止过学习,作为一个Java程序员还有很多我们需要学习的东西,特别是在这样一个技术快速发展的时期可能昨天还在流行的技术,转眼就已经落后了。那么在2021年已经接近尾声的时候有哪些技术我们可以继续不断的学习呢?JDK源码毫无疑问作为Java程序员JDK的源码是我们一直需要不断学习的一个技能。最新发布的版本是在今年3月份发布的JavaSE16,前两个较成熟的版...
2022-09-27 14:01:13 4417浏览 0点赞 0回复 0收藏
大家都对大数据感兴趣,但是大家都没有想去如何实践到地方,如何落实去学习Hadoop,我们学习任何一门技术的时候,都不用想,上来肯定是去安装,然后去实践,不得不说,现在你去网上搜索,如何安装Hadoop,那很多出来的都是从Unbutu系统下如何安装,很多也都讲解的不是很清楚,阿粉也比较想学习,所以就准备了如何安装Hadoop的Linux的教程,大家上手就能学习。阿粉就开始给大家写一个安装Hadoop的教程。准备工作1.我们首先可以去...
2022-09-27 14:00:37 2959浏览 0点赞 0回复 0收藏
阿粉不知道大家面试的时候,有没有被面试官问到,我看你简历上写了了解一点某某某,你说一下这块的内容吧?当我们听到这段话的时候,是不是感觉非常的熟悉,对,就是这么熟悉,因为有很多面试官看你是Java开发的时候,问过了Java相关的知识,既然看到了你自己敢在自己的简历上面写了解一点其他的技术的时候,都会很“热心”的问候一波,而阿粉的朋友,就被简历上写的了解大数据的相关内容被疯狂diss了一波,阿粉顺便也给大家说...
2022-09-27 14:00:25 3839浏览 0点赞 0回复 0收藏
一、介绍序列化和反序列化几乎是工程师们每天都需要面对的事情,尤其是当前流行的微服务开发。光看定义上,对于初学者来说,可能很难一下子理解序列化的意义,尤其是面对这种特别学术词语的时候,内心会不由自主的发问:它到底是啥,用来干嘛的?如果用通俗的方式来理解,你可以用变魔术的方式来理解它,就好比你想把一件铁器从一个地方运往到另一个地方,在出发的时候,通过魔术方式将这个东西融化成一桶铁水,当到达目的地之...
2022-09-27 13:58:02 4893浏览 0点赞 0回复 0收藏
相信大家在面试的时候,肯定很多人被问到HashMap,一般上来都是HashMap用过没有,说一下他的数据结构吧,但是阿粉的朋友去面试的时候,上来直接进入主题,HashMap在JDK7和JDK8中出现了变化,你知道都是哪些不一样的地方么?有什么优缺点么?JDK7的HashMap我们先说JDK7中的HashMap的数据结构,然后一会我们再去看JDK8中的HashMap的数据结构.我们也都知道JDK7中的HashMap的数据结构是一个数组加上链表的形式,也就是下面这副图,...
2022-09-27 13:56:26 3782浏览 0点赞 0回复 0收藏
●线程安全真的是线程的安全吗?●什么是Atomic?●实现一个计数器●AtomicInteger源码分析●AtomicLong和LongAdder谁更牛?●总结当我们谈论『线程安全』的时候,肯定都会想到Atomic类。不错,Atomic相关类都是线程安全的,在讲Atomic类之前我想再聊聊『线程安全』这个概念。线程安全真的是线程的安全吗?初看『线程安全』这几个字,很容易望文生义,这不就是线程的安全吗?其实不是,线程本身没有好坏,没有『安全的线程』和...
2022-09-27 13:56:08 4559浏览 0点赞 0回复 0收藏
一、介绍组合模式(CompositePattern),又叫部分整体模式,依据树形结构来组合对象,用来表示部分以及整体层次。组合模式一般用来描述整体与部分的关系,它将对象组织到树形结构中,最顶层的节点称为根节点,根节点下面可以包含树枝节点和叶子节点,树枝节点下面又可以包含树枝节点和叶子节点。如下图所示:在组合模式中,会把树枝节点和叶子节点认为是同一种数据类型(用同一接口定义),让它们具备一致行为。这样,整个树形...
2022-09-27 13:55:49 4134浏览 0点赞 0回复 0收藏
做Java的肯定都接触过Linux系统,那么很多时候我们在开发的过程中都是把我们项目打成一个jar包,或者是war包的形式,然后通过XFTP上传到我们服务器的指定目录,然后运行一端启动脚本,让我们的项目变得可以访问就像.shservice.shstart然后启动我们写好的sh的shell脚本。接下来我们就来学习一下关于Shell脚本是如何写出来的。Shell脚本Shell脚本是什么?Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等,也就...
2022-09-27 13:55:26 4678浏览 0点赞 0回复 0收藏