自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (2)
  • 收藏
  • 关注

原创 Oracle公共账号和密码

目前在官网下载 jdk以及其他oracle公司的产品的时候需要登陆,这边分享一个账号,方便下载。密码:OraclePassword123!账户:[email protected]。挥一挥衣袖,提供一份方便。

2019-04-21 10:54:40 40369 159

原创 MultipartFile 上传文件的踩坑点

上传文件

2022-09-29 11:14:31 1335 1

原创 json字符串转换

转换:StringUtil.getValueFromMap(JSONObject.toJavaObject(JSON.parseObject(a), Map.class)))

2022-04-01 11:42:10 201

原创 sql中用in 和not in分析

WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select * from t1 where phone not in (select phone from t2)直接就把我跑傻了。。。十几分钟,检查了一下 phone在两个表都建了索引,字段类型也是一样的。原来 not in 是不能命中索引的。。。。改成 NOT EXISTS 之后查询 20s

2022-03-11 11:21:06 512

原创 ThreadLocal实际项目应用

一、定义threadlocal:它是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据,提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的,通过get和set方法就可以得到当前线程对应的值,做个不恰当的比喻,从表面上看ThreadLocal相当于维护了一个map,key就是当前的线程,value就是需要存储的对象。这里的这个比喻是不恰当的,实际上是ThreadLocal的静态内部类ThreadLocalMap为每个Thread

2021-08-24 11:00:10 558

原创 Mysql存储过程分析

一、用户连接到myql服务端,执行一个sql语句会经过以下几个步骤,先与连接层进行连接,然后服务层对用户提供的sql进行优化(可能你写的sql查询的是a,但经过优化器之后他变成了查询b),引擎层InnoDB支持事务,高并发,行锁(支持事务相率相对变慢,但因为他是行锁可以进行高并发,所以相率还算可以),MyISAM不支持事务,性能优先,表锁,一次锁住一张表二、sql执行过程select …from …join …on …where …group by …having … order by … lim

2021-08-20 11:29:20 196

原创 Java常用工具库记录

1、比较两个对象是否相等当我们用equals比较两个对象是否相等的时候,还需要对左边的对象进行判空,不然可能会报空指针异常,我们可以用java.util包下Objects封装好的比较是否相等的方法Objects.equals(strA,strB);源码是这样的publicstaticbooleanequals(Objecta,Objectb){return(a==b)||(a!=null&&a.equals(b));}...

2021-08-02 18:09:37 131

原创 linux自动备份数据库并发送邮件

首先写一个定时任务脚本:第三行就是数据库备份命令,第四行就是发送附件的命令,其中发送附件我用mail -a +附件的方式一直无法发送,最后用mutt方式方式附件成功!下方为配置安装邮件的步骤:使用场景:阿里云服务器centos7(linux)+发送端:163邮箱+接收端:qq邮箱准备:163邮箱配置QQ邮箱配置开始配置阿里云封闭25端口,所以不能通过默认的端口(25)发送邮箱服务,需要通过邮箱服务器的加密端口(465)来完成发送邮件的服务。配置流程如下:①修...

2021-04-06 14:05:12 571

原创 服务器内存占用问题

场景:业务突然报错,通过后台日志看的报错是 error writing file /tmp/XXX一、在服务器上输入:df -h当时dev/vdal这个盘已经100%利用率了,这个盘就差不多相当于win的c盘,只能去删除没用的文件,主要是日志文件二、查看目录下每个文件磁盘占用大小:du -ah --max-depth=1发现这两个文件比较大,再进入进行排查删除大文件即可...

2021-04-01 14:54:11 324

原创 springboot打包项目报错文件找不到

场景:项目采用的是父子继承类型的项目package打包一直报错,找不到依赖的java文件,但是项目可以正常启动,最后考虑到父项目并没有被打包进系统,首先打包依赖的父项目,再打包子项目成功运行...

2021-03-22 19:57:02 283

原创 服务器相关命令

1、登陆root用户,再通过root用户登陆oracle用户,#su –oracle2、开启数据库监听,$lsnrctl start3、连接数据库,$sqlplus / as sysdba4、启动数据库,SQL>startup;5、返回root用户,$su - root6、进入jboss5路径,#cd /OA-YIYONG/jboss5/bin1、登陆root用户,再通过root用户登陆oracle用户,#su –oracle2、关闭数据库监听,$lsnrctl ...

2021-03-19 13:45:36 141

原创 sql优化学习

