自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

转载 Java中当对象不再使用时,不赋值为null会导致什么后果 ?

本文将通过实例,深入JVM剖析“对象不再使用时赋值为null”这一操作存在的意义,供君参考。本文尽量不使用专业术语,但仍需要你对JVM有一些概念。前言许多Java开发者都曾听说过“不使用的对象应手动赋值为null“这句话,而且好多开发者一直信奉着这句话;问其原因,大都是回答“有利于GC更早回收内存,减少内存占用”,但再往深入问就回答不出来了。鉴于网上有太多关于此问题的误导,本文将通过实例,深入JVM剖析“对象不再使用时赋值为null”这一操作存在的意义,供君参考。本文尽量不使用专业术语,但仍需要你对J

2020-05-18 20:09:47 239

转载 红黑树是怎么实现的,看这篇真的就够了! 即将秃头的Java程序员

红黑树是一个基本平衡的二叉树,在查询方面,与二叉查找树思路相同;在插入方面,单次回溯不会超过2次旋转;在删除方面,单次回溯不会超过3次旋转!红黑树由来:在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees),后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑树,就此红黑树出现在...

2020-03-11 20:02:34 371

转载 首次公开!2020年金3,朋友面完阿里、腾讯、滴滴、美团后总结的Java文档

因为疫情的原因,大家在家耽误了很多时间,但是云面试也应运而生,现在就来跟着看看朋友面完阿里滴滴美团之后总结的Java文档那些在准备面试小伙伴们,快来,考点来啦一.阿里面试题自我介绍序列化的底层怎么实现的Synchronized的底层是怎么实现的Tomcat集群怎么保证同步了解nosql吗?redis?怎么解决项目中超卖的问题Int的范围问了项目中...

2020-03-11 17:22:23 308

转载 一文让你看懂Golang如何打造实时聊天系统

项目截图简介在本次课程中,我们来学习使用WebSocket来打造一个实时聊天系统。我们会从一下几个方面来进行学习:什么是websocket;Websocket与传统的HTTP协议有什么区别;Websocket有哪些优点;如何建立连接;如何维持连接;Golang实战项目—实时聊天系统;总结;什么是websocket?WebSocket协议是基于TCP的一种新的网络协议。它实现...

2020-03-11 17:21:39 566

转载 调研了10家公司的技术架构,我总结出了一套大数据平台的套路

近年来,随着IT技术与大数据、机器学习、算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘、识别、利用数据资产。近年来,随着IT技术与大数据、机器学习、算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘、识别、利用数据资产。如果缺乏有效的数据整体...

2020-03-10 14:43:40 562

原创 2020我们来谈谈“强软弱虚”四种引用

以前学习强软弱虚引用的时候,只是走马观花看看博客,并没有自己写代码去实践、去证明,导致每次看完后,过不了多久就忘了,后来下定决心,一定要自己敲敲代码,这样才能让印象更加深刻,古人云:纸上得来终觉浅,绝知此事要躬行。Java中的四种引用Java中有四种引用类型:强引用、软引用、弱引用、虚引用。Java为什么要设计这四种引用Java的内存分配和内存回收,都不需要程序员负责,都是由伟大的JV...

2020-03-09 17:46:29 311

转载 讲一讲JS中的高阶函数

“高阶函数”是个我们经常遇到的术语,英文名叫“higher-order function”,对于新手而言,还挺神秘。今天,我们就来探讨下高阶函数。定义接收函数作为参数或者返回函数的函数大白话就是:首先是个函数参数或者返回值是函数举例子我们这里举两个例子来覆盖下上文的定义,其中,例一为接收函数作为参数的高阶函数,例二为返回函数的高阶函数。例一:函数作为参数我们定义了一个叫evalu...

2020-03-09 15:41:17 189

原创 一名优秀的程序员,必备哪些要素

如何才能成为一名优秀的程序员呢?如今程序员是一个很吃香的行业,专业出身,大牛带进门,培训机构出身等等,仿佛只要进了这个行业就可以年薪十几万,程序员这么多,可是工资还是一层一层的划分,有人在十几万的年薪苦苦挣扎,有人在五六十万轻松自在程序员之间的差距在于技术,在于你写的代码,手底下才能见真章不是吗?那么成为一名优秀的程序员到底需要哪些要素呢?一:乐在学习,除了关注新的技术发展,也了解非技术...

