自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Java虚拟机:对象创建过程与类加载机制、双亲委派模型

一、对象的创建过程:1、对象的创建过程:对象的创建过程一般是从 new 指令(JVM层面)开始的,整个创建过程如下:(1)首先检查 new 指令的参数是否能在常量池中定位到一个类的符号引用;(2)如果没有,说明类还没有被加载,则须先执行相应的类加载、解析和初始化等类加载过程,该过程的具体步骤详见下文(3)如果有,虚拟机将在堆中为新生对象分配内存。分配内存方式有:指针碰撞和空闲列表,具体选择哪种分配方式由 Java 堆是否规整决定,而 Java 堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能决

2021-12-07 17:00:11 174

原创 spring 动态切换数据源 多数据库

1.背景对于数据量在1千万,单个mysql数据库就可以支持,但是如果数据量大于这个数的时候,例如1亿,那么查询的性能就会很低。此时需要对数据库做水平切分,常见的做法是按照用户的账号进行hash,然后选择对应的数据库。水平切分图,数据落入不同的库中2.实现2.1示意图先来看下大致示意图:图1是比较常见的情况,单个数据库图2展示了web应用和数据库之间的一个中间层,这个中间层去选择使用哪个数据库。2.2数据库配置首先我们需要配置多个数据源,我是用xml进行配置的其他方法大同小异,就是多建立了几

2021-01-12 11:02:30 669

原创 Java中的队列Queue

我们都知道队列(Queue)是一种先进先出(FIFO)的数据结构,Java中定义了java.util.Queue接口用来表示队列。Java中的Queue与List、Set属于同一个级别接口,它们都是继承于Collection接口。Java中还定义了一种双端队列java.util.Deque,我们常用的LinkedList就是实现了Deque接口。二、队列的实现Java中对于队列的实现分为非阻塞和阻塞两种。非阻塞队列分为如下LinkedListLinkedList是双相链表结构,在添加和删除元素

2021-01-12 11:00:31 694

原创 页面埋点 pv(百度统计)

一.如何部署百度统计JS代码在项目头部插入以上由百度统计提供的代码: 二.相关APItrackPageView(用于发送某个指定URL的PV统计)使用方法1在生成页面或切换页面是,在JS中调用以下代码:_hmt.push([’_trackPageview’, pageURL]);pageURL: 指定要统计PV的页面的URL. 此项必选, 必须是以’/‘开头的相对路径使用方法2如果页面的url比较乱, 希望在统计报告中可以按照某种规则进行

2020-09-09 14:20:04 1283 1

转载 我们写过的无效单元测试

单元测试

2023-01-30 14:24:17 185

原创 Scheduled和quartz

Scheduled  只适合处理简单的计划任务,不能处理分布式计划任务。优势:是spring框架提供的计划任务,开发简单,执行效率比较高。且在计划任务数量太多的时候,可能出现阻塞,崩溃,延迟启动等问题。  Scheduled定时任务是spring3.0版本之后自带的一个定时任务。其所属Spring的资源包为:spring-context-support。所以需要使用Scheduled定时任务机制时,需要在工程中依赖对应资源,具体如下:  org.springframework  spring-c

2021-04-20 10:52:51 693

原创 如何优雅处理重复请求/并发请求?

对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。重复的场景有可能是:黑客拦截了请求,重放前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了。网关重发….利用唯一请求编号去重你可能会想到的是,只要请求有唯一的请求编号,那么就能借用Redis做这个去重——只要这个唯一请求编号在redis存在,证明处理过,那么就认为是重复的代码大概如下:S

2021-02-20 18:01:17 294

原创 ThreadLocal

ThreadLocal与线程同步机制不同,线程同步机制是多个线程共享同一个变量,而ThreadLocal是为每一个线程创建一个单独的变量副本,故而每个线程都可以独立地改变自己所拥有的变量副本,而不会影响其他线程所对应的副本。可以说ThreadLocal为多线程环境下变量问题提供了另外一种解决思路。ThreadLocal定义了四个方法:get():返回此线程局部变量的当前线程副本中的值。initialValue():返回此线程局部变量的当前线程的“初始值”。remove():移除此线程局部变量当前线程

