java开发时各类工具的使用规范 Java 编程技术

java开发时各类工具的使用规范

工具类规范 一个项目不可能没有工具类,工具类的初衷是良好的,代码重用,但到了后面工具类越来越乱,有些项目工具类有几十个,看的眼花缭乱,还有不少重复。如何编写出好的工具类,我有几点建议: 隐藏实现 就是要定义自己的工具类,尽量不要在业务代码里面直接调用第三方的工具类。这也是解耦的一种体现。如果我们不定义自己的工具类而是直接使用第三方的工具类有2个不好的地方: 不同的...
阅读全文
Spring WebFlux启动源码分析 Java 编程技术

Spring WebFlux启动源码分析

根据之前的文章 《Spring Boot启动源码分析》可知,当执行 AbstractApplicationContext -> onRefresh() 方法时,如果引入了 webflux 相关依赖,会创建 WebServer。 /** ReactiveWebServerApplicationContext **/ private void createWebServer() { ...
阅读全文
苦苦面试了半年,上个月凭借着这份面试题,我一举拿下了阿里,字节跳动和京东的offer! Spring

苦苦面试了半年,上个月凭借着这份面试题,我一举拿下了阿里,字节跳动和京东的offer!

前言 最近收到很多粉丝的私信,有工作几年的,也有即将面临毕业的学生党。都是来跟我说金九银十马上到了,自己想去冲击面试一波大厂,问我有没有相关的面试题分享。听到后我也是赶紧为大家整理了一份,话不多说满满的干货都在下面了,友情提示,文章篇幅齐全,全是干货慢慢观看!!! Redis 什么是Redis? Redis的数据类型? 使用Redis有哪些好处? Redis相比Memcac...
阅读全文
看了这篇你就会手写RPC框架了 Java 编程技术

看了这篇你就会手写RPC框架了

一、学习本文你能学到什么? RPC的概念及运作流程 RPC协议及RPC框架的概念 Netty的基本使用 Java序列化及反序列化技术 Zookeeper的基本使用(注册中心) 自定义注解实现特殊业务逻辑 Java的动态代理 自定义Spring Boot Starter 这里只是列出了你能从RPC框架源码中能学到的东西,本文并不会每个知...
阅读全文
2020腾讯,阿里,美团,字节跳动面试真题整理,全网首发!面试突击必备! Java 编程技术

2020腾讯,阿里,美团,字节跳动面试真题整理,全网首发!面试突击必备!

前言 最近收到很多粉丝的私信,有工作几年的,也有即将面临毕业的学生党。都是来跟我说金九银十马上到了,自己想去冲击面试一波大厂,问我有没有相关的面试题分享。听到后我也是赶紧为大家整理了一份,话不多说满满的干货都在下面了,友情提示,文章篇幅齐全,全是干货慢慢观看!!! Redis 什么是Redis? Redis的数据类型? 使用Redis有哪些好处? Redis相比Memcac...
阅读全文
JAVA多线程——并发 Java 编程技术

JAVA多线程——并发

线程状态图: 图来自 Java线程的6种状态及切换(透彻讲解) 初始、就绪、运行、等待、阻塞(synchronized)、终止。 Thread.sleep(millis)一定时间后自动恢复执行, 不释放对象锁 。 Object.wait()直接 释放锁 ,一直等待,知道notify()唤醒。 Thread1.join()表示运行的线程阻塞自己,等待Thr...
阅读全文
集群多JVM分布式锁实现 Java 编程技术

集群多JVM分布式锁实现

基于数据库表乐观锁 (基本废弃) 要实现分布式锁,最简单的⽅方式可能就是直接创建⼀一张锁表,然后通过操作该表中的数据来实现了了。 当我们要锁住某个⽅法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。 比如创建这样一张数据库表: CREATE TABLE `methodLock` ( `id` int(11) NOT NULL AUTO_INCREMENT C...
阅读全文
从Linux内核理解JAVA的NIO Java 编程技术

从Linux内核理解JAVA的NIO

IO 可以简单分为 磁盘 IO 和 网络 IO , 磁盘 IO 相对于 网络 IO 速度会快一点,本文主要介绍 磁盘 IO , 网络 IO 下周写。 JAVA 对 NIO 抽象为 Channel , Channel 又可以分为 FileChannel (磁盘 io)和 SocketChannel (网络 io)。 如果你对 IO 的理解只是停留在 api 层面那是远远不够的,一定要了...
阅读全文
深入理解Java并发编程(一):JMM(Java内存模型)详解 Java 编程技术

深入理解Java并发编程(一):JMM(Java内存模型)详解

JMM是一个抽象的概念:描述的是一组围绕原子性、有序性、可见性的规范。其定义程序中各个变量的访问规则,即虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量是共享变量。 JMM规定:所有共享变量存储在主内存中,每条线程有自己的工作内存,线程的工作内存保存了被该线程使用到的变量的主内存副本,线程对变量的所有操作都必须在工作内存上进行,线程不能直接读写主内存的共享变量。不同的线程之...
阅读全文
Java知识点JUC总结 Java 编程技术

Java知识点JUC总结

JUC:java.util.concurrent (Java并发编程工具类) 一般面试提问:面向对象和高级语法、Java集合类、Java多线程、JUC 和高并发、Java IO和 NIO 获取多线程的4种方法: 1.继承Thread类,重写run方法(其实Thread类本身也实现了Runnable接口) 2.实现Runnable接口,重写run方法 3.实现Callable...
阅读全文
[Java 并发]CopyOnWrite 了解吗? Java 编程技术

[Java 并发]CopyOnWrite 了解吗?

CopyOnWrite 只是看字面意思就能看出来,就是在写入时复制 说得轻巧,写入时复制,具体是怎么实现的呢? 先来说说思想,具体怎么实现等下分析 CopyOnWrite 的思想就是:当向一个容器中添加元素的时候,不是直接在当前这个容器里面添加的,而是复制出来一个新的容器,在新的容器里面添加元素,添加完毕之后再将原容器的引用指向新的容器,这样就实现了写入时复制 你还记得在提到数据库...
阅读全文
Loading...