- 博客(37)
- 收藏
- 关注
原创 DataFrame生成excel后为什么多了一行数字
python查询数据生成excel文件,生成的excel多了第一行数字索引,1,2,3,4,5......由于我把列头已经通过union的方式拼接到了data里的第一行,才导致该问题,类似如下代码。原理也很简单,就是设置个参数header=False。
2024-09-20 09:51:28 524
原创 IDEA报错无效的目标发行版:17
问题描述:由于要接手另外一个项目,之前项目用的jdk17,新项目用的jdk8。需要切换jdk,idea切换之后启动报错检查之后发现是没切换完全,一共需要切换如下几个地方:切换前提:电脑上安装了多个版本jdk。
2024-08-01 17:15:22 391
原创 别在用BigDecimal给自己挖坑了!
工作中,我们都会用到BigDecimal来进行金额计算,但是他有许多坑,可能针对新手不注意的话,就给自己多加几个bug了。一起来看看吧。
2022-12-27 21:45:42 581
原创 Spring Security入门学习
认识Spring SecuritySpring Security 是为基于 Spring 的应用程序提供声明式安全保护的安全性框架。Spring Security 提供了完整的安全性解决方案,它能够在 Web 请求级别和方法调用级别处理身份认证和授权。因为基于 Spring 框架,所以 Spring Security 充分利用了依赖注入(dependency injection, DI)和面向切面的技术。核心功能对于一个权限管理框架而言,无论是 Shiro 还是 Spring Security,最最核
2022-12-13 17:48:22 396
原创 你需要知道的垃圾收集器和算法
前言上文讲了JVM内存模型及理论知识,而本文将介绍垃圾收集相关算法及几种垃圾收集器。垃圾回收器也叫垃圾收集器,不同的厂商对垃圾收集器的实现也是不同的,这里主要介绍目前使用最广泛的 OracleJDK 中自带的 HotSpot 虚拟机中的几个垃圾收集器。你用过哪些垃圾回收器?它们有什么区别?《Java 虚拟机规范》并没有对垃圾收集器的具体实现做任何的规定,因此每家垃圾收集器的实现方式都不同,但比较常用的垃圾回收器是 OracleJDK 中自带的 HotSpot 虚拟机。HotSpot 中使用的垃圾收集器
2022-09-27 21:57:56 120
原创 JVM内存模型及对象的生死
1 JVM内存划分2 分区JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存。2.1 程序计数器一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存。正在执行 java 方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果还是 Native 方法,则为空。这个内存区域是唯一一个在虚拟机中没有规定任何 OutOfMemoryError
2022-09-26 21:32:45 365
原创 Redis的过期策略和内存淘汰机制有什么区别
前言Redis 和 MySQL 是面试绕不过的两座大山,他们一个是关系型数据库的代表(MySQL),一个是键值数据库以及缓存中间件的一哥。尤其 Redis 几乎是所有互联网公司都在用的技术,比如国内的 BATJ、新浪、360、小米等公司;国外的微软、Twitter、Stack Overflow、GitHub、暴雪等公司。我从业了十几年,就职过 4、5 家公司,有的公司用 MySQL、有的用 SQL Server、甚至还有的用 Oracle 和 DB2,但缓存无一例外使用的都是 Redis,从某种程度上来讲
2022-09-22 20:57:31 173
原创 MySQL的优化方案有哪些?
前言性能优化(Optimize)指的是在保证系统正确性的前提下,能够更快速响应请求的一种手段。而且有些性能问题,比如慢查询等,如果积累到一定的程度或者是遇到急速上升的并发请求之后,会导致严重的后果,轻则造成服务繁忙,重则导致应用不可用。它对我们来说就像一颗即将被引爆的定时炸弹一样,时刻威胁着我们。因此在上线项目之前需要严格的把关,以确保 MySQL 能够以最优的状态进行运行。同时,在实际工作中还有面试中关于 MySQL 优化的知识点,都是面试官考察的重点内容。MySQL 的优化方案有哪些?典型回答M
2022-09-22 20:25:51 2555
原创 MySQL执行流程?有哪些存储引擎?
前言数据库是 Java 程序员面试必问的知识点之一,它和 Java 的核心面试点共同组成了一个完整的技术面试。而数据库一般泛指的就是 MySQL,因为 MySQL 几乎占据了数据库的半壁江山,即使有些公司没有使用 MySQL 数据库,如果你对 MySQL 足够精通的话,也是会被他们录取的。因为数据库的核心与原理基本是相通的,所以有了 MySQL 的基础之后,再去熟悉其他数据库也是非常快的,那么接下来的几个课时就让我们好好的学习一下 MySQL。MySQL 是如何运行的?说一下它有哪些引擎?典型回答M
2022-09-21 19:31:09 118
原创 MQ 有什么作用?你都用过哪些 MQ 中间件?
前言第一次听到“消息队列”这个词时,不知你是不是和我反应一样,感觉很高阶很厉害的样子,其实当我们了解了消息队列之后,发现它与普通的技术类似,当我们熟悉之后,也能很快地上手并使用。本文将会深入的讲解 MQ(Message Queue,消息队列)中间件,以及这些热门中间件的具体使用。MQ 常见的使用场景有哪些?你都用过哪些 MQ 中间件?典型回答消息队列的使用场景有很多,最常见的使用场景有以下几个。1.商品秒杀比如,我们在做秒杀活动时,会发生短时间内出现爆发式的用户请求,如果不采取相关的措施,会导
2022-09-20 20:34:11 1610
原创 动态代理原理是什么?
如何实现动态代理?JDK Proxy 和 CGLib 有什么区别?典型回答动态代理的常用实现方式是反射。反射机制是指程序在运行期间可以访问、检测和修改其本身状态或行为的一种能力,使用反射我们可以调用任意一个类对象,以及类对象中包含的属性及方法。但动态代理不止有反射一种实现方式,例如,动态代理可以通过 CGLib 来实现,而 CGLib 是基于 ASM(一个 Java 字节码操作框架)而非反射实现的。简单来说,动态代理是一种行为方式,而反射或 ASM 只是它的一种实现手段而已。JDK Proxy 和
2022-09-18 22:53:54 375
原创 Synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别?
synchronized 和 ReentrantLock 是如何实现的?它们有什么区别?在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchronized 不适用的情况下,提供一种可以选择的高级功能。典型回答synchronized 属于独占式悲观锁,是通过 JVM 隐式实现的,synchronized 只允许同一时刻只有
2022-09-15 13:58:04 302
原创 详解 ThreadPoolExecutor 的参数含义及源码执行流程?
线程池线程池是为了避免线程频繁的创建和销毁带来的性能消耗,而建立的一种池化技术,它是把已创建的线程放入“池”中,当有任务来临时就可以重用已有的线程,无需等待创建的过程,这样就可以有效提高程序的响应速度。但如果要说线程池的话一定离不开 ThreadPoolExecutor ,在阿里巴巴的《Java 开发手册》中是这样规定线程池的:线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的读者更加明确线程池的运行规则,规避资源耗尽的风险。说
2022-09-14 17:42:43 130
原创 线程的状态有哪些?它是如何工作的?
什么是线程线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在。一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组系统资源,因此线程之间的切换更加节省资源、更加轻量化,也因此被称为轻量级的进程。当然,线程也是面试中常被问到的一个知识点,是程序员必备的基础技能,使用它可以有效地提高程序的整体运行速度。面试问题本文面试问题:线程的状态有哪些?它是如何工作的?典型回答线程的状态在 JDK 1.5 之后以枚举的方式被定义在 Thread 的源码中,它总共包含以下 6
2022-09-14 13:04:03 155
原创 HahMap 底层实现原理是什么?JDK8 做了哪些优化?
前言HashMap 是使用频率最高的类型之一,同时也是面试经常被问到的问题之一,这是因为 HashMap 的知识点有很多,同时它又属于 Java 基础知识的一部分,因此在面试中经常被问到。HashMap 底层是如何实现的?在 JDK 1.8 中它都做了哪些优化?典型回答在 JDK 1.7 中 HashMap 是以数组加链表的形式组成的,JDK 1.8 之后新增了红黑树的组成结构,当链表大于 8 并且容量大于 64 时,链表结构会转换成红黑树结构,它的组成结构如下图所示:数组中的元素我们称之
2022-09-14 07:29:45 185
原创 SpringCloud之微服务网关Gateway断言路由配置
路由匹配规则Spring Cloud Gateway 的功能很强大,我们仅仅通过 Predicates 的设计就可以看出来,前面我们只是使用了 predicates 进行了简单的条件匹配,其实 Spring Cloud Gataway 帮我们内置了很多 Predicates 功能。gateWay的主要功能之一是转发请求,转发规则的定义主要包含三个部分 Route(路由) 路由是网关的基本单元,由ID、URI、一组Predicate、一组Filter组成,根据Predicate进
2022-01-13 15:37:50 1464
原创 SpringCloud之微服务网关Gateway
本文主要讲解SpringCloud Geteway网关简介,架构,处理流程及路由配置方式。1简介Spring Cloud Gateway 是 Spring Cloud 新推出的网关框架,之前是 Netflix Zuul。网关通常在项目中为了简化前端的调用逻辑,同时也简化内部服务之间互相调用的复杂度;具体作用就是转发服务,接收并转发所有内外部的客户端调用;其他常见的功能还有权限认证,限流控制等等。为了提升网关的性能,SpringCloud Gateway是基于WebFlux框架实现的,..
2022-01-07 15:38:00 247
原创 SpringCloud(三)之客户端调用
本文主要讲解spring-cloud-openfeign介绍,以及微服务之间通过Feign如何调用。SpringBoot与Cloud版本:2.6.1->2021.0.0,微服务系列文章持续更新中......1、什么是FeignFeign是由Netflix开发出来的另外一种实现负载均衡的开源框架,它封装了Ribbon和RestTemplate,实现了WebService的面向接口编程,进一步的减低了项目的耦合度,因为它封装了Riboon和RestTemplate,所以它具有这两种框架的功能.
2022-01-05 10:16:50 261
原创 SpringCloud之服务注册与发现(下)
本文主要讲解微服务框架SpringCloud服务注册与发现。后续陆续推出系列文章。创建服务cloud_cilent新建一个SpringBoot项目,引入cloud相关依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><d
2022-01-05 10:14:46 284
原创 SpringCloud之服务注册与发现(上)
本文主要讲解微服务架构简介,微服务框架SpringCloud服务注册与发现。后续陆续推出系列文章。1 什么是微服务微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户 提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP 的RESTful API)。2 微服务架构优缺点3什么是SpringCloudSpring Cloud 是一系列框架的有序集合,它利用 Spring.
2022-01-05 10:12:08 190
原创 MySQL 索引类型及数据结构
1 索引是什么数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询,更新数据库表中的数据。2 MySQL索引类型 普通索引 Normal 普通索引(由关键字KEY或INDEX定义的索引),目的是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件字段或排序字段创建索引。选择一个数据最整齐、最紧凑的数据列来创建索引。 唯一索引 Unique 与普通索引类似,不同的是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合也必须唯一。在对该列进
2021-11-02 08:57:04 877
原创 ava.sql.SQLException: Connection is closed
执行操作,提示连接已关闭,排查后发现是关闭连接时,方法调用错误本该调用释放连接的方法,结果调用了关闭连接的方法释放连接:DataSourceUtils.releaseConnection(conn, jdbcTemplate.getDataSource());public static void releaseConnection(@Nullable Connection con, @Nullable DataSource dataSource) { try { doRelea
2021-09-15 11:17:38 2024
原创 高级消息队列 RabbitMQ 快速入门
说到消息队列,现在主流的很多,今天的主角 RabbitMQ,是一套基于 AMQP 协议的开源消息代理软件,编写语言是 Erlang。本文将讲解 RabbitMQ 入门,从安装到使用到代码。文章目录 什么是消息队列 下载与安装 安装 Erlang(由于 RabbitMQ 是基于 Erlang 的) 安装 RabbitMQ 配置 RabbitMQ RabbitMQ 的工作原理 六种消息模型 简单模式(simple) 工作模式(work
2021-08-02 08:50:23 86
原创 Spring Boot 入门之配置文件加载
文章目录 前言 Spring Boot 配置文件概述 简介 配置文件名称、格式 properties 和 yml 的区别 SpringBoot 的配置文件加载顺序 多配置文件加载特性 多环境配置 properties 和 yml 共存 任意位置加载 ApplicationEnvironmentPreparedEvent 事件之重置配置文件加载位置 扩展 前言Spring Boot 在工作
2021-08-02 08:47:41 7481
原创 JAVA面试之JVM
# 1. JVM JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆和一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。 Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。# 2. JVM 内存区域## 2. 1 内存模型![在这里插入图片描述](https://images.gitbook.cn/40f5c770-b620-11eb-8...
2021-07-19 17:48:34 223
原创 IDEA连接数据库
开发过程中,往往需要连接各种数据库,连不同的工具还要用不同的工具。所以很麻烦。用idea的小伙伴可能都知道,idea可以直接连接各种数据库,这样就方便多了。下面记录下连接的步骤:1、点击右侧的Database切换视图2、选择添加数据库3、添加数据库,输入相关用户名密码,点击测试。ok就可以啦4、右键添加Query console即可写SQL5、针对不支持的数据库,可以自己建驱动,添加驱动包,添加模板url,就可以连接。最后再次添加数据库连接,就已经有建好的
2021-03-23 14:24:47 530
原创 java查看线程dump
1、找到应用java进程ps -ef|grep java2、找到cpu占用比较高的进程top -p pid -H3、输出线程dumpjstack pid > stack.log4、查看线程dumppid->转化hex搜索hexid查看堆栈信息
2021-01-05 17:15:27 500
原创 activiti支持国产数据库
activit作为一种轻量级,可嵌入的BPM引擎,广泛应用于企业级管理系统,然而他只支持一些数据库,国产数据库基本不支持,但我们可以扩展原生支持的数据库:Activiti数据库类型 JDBC URL实例 备注 h2 jdbc:h2:tcp://localhost/activiti 默认配置的数据库 mysql jdbc:mysql://localhost:3306/activiti?autoReconnect=true 使用mysql-connector.
2020-09-24 17:37:12 2620 20
原创 java.lang.NoSuchMethodError: org.bson.types.ObjectId.toHexString()Ljava/lang/String
记一次JVM加载jar顺序引发的血案项目运行在tomcat,Linux系统上,一切正常,换了windows服务器,项目启动失败,报一堆奇怪的错误19-Jan-2020 09:03:57.611 严重 [Catalina-startStop-1] org.apache.catalina.core.ContainerBase.startInternal A child container...
2020-01-19 10:25:11 2057
原创 国产数据库(Gbase,神通,高斯,达梦)常用数据类型
因项目需要适配国产数据库,网上资料太少,自己整理了一下几个国产数据类常用数据类型,后续会记录一些适配遇到的问题,方便日后查看,也希望给同样遭遇的小伙伴一点点参考1Gbase8s数据库 分类 数据类型 说明 范围 数值型 INT/INTEGER 整数 ...
2020-01-19 09:56:07 10953
原创 Oracle与MySql常用数据类型对比
1.Oracle常用数据类型 分类 数据类型 说明 范围 数值型 number(p,s) 存储定长的整数和小数 p最大精度是38位(十进制) float 浮点数 用来存储1...
2020-01-19 09:46:18 1136
原创 Java反射调用类方法
public class MethodClass { public String name(){ return "L$"; }}//调用MethodClass的name方法public class TestCase2 extends TestCase { public void testCase() { MethodClass ...
2019-10-17 16:39:25 266
原创 java中的三大集合遍历及foreach循环总结
对于java中的三大集合的遍历及foreach我做了一个简单的总结,分享一下学习心得。public static void main(String[] args) { //list集合 List list=new ArrayList(); list.add("小米"); list.add("华为"); list.add("中兴"); list.add("苹果");
2017-09-03 13:00:19 525
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人