一、Order by排序优化当需要对age,money进行排序时可以加上复合索引,然后 select id,age,money from eap order by age,money,这个时候使用的是usIng Index,orderby的顺序需要和索引的顺序相同二、子查询用连接查询替代三、Or操作如果我们是用or关联两个字段,那么这两个字段都要有索引,如果一个有一个没有,则索引失效,加一个复合索引也不行但可以用union替换or操作,提示查询效率四、limit分页查询

2021-01-26 14:25:03 390

原创 tomcat服务器经常报错PermGen Space

分析tomcat环境下的重启方式方式一:sh shutdown.sh这种方式是让正在运行的java线程从运行态(running)改变为sleep,通过这种命名java线程会越来越多,这种方式关闭的tomcat,无法关闭JVM进程,JVM可以去清清除ermGenSpace中的内存(方式二:kill -9 这种方式当我们的tomcat中有很多的class文件时,就很有可能报错PermGen Space,指的是内存的永久保存区,该块内存主要是被JVM用来存放 class 和 mete 信息的,当 cl

2020-12-25 13:49:42 514

原创 Oracle锁表处理

第一步:select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;第二步alter system kill session '869,209';

2020-12-02 17:13:20 134

原创 jvm、树、数据库存储引擎知识总结

一、jvm相关1、java执行流程以及五个运行时区程序计数器:当前线程所执行的字节码的行号指示器,为了线程切换后能恢复到正确的位置,每条线程都需要有一个独立的程序计数器,互不影响,独立存储,我们称之为“线程私有”,他也是java虚拟机规范中没有规定任何oom情况的区域虚拟机栈:线程私有,生命周期和线程相同,它是描述java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接等信息,每个方法从调用到执行完成的过程,就对应这一个栈帧在虚拟机栈中从入栈到出

2020-11-02 18:06:42 194

原创 通过docker整合rabbitmq和redis项目案例

1、安装redisdocke pull redis:5.0.8(例如)安装完成后,我们可以使用以下命令来运行 redis 容器:$ docker run -itd --name redis-test -p 6379:6379 redis:5.0.8-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。安装成功接着我们通过 redis-cli 连接测试使用 redis 服务。$ do

2020-10-30 15:14:18 359 1

原创 深入理解java序列化及Serializable接口的作用

首先解释一下字节流和字符流:要把一片二进制数据数据逐一输出到某个设备中,或者从某个设备中逐一读取一片 二进制数据,不管输入输出设备是什么,我们要用统一的方式来完成这些操作,用一种抽象 的方式进行描述,这个抽象描述方式起名为 IO 流,对应的抽象类为 OutputStream 和 InputStream,不同的实现类就代表不同的输入和输出设备,它们都是针对字节进行操作的。 在应用中,经常要完全是字符的一段文本输出去或读进来,用字节流可以吗?计算机中的一切最终都是二进制的字节形式存在。对于...

2020-10-28 16:03:47 320

原创 关于return和finally的执行顺序问题

第一种分析:顺序是:System.out.println("1111");return 1;System.out.println("1111");return 2;第二种分析:System.out.println("1111");return 1;System.out.println("1111");return 1;第三种分析:System.out.println("1111");System.out.println("1111");.

2020-10-28 11:31:30 140

原创 通过枚举和工厂模式解决if-else语句

枚举方式一、接口public interface DoThing { void doThing();}二、枚举类public enum EnumThing implements DoThing { ADMIN{ @Override public void doThing() { System.out.println("111"); } }, ROLE1{ @Overr

2020-10-26 09:59:57 386 4

原创 多线程环境下long和double不安全问题

首先我们分析一下volatile,它具有可见性、原子性和有序性1他是保证了可见性,volatile提供了happens-before的保证,确保一个线程的修改对其他线程是可见的。2.原子是世界上的最小单位,具有不可分割性3.这个关键字会禁止指令重排序优化。也就是说,在 volatile 变量的赋值操作后面会有一个内存屏障(生成的汇编代码上),读操作不会被重排序到内存屏障之前。正题:long和double线程不安全分析在java中除了long,double之外的所有基本类型的读和赋值,都是

2020-10-23 11:43:46 1242 4

转载 @SpringBootApplication 注解 以及SpringBoot 启动类 执行流程

一、SpringBootApplication(1、它是springboot的核心配置,目的是开启自动配置,直接把这个注解加到主启动类上,则默认只扫描主启动类所在的包,以及其子包。如果我们是微服务开发模式,想要在这里也引入其他模块的实体,则可以通过(@SpringBootApplication(scanBasePackages = ("com.ld"))//包扫描路径提升到com.ld,否则无法扫描到core中的公共组件类)方式实现。2、点击进入发现其主要注解有这三个。(一)、@C

2020-10-15 11:19:47 558

原创 mongodb聚合操作记录

工作中遇到到一个聚合,记录一下,方便后边学习

2020-10-09 09:18:39 1872

原创 JDK1.8 Stream流操作和lambda表达式学习记录

lambda函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。函数式编程的好处parallelization 并行:所谓并行的意思就是在并行环境下,各个线程之间不需要同步或互斥。lazy evaluation 惰性求值:这个需要编译器的支持。表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值,也就是说,语句如x:=expression; (把一个表达式的结果赋值给一个变量)明显的调用这个表达式被计算并把结果放置到 x 中,但是先不管实际在 x 中的是什么,

2020-09-28 16:32:46 259

原创 通过一个用例详细解释@Qualifier和@Autowired

首先思考一个问题:当我们在controller层注入一个service时,他是注入的是service接口,他是怎么知道找那个对应实现类的?平时我们这样写的含义是什么?@Autowired默认按类型装配,@Resource(这个注解属于J2EE的),默认安装名称进行装配有时候我们之间通过@Autowired注入一个service接口,并没有指定什么,他是怎么定位到impl实现类的呐?其实他是通过名称去定位的,因为此时我们此时只有一个service的实现类,所有他能直接定位到,但当你尝试再写

2020-08-27 11:04:16 555

原创 mysql、oracle日程总结

一、MyISAM 和 InnoDB 的区别1、InnoDB支持事务,MyISAM不支持事务2、InnoDB支持外键,MyISAM不支持外键3、InnoDB是聚集索引,也叫聚簇索引(使用B+Tree作为索引结构,数据文件和主键索引绑定在一起的,它必须有主键),MyISAM是非聚集索引(使用B+Tree作为索引结构,数据文件和索引是分离的,可以没有主键)...

2020-08-26 18:05:36 251

原创 Linux命令日程总结

1、查看包含字符串的上下文命令cat "123" test.log,查看test.log中包含123的日志cat -10 "123" test.log 打印匹配行的前后10行2、查找文件命令whereis +文件名/目录find 路径 参数 (find / -name 'test.py', find /usr/local -name 'test*')当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高........

2020-08-26 17:45:21 212

原创 用大顶堆取出一个数组中最小的k个数

eg:从一亿个数中取出最小的k个数字分析:大顶堆满足,当前元素永远大于他的左右子树的值,非叶子节点的下标为n/2-1,左子树下标为i*2+1右子树下标为i*2+2源码:import java.util.ArrayList;/** * eg:一亿个数中取出最小的k个数 * 采用大堆顶方式 */public class AyyayDemo { /** * 维护这个堆,使其成为一个大顶堆 * @param index 下标 * @param arr .

2020-08-24 16:53:26 419

原创 linux7通过docker拉取redis并开启远程连接访问

通过docker直接拉取的redis,在springboot项目中一直报错,不能连接到这个Docker安装Redis并配置远程连接参考如下:删除上面的容器命令如下:其实上面已经就启动好了redis,以下是我在阿里云ecs的操作接下来就是去官网下载对于linux版本下的redis地址下载地址 解压把redis.conf文件放到centos某个路径下,我是root身份登录的,就在/root建立了redis/conf,以及redis/data 接下来修改conf配置文件部分内容注释掉b...

2020-07-24 17:13:03 641

原创 爬虫解决图片验证码,和点击验证码问题

12306的点击选中验证码# @Time : 2020/7/24 10:57# @Author : ZhangYangyang# @Software: PyCharmimport requests# img图片获取的链接img_url = 'https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand'session = requests.session(

2020-07-24 12:00:36 1541

原创 selenium学习记录

一、配置环境我的google是83版本的,你可以自行查看需要版本,下载地址url:https://npm.taobao.org/mirrors/chromedriver把下载的文件放在一个文件夹内,配置进系统变量Path中,网上也有说也需要放在python所在目录下二、安装pip install Selenium三简单测试from selenium import webdriverfrom time import sleep# 1.创建Chrome浏览器对象,这会在电脑上.

2020-07-21 10:29:11 136

原创 通过scrapy爬取图片、文件、视频

scrapy官方默认使用的下载文件是:settings.py:'scrapy.pipelines.files.FilesPipeline': 1 # FilesPipeline要置于其他pipeline之前items.py: file_urls = scrapy.Field() file = scrapy.Field()scrapy官方默认下载图片是settings.py:'scrapy.pipelines.images.ImagesPipeline': 1it...

2020-07-14 09:26:31 1869

原创 平时写的一些正则记录

姓名,李博,现任百泉街道工委书记。曾任,主席。匹配职位(最小匹配)现任开始,第一个。句号结束:现任.*?。

2020-07-10 10:46:46 134 1

原创 记录一次购买centos7.3服务器装docker\redis等踩坑

一、购买阿里云服务器,我选择的是centos7.3二、安装docker从官网文档可以查阅:https://docs.docker.com/get-docker/第一步:移除之前的docker版本,相关组件$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \

2020-06-04 10:39:43 353

原创 Centos6.8空间不足清理

一、通过df -h --max-depth=1,查看当前目前下,文件占用的大小,二、通过df -h查看空间剩余(或者free)或者通过删除日志进行清理

2020-06-03 16:31:32 526

原创 scrapy修改源码生成Pipelines、spider文件添加作者时间注释

需求分析:1、当我们编写的爬虫量非常大时,而且他们都具有特定的规律,每次我们都需要复制相同的pipelines元素,或者其他重复的工作,那么我们就可以通过修改scrapy源码中的template模板,让他创建时自动生成你需要的Pipelines文件格式,简化工作class ExcelPipeline(object): def __init__(self): self.wb = Workbook() self.ws = self.wb.active

2020-05-22 17:25:32 507

转载 与操作系统常见知识点的一场对弈

这篇文章只是对一些操作系统比较重要概念的一个概览,深入学习的话,建议大家还是老老实实地去看书。另外,这篇文章的很多内容参考了《现代操作系统》第三版这本书,非常感谢。操作系统基础1.1 什么是操作系统?????‍????面试官 :先来个简单问题吧!什么是操作系统????? 我 :我通过以下四点向您介绍一下什么是操作系统吧! 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石; 操作系统本质上是运行在计算

2020-05-22 09:39:47 290

原创 Java复习一异常

概念:如果某个方法不能以正常的方式完成任务,就会通过另一种途径退出。Throwable是所有异常或者错误的超类,抛出的异常有Error和Exception两种,Error指的是java运行时内部错误,或者资源耗尽错误,如果出现了这种错误,一方面是告诉用户,剩下的就是尽力是程序安全的终止。Exception异常分为编译异常CheckerException和运行时异常RuntimeException,常见的运行时异常有NullPointException、ClassCastException编译

2020-05-13 17:00:36 187

原创 github上三个不错的开源框架

第一个就是优秀的Jeecg-boot快速开发平台前端采用阿里的ant-design-vue,兼容PC端、手机端、Pad端。开发环境 语言:Java 8 IDE(JAVA):IDEA / Eclipse安装lombok插件 IDE(前端):WebStorm 或者 IDEA 依赖管理:Maven 数据库:MySQL5.7+ & Oracle 11g & Sqlserver2017 缓存:Redis 后端 基础框架.

2020-05-13 13:27:46 2820

转载 缓存策略:如何使用缓存来减少磁盘IO?

现代的消息队列,都使用磁盘文件来存储消息。因为磁盘是一个持久化的存储,即使服务器掉电也不会丢失数据。绝大多数用于生产系统的服务器,都会使用多块儿磁盘组成磁盘阵列,这样不仅服务器掉电不会丢失数据,即使其中的一块儿磁盘发生故障,也可以把数据从其他磁盘中恢复出来。使用磁盘的另外一个原因是,磁盘很便宜,这样我们就可以用比较低的成本,来存储海量的消息。所以,不仅仅是消息队列,几乎所有的存储系统的数据,都需要保存到磁盘上。但是,磁盘它有一个致命的问题,就是读写速度很慢。它有多慢呢?一般来说 SSD(固态硬盘)每

2020-05-12 09:33:56 1343

转载 Kafka如何实现高性能IO原因分析?

Apache Kafka 是一个高性能的消息队列,在众多消息队列产品中,Kafka 的性能绝对是处于第一梯队的。在一台配置比较好的服务器上,对 Kafka 做过极限的性能压测,Kafka 单个节点的极限处理能力接近每秒钟 2000 万条消息,吞吐量达到每秒钟 600MB。你可能会问,Kafka 是如何做到这么高的性能的?我们在专栏“进阶篇”的前几节课,讲的知识点一直围绕着同一个主题:怎么开发一个高性能的网络应用程序。其中提到了像全异步化的线程模型、高性能的异步网络传输、自定义的私有传输协议和序列化、

2020-05-12 09:24:57 725

架构面试专题汇总.zip

涵盖java体系所有的主流框架面试题,包含缓存、微服务架构,面试经验非常丰富

2019-10-15

Java体系核心面试知识汇总.zip

从虚拟机到分布式、微服务,设计模式,核心java知识,主流框架非常详细,读完对java理解上升一个层次

2019-10-15

空空如也

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

TA关注的人

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