线程中断 interrupt 和 LockSupport
本文章将要介绍的内容有以下几点,读者朋友也可先自行思考一下相关问题:线程中断 interrupt 方法怎么理解,意思就是线程中断了吗?那当前线程还能继续执行吗?判断线程是否中断的方法有几个,它们之间有什么区别?LockSupport的 park/unpark 和 wait/notify 有什么区别?sleep 方法是怎么响应中断的?park 方法又是怎么响应中断的?线程中断相关方法线程中和中断相关
为啥国人喜欢Mybatis,而老外偏爱 Hibernate/JPA 呢?
关于SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。声明:****本文不会下关于 Mybatis 和 JPA 两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。一、事件起因关于 Mybatis 和 JPA 孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是
超详细的JVM 深入解析
工作之余,想总结一下JVM相关知识。Java运行时数据区:Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域,如图:1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。2、虚拟机栈
2020 阿里最新 春招Spring面试题
Spring概述什么是spring?Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使
一文带你了解Java 11 新特性
大多数开发者还是沉浸在 Java 8 中,而 Java 14 将要在 2020 年 3 月 17 日发布了,而我还在写着 Java 11 的新特性。Java 11 是 Java 8 之后的第一个 LTS 版本,但是也自从 Java 11 开始, Oracle JDK 不再可以免费的用于商业
超硬核的16000 字 Redis 面试知识点总结,建议收藏!
今天,我不自量力的面试了某大厂的 Java 开发岗位,迎面走来一位风尘仆仆的中年男子,手里拿着屏幕还亮着的 Mac。他冲着我礼貌的笑了笑,然后说了句“不好意思,让你久等了”,然后示意我坐下,说:“我们开始吧,看了你的简历,觉得你对 Redis 应该掌握的不错,我们今天就来讨论下 Redis……”。我想:“来就来,兵来将挡水来土掩”。Redis 是什么面试官:你先来说下 Redis 是什么吧!我:(
session和cookie学习
1. session和cookie学习1.1. 技术的需求以京东未登录时添加购物车为例,在京东上购买东西(未登录)可以添加到购物车,这时候有个问题是京东如何存储没有登录的你添加的购物车物品?我们肯定想到域对象,request、ServletContext域对象request对象有个问题:request是请求一次,产生一次,如果继续请求就会释放掉,也就是说request就有一个,就在本次请求中。这种
java基础学习笔记:一文带你搞懂网络编程
1. 网络编程学习1.1. 扩展知识点网络协议OSI协议:网络协议的划分学习1.2. 网络协议那些事五层协议模型网络协议按照5层划分可以分为5层:物理层、数据链路层、网络层,传输层,应用层。每一层都有一定的协议标准定义。物理层:物理层的协议是根据硬件传输数据的特性制定的协议,由于光纤,电线只能传输0和1二进制数字,物理层的协议有ISO2210,IEE802,IEE8022,这一层只传输二进制数据。
Java Final与Effectively Final
1. 介绍Java 8 引入的众多功能中,其中一个最有趣的功能是 effectively final。即不用 final 修饰符也能达到同样的效果。本文将介绍该功能的起源以及编译器处理 effectively final 与 final 关键字的不同之处。此外,还会通过一个 effectively final 变量的问题案例给出解决方案。2. Effectively Final 的起源简而言之,如
超详细的IntelliJ IDEA 使用技巧大全,速度收藏!
前言:IntelliJ IDEA如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转IDEA的探索者,随着近期的不断开发实践和调试,逐步体会到这款智能IDE带来的巨大开发便利,在强大的插件功能支持下,诸如对Git和Maven的支持简直让人停不下来,各种代码提示,包括JS更是手到擒来,最终不得不被这款神奇的IDE所
作为一个Java工程师,你应该要知道SPI机制
什么是 SPISPI是Service Provider Interface的简称,是JDK默认提供的一种将接口和实现类进行分离的机制。这种机制能将接口和实现进行解耦,大大提升系统的可扩展性。SPI机制约定:当一个Jar包需要提供一个接口的实现类时,这个Jar包需要在META-INF/services/目录里同时创建一个以服务接口命名的文件。该文件里就是实现该服务接口的具体实现类。而当外部程序装配这
详解 Java性能优化和JVM GC(垃圾回收机制)
Java的性能优化,JVM GC(垃圾回收机制)在学习Java GC 之前,我们需要记住一个单词:stop-the-world 。它会在任何一种GC算法中发生。stop-the-world 意味着JVM因为需要执行GC而停止了应用程序的执行。当stop-the-world 发生时,除GC所需的线程外,所有的线程都进入等待状态,直到GC任务完成。GC优化很多时候就是减少stop-the-world