多线程概述(并发编程)进程程序是静止的,而运行中的程序就是进程特征动态性:进程是运行中的程序,要动态的占用内存,CPU和网络等资源独立性:进程和进程之间是相互独立的,彼此有自己独立内存区域并发性:假如CPU是单核,同一时刻内存中只有一个进程在被执行,CPU会依时为每个进程服务,由于切换速度非常快,给我们的感觉就是这些进程在同时执行,这就是并发性并行:同一时刻
......
466
0
0
2022-12-13
昨天在群里闲聊技术,提到了反编译和指令码。对于反编译和 JVM 的几个指令我解释了它们的各自所包含的意义。有人就问我,我是如何记住的。其实我也没记住这些指令,只不过,我总结了一个 JVM 常用指令速查手册,今天分享给大家!JVM 基本指令基本指令集是最常用的,总结如下:指令释义iconst_1int型常量值1进栈bipush将一个byte型常量值推送至栈顶i
......
326
0
0
2022-12-12
概念即时编译是用来提升应用运行效率的技术代码会先在JVM上解释执行,之后反复执行的热点代码会被即时翻译成为机器码,直接运行在底层硬件上分层编译HotSpot包含多个即时编译器:C1、C2和Graal(Java 10,实验性)在Java 7之前,需要根据程序的特性选择对应的即时编译器对于执行时间较短或对启动性能有要求的程序,采用编译效率较快的C1,对应参数:-
......
361
0
0
2022-12-12
Java运行时数据区:Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域,如图:1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。2、虚拟
......
299
0
0
2022-12-12
BrokerProducerConsumerKafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。BrokerBroker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了批量刷盘的做法。即,按照
......
344
0
0
2022-12-12
前言不知大家现在有没有去公司复工,我已经在家办公将近 3 周了,同时也在家呆了一个多月;还好工作并没有受到任何影响,我个人一直觉得远程工作和 IT 行业是非常契合的,这段时间的工作效率甚至比在办公室还高,同时由于我们公司的业务在海外,所以疫情几乎没有造成太多影响。扯远了,这次主要是想和大家分享一下 Java 的 SPI 机制。还没看过的朋友的我先做个前景提要
......
277
0
0
2022-12-12
序言:比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。接下来,本文将重点阐述SpringBoot在Maven环境的多模块构建过程。本项目传送门:https://github.com/yizhiwazi/spring
......
335
0
0
2022-12-12
致力于最高效的Java学习本文参考了 IntelliJ IDEA 的官网,列举了IntelliJ IDEA(Windows 版)的所有快捷键。并在此基础上,为 90% 以上的快捷键提供了动图演示,能够直观的看到操作效果。该快捷键共分 16 种,可以方便的按各类查找自己需要的快捷键~~一、构建/编译Ctrl + F9:构建项目该快捷键,等同于菜单【Build】
......
312
0
0
2022-12-11
一、为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指
......
318
0
0
2022-12-11
什么是内存泄漏内存泄漏:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着。 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对
......
409
0
0
2022-12-11
Spring中涉及的设计模式总结1.简单工厂(非23种设计模式中的一种)实现方式:BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。实现原理:bean容
......
340
0
0
2022-12-11
首先我们先来看段代码@SpringBootApplication
public class StartEurekaApplication
{
public static void main(String[] args)
{
SpringApplication.run(StartEurekaApplication.cl
......
392
0
0
2022-12-11
SpringBoot的自动装配是拆箱即用的基础,也是微服务化的前提。其实它并不那么神秘,我在这之前已经写过最基本的实现了,大家可以参考这篇文章。这次主要的议题是,来看看它是怎么样实现的,我们透过源代码来把握自动装配的来龙去脉。一、自动装配过程分析1.1、关于@SpringBootApplication我们在编写SpringBoot项目时,@SpringBoo
......
374
0
0
2022-12-11
LinkedBlockingQueue和ArrayBlockingQueue比较简单,不进行讲解了。下面只介绍PriorityBlockingQueue和DelayQueue。PriorityBlockingQueuePriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最高或最低的元素。内部使用二叉堆实现。类图结构Prio
......
334
0
0
2022-12-10
一、Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:确保线程互斥的访问同步代码保证共享变量的修改能够及时可见有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:修饰普通方法修饰静态方法修饰代码块接下来我就通过几个例子程序来
......
296
0
0
2022-12-09