不简单的Java基本数据类型
认识Java中的基本数据类型Java中有8大基本数据类型,它的对应包装类型以及数据范围如下:基本数据类型名称封装数据类型名称所占字节数取值范围booleanBoolean1true/falsebyteByte1-128~127charCharacter20~65535shortShort2-3276
你真的会用Java8 Optional吗?
前言Java8之前我们在写代码的时候,经常会遇到返回null的情况,如果这种情况不加以判断,你就会碰到NullPointerException(NPE)。而在Java8中,Optional类型是一种更好的表示缺少返回值的形式。首先来看一段代码,这可能是以前大多数人的写法privatevoidgetI
对于Http Status Code,我有话说
现在很多项目都是web项目,前后端分离,唯一的交互就是通过restful接口,而当我们请求返回的时候,statuscode如何返回呢?首先介绍下常用的httpstatuscode有哪些。2XX(Success成功状态码)200-OK请求成功201-Created文档创建成功,比如新增一个user成功
我为什么要用kustomize来管理Kubernetes yaml应用?
Kustomize是为了解决k8syaml应用管理问题而生的一个工具,在1.14版本之后kubectl就集成了kustomize,而在这之前,我们则只能自己安装。可以在github上下载对应操作系统的包进行安装(https://github.com/kubernetes-sigs/kustomize
优先级队列(PriorityQueue)源码解析
什么是堆Java中的PriorityQueue采用的是堆这种数据结构来实现的,而存储堆采用的则是数组。二叉树当中,叶子节点全部在最底层,除了叶子节点外,每个节点都有左右两个子节点,这种二叉树就叫作满二叉树。如果叶子节点都在最底下两层,最后一层的叶子节点都靠左排列,并且除了最后一层,其他层的节点个数都
记住这些Kubernetes常用命令就够了
获取所有的namespacekubectlgetnamespace默认使用的是~/.kube/config这个配置文件,如果文件不再这个目录下可以通过--kubeconfigconfigFilePath指定https://kubernetes.io/docs/tasks/access-applica
嘿,我用Drone做CI
基于Drone来做CI/CD,个人感觉真的很棒,相对于业界老大哥jekins,我更喜欢drone,相比较而言,我觉得它主要有以下优势插件不需要额外管理基于yaml文件,易编写,配置可以进行版本管理可以根据不同的条件进行构建更人性化的UI界面对于我们后端的java项目而言,我们CI要做什么呢?CI流程
让你的k8s rolling update更稳
在使用K8Srollingupdate的时候,我同时使用JMeter不间断callAPI,就有少部分请求抛出了这个错误{"timestamp":"2019-12-02T07:33:47.120+0000","status":500,"error":"InternalServerError","mes
K8S中挂载目录引发的血案
在kubernetes中部署前端项目(使用nginx作为服务器)的时候,遇到了一个报错,报错信息如下2019/11/1902:16:31[emerg]1#1:open()"/etc/nginx/mime.types"failed(2:Nosuchfileordirectory)in/etc/ngin
面试官问你MongoDB复制集,你就这么和他吹!
何以高可用?我们以前用Mysql的时候,经常是一台服务器走天下,如果只是用于学习,是没有问题的,但是在生产环境中,这样的风险是很大的,如果服务器因为网络原因或者崩溃了,就会导致数据库一段时间了不可用,这样的体验很不好。那么应该怎么办呢?既然一台机器不行,我就多上几台机器总可以了吧,比如我上个两台,让
让你的SpringBoot一次build,到处运行
开发web项目的时候,我们一般会有多个环境(dev,beta,rc,production),然后每次使用maven打包的时候都要指定profilemvencleanpackage-Pbeta这样就可以将application-{profile}.properties打入jar包中。这也就意味着对于不
MongoDB使用技巧
范式化设计还是反范式考虑下这样的场景,我们的订单数据是这样的商品:{"_id":productId,"name":name,"price":price,}订单:{"_id":orderId,"user":userId,"items":[productId1,productId2,productId3
你知道wait/notify的这些知识吗?
在Java的Object类中有2个我们不怎么常用(框架中用的更多)的方法:wait()与notify()或notfiyAll(),这两个方法主要用于多线程间的协同处理,即控制线程之间的等待、通知、切换及唤醒。首先了解下线程有哪几种状态,Java的Thread.State((https://docs.
MongoDB初学者最常用的10个命令
1.登录mongodb以下命令可以用于登录mongodb数据库,但是需要保证用户你声明的数据库中存在对应的用户和密码mongo--host<hostName>--port<port>-u<username>-p<password>--authentic
RESTful资源命名最佳实践
在Rest中,数据的呈现方式叫做资源(Resource)。拥有强大而一致的REST资源命名策略,是最好的设计决策。一个资源可以是单个的也可以是一个集合。比如customers是一个集合,而customer是单个资源。我们可以定义customers这个集合的资源的URI是/customers,而单个c
揭秘,门面日志如何自动发现日志组件
commons-loggingcommons-logging是apache提供的一个通用的日志接口,是为了避免和具体的日志方案直接耦合的一种实现。通过commons-logging用户可以自己选择log4j或者jdk自带的logging作为具体实现。使用commons-logging的代码如下imp
写给新手的 github 设置指南
如果你的团队决定在github上管理项目代码,那么下面这些设置你一定要会。首先进入到仓库的Settings页面,左边会有菜单选项设置谁能提交代码设置成员添加你的team成员账号,这样他们才能向这个仓库提交代码设置默认分支开发过程中,我们并不直接向master提交分支,而是会新建一个开发分支devel
老大喊我用AOP记录下日志
老大喊我记录下API的操作日志,免得前端甩锅,主要记录新增,修改,删除等操作。我想了下就决定用AOP来实现这个功能。由于使用的是SpringBoot,所以首先应该在依赖中引入AOP包。<dependency><groupId>org.springframework.boot&
面试官:如何用LinkedHashMap实现LRU
上一篇文章分析了HashMap的原理,有网友留言想看LinkedHashMap分析,今天它来了。LinkedHashMap是HashMap的子类,在原有HashMap数据结构的基础上,它还维护着一个双向链表链接所有entry,这个链表定义了迭代顺序,通常是数据插入的顺序。LinkedHashMap结
再也不怕面试官问我Jdk8 HashMap了
上一篇文章中提到了ThreadLocalMap是使用开放地址法来解决冲突问题的,而我们今天的主角HashMap是采用了链表法来处理冲突的,什么是链表法呢?jdk8链表法在散列表中,每个“桶(bucket)”或者“槽(slot)”会对应一条链表,所有散列值相同的元素我们都放到相同槽位对应的链表中。jd