2020-03-07 17:45:45 700

转载 学习Javascript之节流和防抖

前言本文1012字,阅读大约需要4分钟。总括: 本文通过实例介绍了什么是节流函数,什么是防抖函数。社会犹如一条船,每个人都要有掌舵的准备。正文节流函数和防抖函数相信很多人都在日常业务开发中使用过,其实不管是节流函数还是防抖函数都是一种简单的高阶函数,他们都是通过将一个关键的外部变量保存在外层作用域,通过对这个变量的判断和操作来决定是否调用回调函数。节流函数函数节流让指函数有规律的...

2020-03-07 14:11:14 188

原创 一文帮你理清JVM里面的弯弯绕绕

每一个Java 开发人员都知道字节码由JRE (Java运行时环境)执行。但许多人不知道JRE是Java虚拟机(JVM)的实现, 它负责分析字节码、解析并执行代码。作为一个开发人员了解JVM架构是非常重要的,因为它使我们能更高效的编写代码。在这篇文章中我们将更深入了解Java中的JVM架构以及JVM的各个组件。那么JVM到底是什么呢?虚拟机 是物理机器的一个软件实现。Java运行在VM上,实现...

2020-03-06 18:08:23 279

转载 为什么 Redis 的吞吐量能这么高

性能测试报告查看了下阿里云 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS(暂时忽略阿里对 Redis 所做的优化),我们从 Redis 的设计和实现来分析一下 Redis 是怎么做的Redis 的设计与实现其实 Redis 主要是通过三个方面来满足这样高效吞吐量的性能需求高效的数据结构多路复用 IO 模型事件机制高效的数据结构Redis 支持的几种高效的数据...

2020-03-06 16:24:10 2108

原创 Java程序员这项技能都没掌握,还是别去面试了

mysql 的索引(面试必问。因为大公司的数据规模一般都比较大,如果不走索引,带来的耗时是比较严重的)你有没有遇到过你自己创建的索引,你自己却用不到的窘境?你知道索引吗?索引具体采用的哪种数据结构呢?聚簇索引和非聚簇索引,在查询数据的时候有区别吗?其实有过阿里京东这些大厂面试经验的小伙伴们应该都有一种感觉这些大厂对于底层知识还是比较看重的,而我们却很少会或者说很少会再去想这些今天,我...

2020-03-05 16:49:17 285

转载 盘点下我用的顺手的那些工具!

摘要之前经常有朋友问我一些常用的工具,比如我的架构图是用什么工具做的?我的数据库是用什么工具设计的?今天给大家介绍下我用的顺手的工具!IntelliJ IDEA业界公认最好的Java开发工具,平时用的最多。可以安装大量插件丰富功能,开发前端应用也不在话下!X-shell一款强大的安全终端模拟软件,可以用来连接和管理远程Linux服务器。PostmanAPI接口调试工具,平时用来...

2020-03-05 15:05:31 442

原创 那些年我学Java踩过的坑

学Java的一路简直就是踩坑的一路,来来来让我们细数一下我这些年的血泪史菜鸟阶段,几乎天天在雷上度过。。。第一个:数据库表字段不能用sql字段,会报500错误。比如order 在select 时就会报错。第二个:在用int 类型做查询操作Controller层要写Integer类型,不然会报“”Request processing failed; nested exception is...

2020-03-04 17:46:04 348

转载 从架构师视角看是否该用Kotlin做服务端开发?

前言自从Oracle收购Sun之后,对Java收费或加强控制的尝试从未间断,谷歌与Oracle围绕Java API的官司也跌宕起伏。虽然Oracle只是针对Oracle JDK8的升级收费,并释放了OpenJDK一直开源这份善意,但是如果没有各个大非Oracle的JVM、JDK和众多其它基于JVM的语言,Oracle这份善意能维持到什么时候可不好说。大厂要从JVM和JDK的层面早做打算,而广大...

2020-03-04 15:04:25 884

原创 2020麻烦你搞清楚这些问题,再说你了解数据库

