随笔分类 - Java
摘要:"刚写完这段代码,就被开除了……" 栈长前些天刚写完上面这篇文章,没几天,又来一个悲剧。。。 据说是一个月薪 9K 的 Java 程序员,因老板让他写一个排序算法,然后他就写了一段屌炸天的休眠排序算法,接着他就被老板开除了…… 排序算法代码大概是这样的: 这段代码有什么问题? 这个程序员更屌啊,数字
阅读全文
摘要:前面的文章,栈长和大家分享过多线程创建的3种方式《 "实现 Java 多线程的 3 种方式" 》。 但如果线程很多的情况下,你知道如何对它们进行分组吗? 和 Dubbo 的服务分组一样,Java 可以对相同性质的线程进行分组。 来看下线程类 Thread 的所有构造方法。 如图所示,带有 Threa
阅读全文
摘要:Java 程序员方向太多,且不说移动开发、大数据、区块链、人工智能这些,大部分 Java 程序员都是 Java Web/后端开发。那作为一名 Java Web 开发程序员必须需要熟悉哪些框架呢? 今天,栈长我给大家列举了一些通用的、必须掌握的框架,学会这些,20K+ 不是问题。 1.Spring 毫
阅读全文
摘要:最近在Java技术栈微信公众号粉丝微信群里看到一张图,说是刚写完这段下面这段代码就被开除了。 开除的原因是因为没写注释吗? 显然不是,休眠的逻辑,大家都懂,不需要写注释,你注释写休眠 1 天也没意义啊。。。 这个程序员的思维不是一般的牛啊,获取下一天的日期,居然要休眠等到下一天再获取,欲哭无泪。。。
阅读全文
摘要:现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下。 Spring Boot 的背景 了解 Spring Boot 必须先说说 Spring 框架! 在 Java 后端框架繁荣的
阅读全文
摘要:美国时间 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本。 为什么说是长期版本,看下面的官方发布的支持路线图表。 可以看出 Java 8 扩展支持到 2025 年,而 Java 11 扩展支持到 2026 年。 现在大部分都在用 Java
阅读全文
摘要:在之前的一文《 "如何"优雅"地终止一个线程" 》中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程的方法吗?答案是肯定的,它就是我们今天要分享的——线程中断。 下面的这断代码大家应该再熟悉不过了,线程休眠需要捕获或者抛出线程中断异常,也就是你在睡觉的时候突然有个人
阅读全文
摘要:为了给大家送中秋祝福,老哥也是绞尽脑汁了啊,最后想出了用排行榜前 20 名的编程语言输出中秋快乐这种方式! 首先来看下 9 月编程语言排行! 排行榜来自 TIOBE 2018.09 虽然这些语言大部分我都不会,但为了给大家送中秋祝福,我豁出去了,决定撸起键盘就是干!!! 1.Java 2.C 3.P
阅读全文
摘要:sleep(休眠) 和 wait(等待) 方法是 Java 多线程中常用的两个方法,它们有什么区别及一些该注意的地方有哪些呢?下面给大家一一分解。 区别1:使用限制 使用 sleep 方法可以让让当前线程休眠,时间一到当前线程继续往下执行,在任何地方都能使用,但需要捕获 InterruptedExc
阅读全文
摘要:我们都知道 Java 中的 String 类的设计是不可变的,来看下 String 类的源码。 可以看出 String 类是 final 类型的,String 不能被继承。其值 value 也就是对字符数组的封装,即 char[],其值被定义成 private final 的,说明不能通过外界修改,
阅读全文
摘要:前阵子,我们分享了《 "Java中的基本数据类型转换" 》这篇文章,对许多粉丝还是有带来帮助的,今天讲一下 Java 包装类的的由来,及自动装箱、拆箱的概念和原理。 什么是包装类型 Java 设计当初就提供了 8 种 基本数据类型及对应的 8 种包装数据类型。我们知道 Java 是一种面向对象编程的
阅读全文
摘要:异常处理是Java 开发中的一个重要部分。它是关乎每个应用的一个非功能性需求,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。Java提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中。Java 编程语言也允许你创建新的异常,并通过使用
阅读全文
摘要:1、【强制】存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档。 说明:有缺陷的底层数据结构容易导致系统风险上升,可扩展性下降,重构成本也会因历史数据迁移和系统平滑过渡而陡然增加,所以,存储方案和数据结构需要认真地进行设计和评审,生产环境提交执行后,需要进行 double check。 正
阅读全文
摘要:作为一款公用平台,JDK 本身也为并发程序的性能绞尽脑汁,在 JDK 内部也想尽一切办法提供并发时的系统吞吐量。这里,我将向大家简单介绍几种 JDK 内部的 "锁" 优化策略。 1、 锁偏向 锁偏向是一种针对加锁操作的优化手段。 如果一个线程获得了锁,那么锁就进入偏向模式。当这个线程再次请求锁时,无
阅读全文
摘要:月底了,又到了我们总结这一个月 Java 技术干货的时候了,又到了我们给粉丝免费送书的日子了。 7 月份干货总结 "Oracle 发布了一个全栈虚拟机 GraalVM" "一文带你深入拆解 Java 虚拟机" "图文带你了解 8 大排序算法" "Spring Boot 2.x 新特性总结及迁移指南"
阅读全文
摘要:前阵子,Oracle 发布了一个黑科技 "GraalVM",号称是一个全新的通用全栈虚拟机,并具有高性能、跨语言交互等逆天特性,真有这么神奇? GraalVM 简介 GraalVM 是一个跨语言的通用虚拟机,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及
阅读全文
摘要:这个问题是 Java 程序员面试经常会遇到的吧。 工作一两年的应该都知道 ArrayList 是线程不安全的,要使用线程安全的就使用 Vector,这也是各种 Java 面试宝典里面所提及的,可能很多工作好几年的程序员都停留在这个知识面上。 先说说为什么 ArrayList 是线程不安全的吧,来看以
阅读全文
摘要:今年 Dubbo 活了,并且被 Apache 收了。同时很不幸,Spring Cloud 下的 Netflix Eureka 组件项目居然宣布闭源了。。 已经从 Dubbo 迁移至 Spring Cloud 上的人,你们还好吗? 闭源:https://github.com/Netflix/eurek
阅读全文
摘要:今天作者想去 Dubbo 官网查下相关资料,发现官方域名由 dubbo.io 直接跳转至 dubbo.apache.org 下了,然后突然回想起 Dubbo 已经在 2 月份正式进入了 Apache 孵化器这回事,也就不觉得奇怪了。 看这个新官网还真清新亮丽,对比之前的老官网,这次调整还真不少,我想
阅读全文
摘要:我们经常看到一些 Java 性能优化的书或者理念,说不要在循环内定义变量,这样会占用过多的内存影响性能,而要在循环外面定义。接触 Java 这么久以来,相信很多 Java 程序员都被这种代码性能优化策略所误导。 看下面两个示例,示例1在循环外定义变量,示例2是在循环内定义变量。 / 循环外定义变量
阅读全文