首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java
订阅
逝去的逍遥生
更多收藏集
微信扫码分享
微信
新浪微博
QQ
15篇文章 · 0订阅
传说中的jwt,我们来征服一下
本文的完整示例代码,见github仓库。小q只在文中介绍最关键的代码块。 关于jwt是什么,这里就不再啰嗦了。总体来讲,它有Header、Payload、Signature三个部分,每一部分,都有一些细分的属性,这个原理扫一眼就可以,对我们的使用没有实质性的帮助。 使用jwt可…
基础篇:深入解析JAVA泛型和Type类型体系
注解是JDK1.5才出现了的,为了表示被注解的类型的,加入AnnotatedElement类型,字面意思就是被注解的元素。JDK1.8又有了AnnotatedType将Type和被注解元素的概念关联起来。 当方法参数需要传入一个泛型时,而且无法确定其类型时。直接使用无具体泛型变…
Java字节码增强探秘
Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值…
RPC基本原理以及如何用Netty来实现RPC
在微服务大行其道的今天,分布式系统越来越重要,实现服务化首先就要考虑服务之间的通信问题。这里面涉及序列化、反序列化、寻址、连接等等问题。。不过,有了RPC框架,我们就无需苦恼。 RPC(Remote Procedure Call)— 远程过程调用,是一个计算机通信协议。该协议允…
如何让两个线程交替打印数字
用AtomicInteger保证多线程数据可见性。 不要觉得synchronized加锁是多余的,如果没有加锁,线程1和线程2就可能出现不是交替打印的情况。如果没有加锁,设想线程1打印完了一个奇数后,线程2去打印下一个偶数,当执行完status.getAndIncrement(…
别扯那些没用的系列之:forEach循环
写Java代码的程序员,集合的遍历是常有的事,用惯了for循环、while循环、do while循环,我们来点别的,JDK8 使用了新的forEach机制,结合streams,让你的代码看上去更加简洁、更加高端,便于后续的维护和阅读。好,不说了,"talk is cheap, …
大家都说 Java 反射效率低,你知道原因在哪里么
我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运用更是常见。我相信,每次提到反射,大家的第一反应一定是反射效率低,尽量少使用。 这篇文章就来探索一下这些问题。 由于本机上安装的是 openjdk 12,所以这里就使用 openjdk 12 源码进行分析。 我…
Java内存模型,垃圾回收机制,常用内存命令及工具
1. Java简介 JAVA 语言是一门非常纯粹的面向对象编程语言, 它吸收了 C++ 语言的各种优点, 又摒弃了 C++ 里难以理解的多继承、指针等概念, 因此 JAVA 语言具有功能强大和简单易用两个特征。 开发环境(即JDK, Java Development Kit)。…
初步了解AQS是什么(一)
AbstractQueueSynchronized的缩写,也叫抽象的队列式同步器。定义了一套多线程访问共享资源的同步器框架。 字如其名,他是一个抽象类,所以大部分同步类都是继承于它,然后重写部分方法即可。 phore/CountDownLatch都是AQS的具体实现类。 AQS…
解读Java8中ConcurrentHashMap是如何保证线程安全的
HashMap是工作中使用频度非常高的一个K-V存储容器。在多线程环境下,使用HashMap是不安全的,可能产生各种非期望的结果。 针对HashMap在多线程环境下不安全这个问题,HashMap的作者认为这并不是bug,而是应该使用线程安全的HashMap。 其中,前两种方式由…