自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

汤圆 的博客

业精于勤荒于嬉,行成于思毁于随,自是年少,需韶华倾负 ~

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 java调用打印机把指定文件打印成纸质文件

引入pom <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.6</version> </dependency>逻辑代码package com.scan.utils;imp

2021-05-12 14:39:59 371

原创 java调用脚本迭代升级项目

java调用shell脚本迭代升级Controller层的接口,包含逻辑代码 private static Logger logger = LoggerFactory.getLogger(LogController.class); /** * 获取当前tomcat下webapp文件夹目录 * @param request * @return 返回linux的tomcat路径 */ private String linuxUrl(HttpS

2021-04-22 13:57:09 290

原创 MySQL explain执行计划解读

引言:实际项目开发中,由于我们不知道实际查询的时候数据库里发生了什么事情,数据库软件是怎样扫描表、怎样使用索引的,因此,我们能感知到的就只有sql语句运行的时间,在数据规模不大时,查询是瞬间的,因此,在写sql语句的时候就很少考虑到性能的问题。但是当数据规模增大,如千万、亿的时候,我们运行同样的sql语句时却发现迟迟没有结果,这个时候才知道数据规模已经限制了我们查询的速度。所以,查询优化和索引也就显得很重要了。问题:当我们在查询前能否预先估计查询究竟要涉及多少行、使用哪些索引、运行时间呢?答.

2021-03-08 12:37:31 137

原创 数据库mysql调优(最全整理)

一、存储过程1. 存储过程优缺点2. 数据库设计: 数据库三大范式3. SQL优化定位操作4. 慢查询二、索引三、SQL语句优化技巧1 . SQL优化技巧2 . MySQL数据引擎 myisam / innodb/ memory3 . 数据库数据备份四、分库分表垂直拆分水平拆分一、存储过程什么是存储过程简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器.

2021-03-08 09:55:14 6970 2

原创 MySql水平分库案例

思路:在大型电商系统中,每天的会员人数不断的增加。达到一定瓶颈后如何优化查询。可能大家会想到索引,万一用户量达到上亿级别,如何进行优化呢?答:使用水平分割拆分数据库表。使用水平分割拆分表,具体根据业务需求,有的按照注册时间、取摸、账号规则、年份等。首先我创建三张表 user0 / user1 /user2 , 然后我再创建 uuid表,该表的作用就是提供自增的id。create table user0(id int unsigned primary key ,name varchar(32.

2021-03-08 09:53:37 205 1

原创 如何定位慢查询

创建表结构/*部门表*/CREATE TABLE dept( deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, /*编号*/dname VARCHAR(20) NOT NULL DEFAULT "", /*名称*/loc VARCHAR(13) NOT NULL DEFAULT "" /*地点*/) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;/*员工表*/CREATE TABLE emp(empno M

2021-03-05 12:36:24 354

原创 JDK新特性

文章目录前言一、java8新特性前言本文主要讲解java8以后的每个版本的新特性,有准备面试的各位同学也可以学学看看,有想初步了解的同学也可以瞅瞅,有什么疑问评论区留言,有哪里我写错的了,也欢迎评论区指正,我是当作笔记记录的,大家随意~提示:以下是本篇文章正文内容,下面案例可供参考一、java8新特性...

2021-03-01 11:47:13 80

原创 主从架构搭建:一主一从,往主节点去写,在从节点去读,可以读到

之前几讲都是在铺垫各种redis replication的原理,和知识,主从,读写分离,画图知道了这些东西,关键是怎么搭建呢???一主一从,往主节点去写,在从节点去读,可以读到,主从架构就搭建成功了1、启用复制,部署slave nodewget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gztar -xzvf tcl8.6.1-src.tar.gzcd /usr/local/tcl8.6.1/unix/./configure

2021-02-23 09:59:18 409 1

原创 高并发专题--5:关于redis高并发你晓得多少?

关于redis高并发你晓得多少?1、redis高并发跟整个系统的高并发之间的关系2、redis不能支撑高并发的瓶颈在哪里?3、如果redis要支撑超过10万+的并发,那应该怎么做?4、接下来要讲解的一个topic5、redis replication的核心机制6、master持久化对于主从架构的安全保障的意义7、主从架构的核心原理8、主从复制的断点续传9、无磁盘化复制10、过期key处理1、redis高并发跟整个系统的高并发之间的关系redis,你要搞高并发的话,不可避免,要把底层的缓存搞得很好mys

2021-02-23 09:46:56 6354 3

原创 Java8 : Optional 类,优雅判定null

Optional不是对null关键字的一种替代,而是对于null判定提供了一种更加优雅的实现NullPointException可以说是所有java程序员都遇到过的一个异常,虽然java从设计之初就力图让程序员脱离指针的苦海,但是指针确实是实际存在的,而java设计者也只能是让指针在java语言中变得更加简单、易用,而不能完全的将其剔除,所以才有了我们日常所见到的关键字null。空指针异常是一个运行时异常,对于这一类异常,如果没有明确的处理策略,那么最佳实践在于让程序早点挂掉,但是很多场景下,不是开.

2021-02-19 11:04:38 640

原创 高并发专题--4:关于redis数据丢失你晓得多少? redis持久化--RDB和AOF

我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的企业级redis集群架构:海量数据、高并发、高可用持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去比如你redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用redis持久化 RDB和AOF1、RDB和AOF两种持久化机制的介绍?2、RDB持久化机制的优点?3、RDB持久化机制的缺点?4、AOF持久化机制的优点?5、AOF持久化机制的缺点?6、RDB和AOF到底该如何选择.

2021-02-19 09:47:47 372

原创 高并发专题--3:CPU缓存执行原理

大家都知道硬盘读取慢,于是就通过缓存把内容加载到内存里处理器缓存 cpu:主内存慢cpu高速缓存指令重排的场景:大家都晓得cpu执行线程是通过指令执行的,这里的执行并不是有序的,cpu会对执行指令进行排序。当CPU写缓存时发现缓存区块正被其他CPU占用,为了提高CPU处理性能,可能将后面的读缓存命令优先执行。并非随便重排,需罢要遵守as-if-serialiX5986047as-if-serial语义的意思指:不管怎么重排序(编译器和处理器为了提高并行度) , (单线程)程序的执行结果不

2021-02-18 18:01:37 94

原创 高并发专题--2:线程的执行过程和状态

线程状态打印:Thread.currentThread().getState().toString()java.lang.Thread.State对线程的6个状态定义1.New:尚未启动的线程的线程状态。2.Runnable:可运行线程的线程状态,等待CPU调度。随时可执行。3.Blocked:线程阻塞等待监视器锁定的线程状态。处于synchronized同步代码块或方法中被阻塞。4.Waiting:等待线程的线程状态。需等待调用通知才会启动。下列不带超时的方式:Object.wait. Thr

2021-02-18 17:36:45 123 1

原创 高并发专题--1:虚拟机JVM 结构 执行原理

虚拟机执行目的:一处编写,处处运行线程独占:每个线程都会有它独立的空间,随线程生命周期而创建和销毁线程共享:所有线程都能访问这块内存数据,随着虚拟机或者GC创建和销毁方法区:JVM用来存储加载的类信息、常量、静态变量、编译后的代码等数据虚拟机规范中这是一个逻辑区划。具体实现根据不同虚拟机来实现。如: oracle的HotSpot在java7中方法区放在永久代, java8放在元数据空间,并且通过GC机制对这个区域进行管理堆内存:堆内存还可以细分为:老年代、新生代(Eden、From

2021-02-18 17:32:07 74

原创 docker安装rocketmq

拉取镜像docker pull foxiswho/rocketmq:server-4.3.2 docker pull foxiswho/rocketmq:broker-4.3.2 创建容器方法一:#创建nameserver容器 docker create -p 9876:9876 --name rmqserver \ -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \-e "JAVA_OPTS=-Duser.home=/opt" \

2021-02-18 16:28:13 105

原创 线程不安全分析代码示例

线程安全问题引发需满足三个条件:多线程环境有共享数据有多条语句操作共享数据分析代码示例:以下代码演示了 100 个线程同时对 count 执行自增操作,操作结束之后它的值有可能小于 100。package com.demo.controller.line;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.E

2021-02-03 15:57:10 306 2

原创 简述 string 对象,StringBuffer、StringBuilder 区分

string是 final 的,内部用一个 final 类型的 char 数组存储数据,它的拼接效率比较低,实际上是通过建立一个 StringBuffer,让后台调用 append(),最后再将 StringBuffer toSting(),每次操作 Sting 都会重新建立新的对象来保存新的值.这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的。StringBuffer也是 final,线程安全的,中采用一个 char 数组来保存需要 append 的字符串,char 数组有一个初始大小,当

2021-01-14 09:30:19 159 1

原创 运行报“端口号被占用“的处理方法:The Tomcat connector configured to listen on port 8080 failed to start.

报错日志:[2020-12-30 14:14:05.894] 0.stdout.ERROR #traceId:0 host:0 from:0 uri:0 clientIp:0 rpcId:0 userId:0 totalTime:0 asyncTime:0 file:0 sqlCostTime:0 requestParams: requestBodys: responseResults: line:0 msg:Failed to start connector [Connector[HTTP/1.1-80

2020-12-30 14:36:20 275 1

原创 List实现方法及实现原理

与Collection接口相比,List接口新增了如下方法:add(int index,E element):在列表指定位置插入指定元素addAll(int index,Collection<? extends E> c):在指定位置添加集合元素get(int index):获取指定位置的元素indexOf(Object o):获取元素的第一个位置isEmpty():判断列表中是否有元素lastIndexOf(Object o):获取指定元素的最后一个位置listIterator

2020-12-25 17:52:56 1623

原创 java身份证号码校验规则 (源码)

中国公民身份证号码算法识别工具类代码区 可直接粘贴使用代码区 可直接粘贴使用/** * Copyright (C), 2019-2019, XXXXXXX * FileName: IdentityDocumentUtil * Author: Admin * Date: 2019/10/14 11:53 * Description: * History: * &lt...

2020-12-11 16:29:01 2598

原创 Java代码网络请求接口

public static void send(String url, String token, String bodyJson) {try {CloseableHttpClient httpClient = HttpClients.createDefault();RequestConfig requestConfig = RequestConfig.custom().setSocket...

2020-12-11 16:26:15 330 1

原创 Token令牌认证和单点访问原理

Token令牌认证优点:无状态、可扩展支持移动设备跨程序调用安全存在意义:基于服务器的验证。我们都是知道HTTP协议是无状态的,这种无状态意味着程序需要验证每一次请求,从而辨别客户端的身份。在这之前,程序都是通过在服务端存储的登录信息来辨别请求的。这种方式一般都是通过存储Session来完成。但是,随着Web,应用程序,分布式程序,以及移动端的兴起,这种验证的方式逐渐暴露出...

2020-12-11 16:03:55 246

原创 把eclipse的web maven项目导入idea并成功运行访问web页面

把eclipse的web maven项目导入idea并成功运行访问web页面看图看图这是我的项目目录,参考一下:找到项目目录点击OK如图已经导入成功这里敲重点,大家都知道,在eclipse中jar是以jar文件的方式引用的,但是idea中是在pom.xml中引入的,这就需要把eclipse中的项目jar环境以maven私服方式让idea自动导入.这个路径就是上文中提到的jar文件夹路...

2019-08-28 11:42:05 247

原创 A component required a bean of type 'redis. clients. jedis. JedisPool' that could not be found.

报错记录:redis. clients. jedis. JedisPool图片: 这里实际的错误是 jedis 注入错误,所以 extends 一下 CachingConfigurerSupport 中的 redisPoolFactory() 方法即可。下面就开始敲码import org.slf4j.Logger;import org.slf4j.LoggerFactory;impor...

2019-06-27 11:12:29 6379 1

MYSQL5.1 简体中文参考文档.zip

MYSQL5.1 简体中文参考文档.zip

2021-03-05

空空如也

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

TA关注的人

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