Fork me on GitHub
摘要:开始之前先自我介绍一下,我叫王磊(人称磊哥),来自陕西西安,三十来岁,在软件行业呆了也算有十余年了。 ​ 2009 年初来乍到,先做了几年的 C# 开发,之后又去了一家 500 强的民营企业做了几年的技术经理,使用的技术也从 C# 开始扩展到了其他语言。 ​ 因为公司有很多技术小组,当时用的技术也比 阅读全文
posted @ 2021-06-18 08:54 Java中文社群 阅读(6002) 评论(34) 推荐(41) 编辑
摘要:在 Java 中,生成随机数的场景有很多,所以本文我们就来盘点一下 4 种生成随机数的方式,以及它们之间的区别和每种生成方式所对应的场景。 阅读全文
posted @ 2021-06-15 08:53 Java中文社群 阅读(453) 评论(0) 推荐(1) 编辑
摘要:ThreadLocal 翻译成中文是线程本地变量的意思,也就是说它是线程中的私有变量,每个线程只能操作自己的私有变量,所以不会造成线程不安全的问题。 ​ 线程不安全是指,多个线程在同一时刻对同一个全局变量做写操作时(读操作不会涉及线程不安全问题),如果执行的结果和我们预期的结果不一致就称之为线程不安 阅读全文
posted @ 2021-05-26 09:05 Java中文社群 阅读(192) 评论(2) 推荐(0) 编辑
摘要:SimpleDateFormat线程不安全的5种解决方案! 阅读全文
posted @ 2021-05-17 08:32 Java中文社群 阅读(259) 评论(2) 推荐(2) 编辑
摘要:ThreadLocal 的两种经典使用场景,无可取代的位置。本文通过事例的方式给大家循循渐进的演示 ThreadLocal 的价值... 阅读全文
posted @ 2021-05-13 08:50 Java中文社群 阅读(493) 评论(2) 推荐(1) 编辑
摘要:在 Java 语言中线程分为两类:用户线程和守护线程,而二者之间的区别却鲜有人知,所以本文磊哥带你来看二者之间的区别,以及守护线程需要注意的一些事项。 1.默认用户线程 Java 语言中无论是线程还是线程池,默认都是用户线程,因此用户线程也被成为普通线程。 以线程为例,想要查看线程是否为守护线程只需 阅读全文
posted @ 2021-05-06 09:49 Java中文社群 阅读(342) 评论(0) 推荐(1) 编辑
摘要:[电影声明图片] 声明:本故事纯属虚构,如果雷同那就是真事了! 大家好,我是线程,我的英文名叫 Thread,别看我现在风光无限,好像人尽皆知的样子,然而我的身世却悲惨离奇。 我出身在一个小山村,那是一个与世隔绝的世外桃源,然而年纪轻轻的我,却展现出了与众不同的性格。比如:当身边的同龄人还在沉浸于玩 阅读全文
posted @ 2021-04-23 12:31 Java中文社群 阅读(415) 评论(1) 推荐(3) 编辑
摘要:大家好,我是 Semaphore,我的中文名字叫“信号量”,我来自 JUC(java.util.concurrent)家族。 我们家族有很多优秀的成员,比如:CountDownLatch(等待其他线程都执行完再执行某线程),CyclicBarrier(循环阻塞一组线程,直到某个事件达成),当然我也不 阅读全文
posted @ 2021-04-21 09:33 Java中文社群 阅读(235) 评论(0) 推荐(1) 编辑
摘要:上一篇咱讲了 CountDownLatch 可以解决多个线程同步的问题,相比于 join 来说它的应用范围更广,不仅可以应用在线程上,还可以应用在线程池上。然而 CountDownLatch 却是一次性的计数器,以王者农药来说,咱们不可能一场团战就决定比赛的输赢,所以在某些场景下,咱们是需要重复使用 阅读全文
posted @ 2021-04-09 09:28 Java中文社群 阅读(758) 评论(3) 推荐(3) 编辑
摘要:一入王者深似海,从此对象是路人。 哈喽观众老爷们你们好,在下战神吕布字奉先,今天给大家来一部吕布的教学视频! 咳咳,不对。大家好,我是磊哥,今天给大家来一篇 CountDownLatch 的文章。 在开始之前,先问大家一个非常专业的技术性问题:打团战最怕_____? 一道非常简单的送分题,如果答不对 阅读全文
posted @ 2021-03-31 11:33 Java中文社群 阅读(86) 评论(0) 推荐(1) 编辑
摘要:Swagger 3.0 发布已经有一段时间了,它于 2020.7 月 发布,但目前市面上使用的主流版本还是 Swagger 2.X 版本和少量的 1.X 版本,然而作为一名合格的程序员怎么能不折腾新技术呢?所以本期就大家带来一篇最新版 Swagger 的内容,本文会带大家看最新版 Swagger 有 阅读全文
posted @ 2021-03-15 08:54 Java中文社群 阅读(1126) 评论(2) 推荐(2) 编辑
摘要:数据库连接加密 阅读全文
posted @ 2021-03-02 08:56 Java中文社群 阅读(709) 评论(1) 推荐(2) 编辑
摘要:在 Java 语言中 try-catch-finally 看似简单,一副人畜无害的样子,但想要真正的“掌控”它,却并不是一件容易的事。别的不说,咱就拿 fianlly 来说吧,别看它的功能单一,但使用起来却“暗藏杀机”,若您不信,咱来看下面的这几个例子... 坑1:finally中使用return 阅读全文
posted @ 2021-01-28 16:01 Java中文社群 阅读(253) 评论(0) 推荐(1) 编辑
摘要:上一篇我们讲了《Socket粘包问题的3种解决方案》,但没想到评论区竟然炸了。介于大家的热情讨论,以及不同的反馈意见,本文就来做一个扩展和延伸,试图找到问题的最优解,以及消息通讯的最优解决方案。 在正式开始之前,我们先对上篇评论中的几个典型问题做一个简单的回复,不感兴趣的朋友可直接划过。 问题一:T 阅读全文
posted @ 2021-01-13 09:01 Java中文社群 阅读(758) 评论(6) 推荐(0) 编辑
摘要:在 Java 语言中,传统的 Socket 编程分为两种实现方式,这两种实现方式也对应着两种不同的传输层协议:TCP 协议和 UDP 协议,但作为互联网中最常用的传输层协议 TCP,在使用时却会导致粘包和半包问题,于是为了彻底的解决此问题,便诞生了此篇文章。 什么是 TCP 协议? TCP 全称是 阅读全文
posted @ 2021-01-06 09:20 Java中文社群 阅读(3728) 评论(29) 推荐(6) 编辑
摘要:在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示: “兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。 -- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; -- 创建 person 表,其中 阅读全文
posted @ 2020-12-31 10:31 Java中文社群 阅读(579) 评论(0) 推荐(3) 编辑
摘要:文件写入,写入文件,文件读写,文件追加 阅读全文
posted @ 2020-12-22 09:26 Java中文社群 阅读(1278) 评论(1) 推荐(4) 编辑
摘要:根据摩尔定律所说:集成电路上可容纳的晶体管数量每 18 个月翻一番,因此 CPU 上的晶体管数量会越来越多。 但随着时间的推移,集成电路上可容纳的晶体管数量已趋向饱和,摩尔定律也渐渐失效,因此多核 CPU 逐渐变为主流,与之相对应的多线程编程也开始变得普及和流行起来,这当然也是很久之前的事了,对于现 阅读全文
posted @ 2020-12-17 13:06 Java中文社群 阅读(3410) 评论(0) 推荐(12) 编辑
摘要:Condition 是 JDK 1.5 中提供的用来替代 wait 和 notify 的线程通讯方法,那么一定会有人问:为什么不能用 wait 和 notify 了? 哥们我用的好好的。老弟别着急,听我给你细说... 之所以推荐使用 Condition 而非 Object 中的 wait 和 not 阅读全文
posted @ 2020-12-15 09:56 Java中文社群 阅读(666) 评论(1) 推荐(3) 编辑
摘要:这几年商家为了刺激消费是变着花样的推出各种各样的活动,以某多多为首的运营式电商更是让我们看到了营销的无限“潜力”。这不,最近刚赶上双 11,小区便利店的老王头也推出了一项「空酒瓶子换酒」的促销活动,它的规则是这样的。 本文已收录至 Github《小白学算法》系列:https://github.com 阅读全文
posted @ 2020-11-13 09:01 Java中文社群 阅读(161) 评论(0) 推荐(0) 编辑
摘要:本文已收录至 Github《小白学算法》系列:https://github.com/vipstone/algorithm 这是一道比较基础的算法题,涉及到的数据结构也是我们之前讲过的,我这里先买一个关子。这道面试题最近半年在亚马逊的面试中出现过 28 次,在字节跳动中出现过 7 次,数据来源于 Le 阅读全文
posted @ 2020-11-09 12:04 Java中文社群 阅读(439) 评论(0) 推荐(0) 编辑
摘要:链表和数组是数据类型中两个重要又常用的基础数据类型,数组是连续存储在内存中的数据结构,因此它的优势是可以通过下标迅速的找到元素的位置,而它的缺点则是在插入和删除元素时会导致大量元素的被迫移动,为了解决和平衡此问题于是就有了链表这种数据类型。 链表和数组可以形成有效的互补,这样我们就可以根据不同的业务 阅读全文
posted @ 2020-11-05 10:00 Java中文社群 阅读(760) 评论(3) 推荐(4) 编辑
摘要:本文已收录至 Github《小白学算法》系列:https://github.com/vipstone/algorith 之前我们讲过《用两个栈实现一个队列》,而今天我们要讲的是「用队列实现栈」,它们都属于常见的面试题,而我们今天要用多种方法来实现队列到栈的“转变”。 老规矩,先来回顾一下栈(Stac 阅读全文
posted @ 2020-11-03 08:34 Java中文社群 阅读(597) 评论(1) 推荐(2) 编辑
摘要:本文已收录至 Github《小白学算法》系列:https://github.com/vipstone/algorith 今天蚂蚁集团(支付宝)正式上市了,毫无疑问这一举措又造就了一大批富豪,然而作为局外人的我们,也只有羡慕的份了。明明可以考运气吃饭,咱非得靠实力,你说冤不冤啊? 但话又说回来,能进蚂 阅读全文
posted @ 2020-10-29 09:36 Java中文社群 阅读(1009) 评论(2) 推荐(0) 编辑
摘要:本文已收录至 https://github.com/vipstone/algorithm 《算法图解》系列。 队列和栈是计算机中两个非常重要的数据结构,经过前面的学习(《队列》、《栈》)我们知道了它们各自的特点,队列是先进先出(FIFO)的,而栈是先进后出(FILO)的,那如何用栈来实现队列呢?这可 阅读全文
posted @ 2020-10-26 15:01 Java中文社群 阅读(197) 评论(0) 推荐(0) 编辑