程序员中一直有一个段子广为流传:大不了我们“删库跑路”由此可见作为一个程序员,不了解数据库怎么能行,那么数据库到底是个啥呢,作为一个Java工程师,平时和数据库打交道着实不少,所谓的CRUD其实就是对数据库进行增删改查的操作。根据百度百科的介绍,数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库是以一定方式储存在一...

2020-03-03 20:51:10 496

转载 Java中的BigDecimal类你了解多少?

在一般开发过程中,我们数据库中存储的数据都是float和double类型的。在进行拿来拿去运算的时候还需要不断的转化,这样十分的不方便。前言我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题。如下一段代码:System.out.println(0.05 + 0.01); System.out.println(1.0 - 0.42); System.out.println(4.01...

2020-03-03 14:35:03 258

原创 2020浅谈Java入门

怎么学好Java技术对很多新手来说,是个关键性的问题。如果能够得到好的引导加之自己的努力就能事半功倍。 对于Java新手该如何提升自己的技术呢?一:浅谈java及应用学java不知不觉也已经三年了从不知java为何物到现在一个小小的j2ee项目经理虽说不上此道高手,大概也算有点斤两了吧每次上网,泡bbs逛论坛,没少去java相关的版面总体感觉初学者多,高手少,精通的更少由于我国高...

2020-03-02 16:34:11 414

转载 2020教你最新的Spring Cloud Ribbon 源码解析

代码准备依赖关系pom 依赖加入nacos 服务发现即可,内部引用了spring-cloud-ribbon相关依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery&lt...

2020-03-02 15:20:32 377

转载 如何理解spring boot的控制反转?

控制反转(IOC)就是Spring中两个主要的概念之一,另外一个就是AOP(面向切面),它的主要思路应用动态代理,这里不详细展开。下面通过一个简单的例子来介绍一下IOC。假设一个场景:目前有三个角色,买水果的人(用户),卖水果的人(业务层),水果(持久化层),先写一个接口,public interface Fruit { public void get();}现在实现3种水果的...

2020-03-01 17:56:37 1635

转载 在分布式微服务架构应用中如何实现最终一致性?

在分布式系统中,实现强一致性并不容易。即使2PC、3PC阶段提交,也无法保证绝对的强一致性。我们也不能因为极小的不一致性概率,导致系统整体性能低下,或者扩展性受到影响,并且架构也变得极其复杂。因此,在2PC/3PC提交缺乏大规模应用的情况下,最终一致性是一个较好的方案,在业界得到了大量使用。一、重试机制如下图所示,Service Consumer 同时调用 Service A 和 Servi...

2020-03-01 17:10:50 433

转载 Java中equals和hascode之间的关系

在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题。比如说:Java 的 equals() 和 hashCode() 是远房亲戚吗?像这类灵魂拷问的主题,非常值得深入地研究一下。另外,我想要告诉大家的是,研究的过程非常的有趣,就好像在迷宫里探宝一样,起初有些不知所措,但经过一番用心的摸索后,不但会找到宝藏,还会有一种茅塞顿开的感觉,非常棒。对于绝大多数的初级程序员或...

2020-03-01 15:50:26 433

转载 为物联网项目选择JavaScript的5大理由

在一个以数字化为主导的世界中,物联网(IoT)在改变我们的生活和开展业务方式方面发挥着至关重要的作用。从智能生活到工作场所协作,以及与现场员工的联系,物联网将一如既往地节省时间和提高生产力。根据一份微软物联网研究报告,大约85%的受访者表示他们目前正在采用物联网,四分之三的人处于项目计划阶段 。此外,有88%的受访者认为,物联网对于其业务的成功至关重要。在物联网开发方面,选择编程语言与选...

2020-02-29 17:39:38 500

转载 关于List和数组转化问题

回过头来复习Java基础的时候,发现当初这一块有很多细节都没有掌握到,现在记录下来,以更好的夯实基础List转数组第一种方式是以无参形式直接返回一个Object[]类型的数组,不过这种方法会导致丢失类型信息,故使用较少。public class Main { public static void main(String[] args) { List list=new Arr...

2020-02-29 16:42:34 418

转载 Golang连接池的几种实现案例

因为TCP的三只握手等等原因,建立一个连接是一件成本比较高的行为。所以在一个需要多次与特定实体交互的程序中,就需要维持一个连接池,里面有可以复用的连接可供重复使用。而维持一个连接池,最基本的要求就是要做到:thread safe(线程安全),尤其是在Golang这种特性是goroutine的语言中。实现简单的连接池type Pool struct { m sync.Mutex // 保证多...

2020-02-29 15:24:18 400

原创 2020Java程序员面试跳槽需要掌握的技术汇总

疫情信息仍在不断刷屏,相信今天大家都在线上远程办公。开工日期一再延迟,之前跳槽、转行、涨薪的计划都不得不暂时搁置起来。但Java 作为稳居开发榜首的语言,企业需求依旧旺盛,其实很多企业,比如腾讯、字节跳动,为了保证春招的顺利进行,尽可能提高招聘效率,做出了一些调整:首先是更多采用线上面试的形式,有的甚至直接在线发offer。其次,简历筛选环节更加严格,以尽快找到最匹配的候选人。只要认真准备,疫...

2020-02-28 17:39:00 1319

转载 JVM类加载器是否可以加载自定义的String

前言曾经有一次,面试官问到类加载机制,相信大多数小伙伴都可以答上来双亲委派机制,也都知道JVM出于安全性的考虑,全限定类名相同的String是不能被加载的。但是如果加载了,会出现什么样的结果呢?异常?那是什么样的异常。如果包名不相同呢?自定义类加载器是否可以加载呢?相信面试官从各种不同的角度出击,很快就会答出漏洞,毕竟咱没有深入研究过虚拟机…接下来笔者就针对上述问题进行一一验证。该篇文章抱着求...

2020-02-28 16:53:37 356

转载 MySQL索引入门指北

自从两年前了解到的索引以来的,就一直想写一篇有关索引的文章。然而我是个拖延癌症患者,一拖就是两年,不愧是我。该篇文章算是自己的笔记,欢迎批评。概述索引是什么?很多书和文章都会使用图书的目录来类比。目录的目的就是用方便我们查找具体内容的位置,具体的章节的范围。与此类似,MySQL中索引的用途是帮助我们加速查询以及排序。在InnoDB中的索引类型有哈希索引、B+树索引、全文索引。哈希索引在Inn...

2020-02-28 15:36:00 283

原创 你需要知道的Java面试总结大分享

2020年鼠年是一个不好的开端,大家都知道迎来了疫情的大爆发,导致大家都在家工作,有些人都快憋坏了。有些中小型企业也面临着发不出来工资,大家的年终奖也没有了着落,金三银四面试好机会也延迟了,大家也都是心急如焚,不知道以后该怎么样来发展。这份Java总结分享给大家ZooKeeperCAP定理ZAB协议Leader选举算法和流程RedisRedis的应用场景Red...

2020-02-27 19:54:02 365

转载 以为是高性能神仙算法,一看源代码才发现...

在昨天的文章中,我们讲到了 RSA 算法。RSA 算法的根本原理中,有两个核心质数 p和 q,他们相乘得到一个数 n。由于反向从 n 分解出 p 和 q 非常困难,所以只要 p 和 q 足够大,RSA 算法在现在的计算机水平下就无法被破解。现在,你先暂停一下,打开百度或者 Google,搜索一下 RSA 算法的教程。随便看10篇。你会发现,这些教程无一例外都是说:寻找两个足够大的质数 p 和 ...

2020-02-27 19:13:25 510

原创 2020教你如何更好地学习Java

学习是需要规划时间的,对于自学来说,需要有一个学习路线,因为大部分的人都是从零基础进行学习的,所以我建议大家一定要跟着大纲走,不然非常容易走偏。首先放大纲1.制定一个学习计划,没有计划的做事什么都做不成,学习不要盲目的学习,知道自己每天都学习什么东西,这是一个循序渐进的过程,不可以今天多学,明天少学,最后你基本都会放弃。2.一本Java入门的书籍,当然你在学习Java的时候,一定是先学一块...

2020-02-26 20:30:20 1113

转载 Redis缓存穿透、缓存雪崩、Redis并发问题分析

把redis作为缓存使用已经是司空见惯,但是使用redis后也可能会碰到一系列的问题,尤其是数据量很大的时候,经典的几个问题如下:互联网面试题更新了!随便呈上几道,看看大家能否答出来:(0)redis为什么是key,value的,为什么不是支持SQL的?(1)redis是多线程还是单线程?(回答单线程的请回吧)(2)redis的持久化开启了RDB和AOF下重启服务是如何加载的?(10个人...

2020-02-26 17:34:06 1389

转载 谈谈 Golang, 以及我走的一些弯路

在某乎上看到了这个问题, 还是挺有意思的. 撕哪个语言最好, 几乎是工程师当中最好的引战题目了. 今天我只想谈谈我是怎么看待 Go 的, 以及我走的一些弯路.我是 2010 年在学校的时候了解到 Go 语言的. 当时的 Go 语言还是一塌糊涂, STW GC 是大家嘲讽 Go 语言的最佳标靶. 只要黑一句, Go 粉基本被噎得说不出话来.我当时正想储备一门带并发编程模型的语言. 因为觉得未来...

2020-02-26 16:48:55 464

原创 2020面试必问之jvm与性能优化

无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎。不管是工作还是面试中,JVM都是必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了)。本文将重点介绍面试过程中常见的 JVM 题目。1.描述一下JVM加载Class文件的原理机制?在面试java工程师的时候,这道题经常被问到,故需特别注意。什么是类加载器?3.类加载器有哪些?什么是tomcat类加...

2020-02-25 20:27:28 554

转载 2020教你如何对SpringBoot进行优雅的全局异常处理

在项目中经常出现系统异常的情况,比如NullPointerException等等。如果默认未处理的情况下,springboot会响应默认的错误提示,这样对用户体验不是友好,系统层面的错误,用户不能感知到,即使为500的错误,可以给用户提示一个类似服务器开小差的友好提示等。这时候便可以使用全局异常处理器来优雅的处理全局异常定义错误消息类在全局异常类中会使用该错误消息进行初始化注意该消息的...

2020-02-25 15:54:50 356

转载 2020教你理解Javascript的正则表达式

前言本文4089字,阅读大约需要12分钟。正文相信很多人第一次见到正则表达式的第一印象都是懵逼的,对新手而言一个正则表达式就是一串毫无意义的字符串,让人摸不着头脑。但正则表达式是个非常有用的特性,不管是Javascript、PHP、Java还是Python都有正则表达式。俨然正则表达式已经发展成了一门小语言。作为编程语言的一部分,它不想变量,函数,对象这种概念那么容易理解。很多人对于正则...

2020-02-25 15:19:43 349

原创 2020金三银四BATJ面试试题汇总之腾讯 纯干货!

2020年,跳槽## 标题面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。腾讯的Java面试题:TCP和UDP的区别,TCP为什么是三次握手,不是两次。说说Java中异常的分类Dubbo面试题:dubbo和dubbox之间的区别?一般使用什么注...

2020-02-24 21:40:05 2113

转载 探索ThreadLocal

特点ThreadLocal是一个线程内部的变量,只在本线程中使用,隔离其他线程ThreadLocal内部维护了一个ThreadLocalMapThread内部引用了ThreadLocalMapThreadLocalMap可以保存键值对,但是一个ThreadLocal只能保存一个值,并且各个线程数据互不干扰ThreadLocalMap存储时的key永远为当前的ThreadLocalTh...

2020-02-24 20:17:02 879

转载 你应该了解的 Java SPI 机制

前言不知大家现在有没有去公司复工,我已经在家办公将近 3 周了,同时也在家呆了一个多月;还好工作并没有受到任何影响,我个人一直觉得远程工作和 IT 行业是非常契合的,这段时间的工作效率甚至比在办公室还高,同时由于我们公司的业务在海外,所以疫情几乎没有造成太多影响。扯远了,这次主要是想和大家分享一下 Java 的 SPI 机制。周末没啥事,我翻了翻我之前的写的博客 《设计一个可拔插的 IOC 容...

2020-02-24 16:56:26 289

转载 如何优雅的写多层if判断

前言在日常项目中,我们经常会使用到if来进行判断,可是多层的时候,你就会发现代码很累赘需求现在有4个产品,分别是手机、电脑、电视机、游戏机,当然每个产品显示的价格不一样if判断看到这样的需求,第一时间写个if判断,简单快速,我们来看看代码let commodity = { phone: '手机', computer: '电脑', television: '电视', ga...

2020-02-23 16:14:30 2803

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除