2021-01-12 11:03:40 98

原创 如何选择分布式事务解决方案

概述事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。最典型的需要事务的场景是银行账户间的转账:假如 A 账户要给 B 账户转账 100 元,那么 A 账户要扣减 100 元,B 账户要增加 100 元,这两个账户的数据变更都成功才可算作转账成功。更严格来说,可以用 ACID 四个特性表述事务:Atomicity:原子性,事务中的所有操作要么都成功执行,要么都取消执行,不能存在部分执行,部分不执行的状态。Consistency:一致性,举个例子简单的理解就是,A、B 两个账户各有

2021-01-12 11:01:30 132

原创 Spring管理数据库事务

一、事务的一些基本概念事务的属性(ACID):原子性一致性隔离性持久性白话“事务”事务有三个状态(或者说是过程):开始、提交、回滚。事务的隔离级别隔离级别描述举例DEFAULT底层数据库存储的默认隔离级别READ_UNCOMMITTED最低的隔离级别,可以说它并不是事务,因为它允许其他事务来读取未来提交的数据上边的例子中,就算李四没有收这10元,其他人也能读取到李四多了10元。READ_COMMITTED大多数数据库的默认级别,它确保其他事务可以读取其他事务已经提交的

2020-11-30 17:47:28 156

原创 LINUX常用操作命令和命令行编辑快捷键

终端快捷键:Ctrl + a/Home 切换到命令行开始Ctrl + e/End 切换到命令行末尾Ctrl + l 清除屏幕内容,效果等同于 clearCtrl + u 清除剪切光标之前的内容Ctrl + k 剪切清除光标之后的内容Ctrl + y 粘贴刚才所删除的字符Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)Ctrl + c 终止命令ctrl + o 重复执行命令Ctrl + d 退出 shell,logoutCtrl + z 转入后台运行,但

2020-08-11 14:52:03 749

原创 mysql添加距离函数

mysql添加距离函数问题:随着数据的增多,计算距离的函数会遍历全部数据,导致sql执行变慢。不适合数据量很大的表。SELECT*FROM(SELECTget_distance( ‘118.79926367881872’, ‘31.98749838084618’, s. longitude, s. latitude) DISTANCE, s. id, s. station_name, s. station_type, s. province_code, s. city_code, s. are

2020-07-13 16:59:57 245

原创 mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by问题的解决

mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by查看mysql版本命令:select version();查看sql_model参数命令:SELECT @@GLOBAL.sql_mode;SELECT @@SESSION.sql_mode;发现:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIV

2020-07-13 16:57:58 175

原创 hadoop3.2.0伪分布式搭建

一、hadoop发展由来、历史、子项目什么是hadoopGoogle Lab 开发的 Map/Reduce 和 Google File System(GFS) ,后由apache基金会进行封装为MapReduce和HDFS组成Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。二、讲解HDFS...

2019-07-26 09:25:55 336

原创 Linux创建用户使用命令

useradd user1 添加用户passwd user1 设置密码chown -r user:group 授权目录userdel –r user3 删除用户及目录

2019-07-19 09:27:44 241

原创 ngnix配置详解

定义Nginx运行的用户和用户组user www www;nginx进程数,建议设置为等于CPU总核心数。worker_processes 8;全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;进程文件pid /var/run/nginx....

2019-07-19 09:26:28 301

原创 docker的安装步骤

1.关闭防火墙 systemctl stop firewalld2.禁止开机启动 systemctl disable firewalld3.关闭selinux修改文件 vi /etc/selinux/config将SELINUX=disabled (改完需重启系统)通过getenforce 查看4.安装docker(参考官方网址:https://docs.docker.com)Ge...

2019-07-19 09:24:10 172

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除