太阳快落山了!快看看夕阳吧!
订阅RSS:

标签:Java

正确使用 Optional 优雅的解决 null 空指针 NPE 异常

要说起 Optional 的诞生,需要先了解一下 NPE,很多面向对象编程语言中都会有 null 值,也就是空指针,在程序栈上指向了一个不存在的堆地址,当你使用这个指向不存在的堆地址对象时就会抛出一个 NullPointerException 异常,如果你没有很好的遇见到空指针的情况,那么你的程序将会崩溃。

进入阅读
免费IP数据库IP2Location的Java版客户端与BIN文件下载

本文使用的是IP2Location LITE数据库,通过读取BIN文件进行数据查询,代码参考官方案例进行精简并上传Maven仓库。

进入阅读
谷歌 Google Indexing 推送接口教程的更新

谷歌搜索引擎作为全球第一的搜索引擎早就支持了站长主动推送的功能,只不过不是面向普通用户的可视化界面,而是通过编程API接口实现的,有很多站长并不是专业的开发者,但由于谷歌需要验证网站所有权,所以我不能直接做一个可视化界面让站长自己填写自己的秘钥,所以只能对谷歌的接口进行二次封装,以降低使用的难度。

进入阅读
Java中高级高并发与多线程系列(六):经典的生产者-消费者模型

上一篇我们学会了 synchronized 线程同步,到这里已经可以做一些东西了,最为经典的就是生产者-消费者模型,一个生产者不停的生产资源,一个消费者不停的消费资源,两个线程模拟这样的关系,好比厨师和传菜工,厨师不停的炒菜,传菜工看到有菜了就端走。

进入阅读
Java中高级高并发与多线程系列(五):线程的 synchronized 同步与死锁

了解过多线程的同学肯定听说过 synchronized 这个关键词,我们先用一个错误的案例来引出不使用 synchronized 引发的问题,然后再使用 synchronized 解决问题,然后再由 synchronized 引出死锁问题。

进入阅读
Java中高级高并发与多线程系列(四):线程运行状态的切换与操作

要明确的是在 Java 中线程有 6 种状态,网络上包括 CSDN 上一群复制转载党无脑复制,不知道从哪复制的都在讲 5 种状态,我是亲自找的文档,我可以确定的是 6 种状态

进入阅读
Java中高级高并发与多线程系列(三):FutureTask 类与 Callable 接口

上一篇我们了解了 Thread 类与 Runnable 接口,但这两个组合有一个问题就是他们没有返回值,如果我们希望线程给我们一个返回值,那就需要今天介绍的 FutureTask 类与 Callable 接口。

进入阅读
Java中高级高并发与多线程系列(二):Thread 类与 Runnable 接口

上一篇大致说了下我们为什么需要多线程,既然想要研究多线程,接下来我们就开始自己创建线程,来探究一下多线程的奥秘。

进入阅读
Java中高级高并发与多线程系列(一):高并发与多线程有什么关系

高并发和多线程有什么关系,我又没新建线程去运行,为啥到处要讲多线程?所以我的开篇就是探究为什么要学习多线程,怎么高并发就是多线程了。

进入阅读
Java中高级编程系列:文章索引目录

本文作为Java中高级编程系列文章的目录索引文章。同时我也想提升自己的技术水平,我就决定开始学习并分享中高级的一些知识。

进入阅读
Zookeeper入门教程(四):走进 Zookeeper 内部

在 Zookeeper 入门教程前三篇已经基本可以使用 Zookeeper 了,本文就带大家进一步走进 Zookeeper,大致了解一下 Zookeeper 是如何运行的。

进入阅读
微信搜一搜:任霏博客