JAVA
文章平均质量分 86
java
roc_lpy
不争,不露,不显
展开
-
ThreadLocal知识点总结
ThreadLocal是线程Thread中属性threadLocals的管理者。ThreadLocal是Java中lang包下的一个类,可以用于在多线程环境中为每个线程维护独立的变量副本。它的作用是让每个线程都拥有自己的数据副本,避免了多个线程同时访问同一个变量的冲突问题。原创 2023-02-19 14:15:12 · 886 阅读 · 0 评论 -
锁系列 - 2 - Synchronized
synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,锁定调用者,然后直接运行。它包括两种用法:synchronized 方法和 synchronized 块。原创 2022-10-21 15:26:21 · 247 阅读 · 0 评论 -
锁系列 - 1 - volatile
Java 语言提供了一种稍弱的同步机制,即 volatile 变量,一种轻量级的同步机制。用来确保将变量的更新操作通知到其他线程。volatile 变量具备两种特性, volatile 变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取 volatile 类型的变量时总会返回最新写入的值。原创 2022-10-20 12:06:49 · 228 阅读 · 0 评论 -
Linux服务器安装nginx
Linux安装nginx在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。最后安装nginx即可。1.先安装gcc-c++编译器yum install gcc-c++yum install -y openssl openssl-devel2.再安装pcre包yum install -y pcre pcre-devel3.再安装zlib包yum install -y zlib zlib-devel原创 2021-10-21 19:42:40 · 284 阅读 · 0 评论 -
【JVM】类的加载机制
什么是类的加载类的加载指的是将类的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆内创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载器并不需要等到某个类被“首次主动加载”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载过程中遇到了.class 文件缺失或者存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError错误),如果这个类一直没有被程序主动使用,那么类加载器就不会报告错误。加原创 2021-04-16 17:30:07 · 132 阅读 · 1 评论 -
Java并发编程:内存模型
一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在CPU里面就有了高速缓存。 也就是,当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高转载 2021-04-06 22:01:55 · 75 阅读 · 0 评论 -
【学习笔记】服务间通信方式一(Rest & Ribbon)
在了解了服务的注册和发现后,我们需要进一步学习服务间的通讯方式。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是restTemplate独立使用及结合Ribbon方式,另一种是feign方式。本章学习第一种方式 - Rest + Ribbon。(采用 consul 为注册中心)基于RestTemplate的服务调用1. RestTemplate 服务调用# 1.分别创建提供者和消费者俩个服务并注原创 2021-01-06 09:55:31 · 333 阅读 · 0 评论 -
【面试】Spring Boot面试题精选
什么是 Spring BootSpring Boot是Spring开源组织下的一个子项目,是Spring组件一站式解决方案。Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot其实就是一个整合很多可插拔的组件(框架),内嵌了使用工具(比如内嵌了Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。更多 Spring Boot 详细原创 2020-11-12 10:38:34 · 245 阅读 · 0 评论 -
StopWatch:被忽视的任务执行时间监视器
背景引入学习源码的过程中,在springboot启动类的run方法里,看到这样一个对象,遂对其学习了一番。简介StopWatch是位于org.springframework.util包下的一个工具类,通过它可方便的对程序部分代码进行计时(ms级别),适用于同步单线程代码块。用于代码性能监控,不用于实际业务。允许多个任务的计时,暴露每个命名任务的总运行时间和运行时间。隐藏使用System.currentTimeMillis(),提高应用程序代码的可读性并减少计算错误的可能性。源码学习附上中文原创 2020-11-09 16:57:53 · 2499 阅读 · 0 评论 -
Mybatis vs JPA优劣势比较
Mybatis vs JPAMybatis的优势SQL语句可以自由控制,更灵活,性能较高SQL与代码分离,易于阅读和维护提供XML标签,支持编写动态SQL语句JPA的优势JPA移植性比较好提供了很多的CRUD方法,开发效率高对象化程度高Mybatis的劣势简单的CRUD操作,还得写SQL语句XML中有大量的SQL要维护Mybatis自身功能很有限,但支持Plugin...原创 2020-10-27 21:42:18 · 1496 阅读 · 0 评论