- 博客(77)
- 资源 (1)
- 收藏
- 关注
转载 jvm问题整理
目录1.运行时数据区域(内存模型)(必考)补充问题:简单介绍一下Java内存模型volatile关键字内存分配与回收策略2.垃圾回收机制(必考)可达性分析算法补充问题:强、软、弱、虚引用Java 堆永久代的回收3.垃圾回收算法(必考)4.Minor GC和Full GC触发条件补充问题:Minor GC 和 Full GC 有什么不一样吗?5.GC中Stop the world(STW)6.各垃圾回收器的特点及区别,怎么做选择?补充问题:
2021-03-23 00:02:39
870
转载 Transaction rolled back because it has been marked as rollback-only
https://blog.csdn.net/f641385712/article/details/80445912
2020-10-30 13:47:31
241
原创 redis集群高可用
哨兵集群(sentinel):哨兵必须用三个实例保证自己的健壮性,哨兵+主从不能保证数据不丢失,但是可以保证集群的高可用。
2020-10-12 16:29:31
277
1
原创 redis 基础知识
1.redis数据结构:(五种基本数据结构)String,Hash,List,Set,Sorted Sort;(Other)HyperLogLog,Geo,Pub/Sub。2.redis有大量的key需要设置同一时间过期,会出现什么问题?大量的key的过期时间设置的过于集中,到过期那个时间点,redis可能会出现短暂的 卡顿现象,严重时出现缓存雪崩,一般在时间上加上一个随机值,来避免这种情况。3. redis分布式锁,怎么使用?先拿setnx来争抢锁,抢到之后,使用expire命令给锁加一.
2020-09-18 09:55:05
173
转载 docker使用命令
一、Docker 学习1.1 Docker的理解Docker是一种虚拟化技术,它比虚拟机更轻量,不考虑考虑硬件设备的虚拟化,只提供需要的软件依赖。所以比虚拟机更加简便、容易移植。开发人员将软件产品和它的所有依赖库都打包到一个Docker镜像中,交给运维,大大减少了运维的工作量。因此开发可以代替运维,萌生出了一种新的职业,DepOps,开发/运维 工程师。1.2镜像和仓库镜像是一个模版,用来创建Docker容器,镜像(image)和容器(container)的关系类似于Java中的类和对象的.
2020-07-17 09:35:39
201
转载 RabbitMQ与CMQ的使用与实战
https://blog.csdn.net/qq_22996201/article/details/98515742
2020-06-30 09:33:38
434
原创 事务类型选择
1. PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。2. PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。3. PROPAGATION_MANDATORY使用当前的事务,如果当前没有事务,就抛出异常。4. PROPAGATION_REQUIRES_NEW新建事务,如果当前存在事务,把当前事务挂起。5. PROPAGATION_NOT_SUPPOR
2020-06-17 15:04:25
222
原创 Java中,方法执行的前后顺序:
父类的static初始化块子类的static初始化块父类的非static初始化块父类的构造方法子类的非static初始化块子类的构造方法public class HelloB extends HelloA{ public HelloB(){ System.out.println("HelloB"); } { System.o
2020-06-03 17:00:55
545
原创 SSH 整合遇到的问题
1.java.lang.IllegalArgumentException: node to traverse cannot be null!hql格式不对 不能够使用and链接String hql = "update User u set u.name =?, u.sex=?, u.local=? where u.id=?";2.前台向后台传值时,struts中要声明传入值的参数,并创建get/set方法。public class IndexAction extends ActionSu.
2020-05-10 22:32:08
161
原创 导入spring5.0源码错误整理
1. Error:Kotlin: [Internal Error] java.lang.IllegalStateException: The provided plugin org.jetbrains.ko......错误原因:Kotlin插件版本过低,打开idea->settings->plugins,找到Kotlin升级插件版本,重启idea。2.spring-orm编译过...
2020-04-26 12:18:14
285
转载 分布式系统中定时任务保证相同任务只有一个执行
原文链接https://zhuanlan.zhihu.com/p/97068262 https://blog.csdn.net/J_Shine/article/details/80406743思路:1.使用redis分布式锁,为定时任务唯一指定的key加锁,并设置锁超时时间。当触发定时任务时,通过setNX(key,value)方法为唯一的key加锁,如果当前key不存在,将放入缓...
2020-04-25 23:26:14
6438
原创 Redis缓存问题
1.缓存雪崩缓存雪崩是指缓存同一时间大面积的失效,所以后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。解决方案:缓存数据过期时间随机设置,防止同一时间大量数据过期现象发生。 并发量不是特别多的时候,加锁排队。 给每一个缓存数据添加一个标价,记录缓存是否失效,如果失效,则更新数据缓存。2.缓存穿透:缓存穿透是指缓存和数据库中都没有的数据,导致所有的请求都落到...
2020-04-18 12:08:10
164
原创 jvm调优
jvm调优工具JDK 自带了很多监控工具,都位于 JDK 的 bin 目录下,其中最常用的是 jconsole 和 jvisualvm 这两款视图监控工具。jconsole:用于对 JVM 中的内存、线程和类等进行监控; jvisualvm:JDK 自带的全能分析工具,可以分析:内存快照、线程快照、程序死锁、监控内存的变化、gc 变化等。常见调优参数:-Xms2g:初始化推大小为 ...
2020-04-15 17:40:15
118
转载 MySQL与Oracle 语法区别
一、数据类型1. Number类型MySQL中是没有Number类型的,但有int/decimal 类型,Oracle中的Number(5,1)对应MySQL中的decimal(5,1),Number(5) 对应 int(5)。MySQL中的数字型类型比较多,分的也比较细,还有tinyint、smallint、mediumint、bigint等类型2. Var...
2020-04-14 14:57:52
1162
原创 Docker 打包部署Springboot示例
1. 用idea自带的maven工具将springboot项目达成jar包,并上传到服务器中,服务器只需要安装有jdk即可。上传后,可以在服务器上执行 java -jar xxxxx.jar来测试项目是否正常。2. 编写Dockerfile文件,文件无后缀1.在jar包相同目录下,创建Dockerfile文件, touch Dockerfile2.编写DockerfileF...
2020-04-09 16:00:54
157
原创 python多线程爬取官微信息
#coding=utf-8import MySQLdbimport os.pathtry: from sshtunnel import SSHTunnelForwarderexcept: SSHTunnelForwarder = Noneimport tracebackimport jsonimport requestsimport Queueimport th...
2020-04-02 15:55:27
163
原创 常用注解
java.lang.SuppressWarnings 是J2SE 5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。使用:@SuppressWarnings("")@SuppressWarnings({})@SuppressWarnings(value={})示例:@Supp...
2020-03-23 15:13:33
112
转载 算法时间复杂度空间复杂度
算法:算法:是解决某一类问题的通法,即一系列清晰无歧义的计算指令。每个算法只能解决具有特定特征的一类问题,但一个问题可由多个算法解决。一个算法应该有以下五个方面的特性:输入(Input):算法必须有输入量,用以刻画算法的初始条件(特殊情况也可以没有输入量,这时算法本身定义了初始状态); 输出(Output):算法应有一个或以上输出量,输出量是算法计算的结果。没有输出的算法毫无意义。...
2019-12-24 16:35:20
159
原创 消息队列MQ
本文参考https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/why-mq.mdhttps://www.yuque.com/liangxinjiang/powiyk/akyt35一. 消息队列的组成1. Broker 消息服务器,作为server提供消息核心服务2. Producer 消息...
2019-12-16 18:03:19
179
原创 集群、分布式、微服务
集群:(物理形态上的)同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,业务。)其中一台出现故障,对整个任务来说无太大影响。通过提高单位时间内执行的任务数来提升效率,逻辑上还属于单体应用。解决高可用,负责均衡......微服务:是一种面向服务的架构(SOA),应用程序被构建为多个不同的小型服务的集合,而不是单个应用程序,这些小服务可以单独部署运行(松耦合),服务之间通过RPC来相互交...
2019-12-12 18:23:58
106
转载 docker构建镜像上下文理解
从零开始学习docker:https://blog.csdn.net/qianghaohao/article/details/87554255ubuntu 16.04从零开始搭建docker私有仓库:https://blog.csdn.net/jinking01/article/details/84989208docker run命令启动容器后,进入容器先查看有哪些运行中的容器 ...
2019-12-03 17:46:33
263
原创 docker 相关
docker中删除镜像的命令为 docke rmi 镜像id ,但直接执行这个命令的时候可能会出现错误,原因一般是存在该镜像对应的容器没有关闭删除。若镜像无对应的容器存在时可直接删除镜像有对应的容器存在时首先列出当前所有的容器 dockerps -a然后找到 image镜像 对应的容器,通过容器 id 关闭容器并删除容器然后根据镜像id 删除该...
2019-12-03 14:47:35
213
原创 搜狗微信文章爬虫
最近因为搜狗微信进行了升级,导致公司的爬虫失去作用,然后其他同事又都有工作,于是乎这个任务就交给了我这个“菜鸟程序员”,因为之前没有写过爬虫相关的代码,Python也是工作后才现学的,导致为此纠结了好长时间。今天特意做个总结。爬虫出现问题,首先确定问题来源,是数据爬取过程中出现问题还是就没爬取到数据(爬取的网站改版,网站反扒,ip被封等等),确定了问题才能针对的行进行解决。此次搜狗微信文章...
2019-11-29 18:11:52
2624
5
原创 阿里云ECS服务器ubuntu环境下安装mysql
1. 系统更新sudo apt-get update2. 下载安装mysql客户端服务端sudo apt-get mysql-server 服务端安装过程中需要输入两次密码。sudo apt-get mysql-client3. 安装完成后,检查是否成功netstat -tap | grep mysql4. 连接测试mysql -uroot -px...
2019-11-14 16:53:38
377
原创 Scrapy - 京东商品信息
Scrapy项目结构爬取结果显示jdSpider 爬虫核心代码# -*- coding: utf-8 -*-import scrapyfrom TestDemo.items import TestdemoItemimport requestsimport jsonclass JdspiderSpider(scrapy.Spider): name = '...
2019-11-01 16:27:12
238
转载 爬虫Scrapy
Scrapy简介Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,Scrapy使用了Twisted异步网络框架来处理网络通讯,可以加快我们的下载速度,灵活的完成各种需求。异步:调用发出后,直接返回,不会等待返回结果,调用者可以继续执行其他操作同步:调用发出后,开始等待,直至结果出现,返回,调用者才能继续执行其他操作同步:去商场购物,你付钱等待售货员去仓库取货,然...
2019-10-31 17:17:51
162
原创 Python爬取京东商品信息
爬取所用url 商品信息列表页:https://search.jd.com/search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8商品信息详情页:https://item.jd.com/100008384346.html商品列表页后30商品数据:https://search.jd.com/s_new.php?keyword=%...
2019-10-29 18:55:17
1480
原创 invalid literal for int() with base 10: '50.8'
Python读取csv,并生成图像# -*- coding: utf-8 -*-import csvfrom datetime import datetimefrom matplotlib import pyplot as pltfilename = 'F:\\工作表.csv'with open(filename) as f: reader = csv.reader(...
2019-10-24 18:10:48
1337
2
原创 Python GIL全局解释器锁
GIL解释:GIL:Global Interpreter Lock 全局解释器锁,设计目的是保证数据安全。GIL 的功能是:在 CPython 解释器中执行的每一个 Python 线程,都会先锁住自己,以阻止别的线程执行。也就是说在解释器执行任何Python代码时,都需要先获取这把锁,意味着任何时候只可能有一个线程在执行代码,其他线程要想获得CPU去执行代码,就必须等到占有该锁的线程释放锁...
2019-10-24 14:48:43
92
转载 Python 多进程
1. 进程windows下不支持os.fork() 方法来启动多个进程Python 在 multiprocessing 模块下提供了 Process 来创建新进程。与线程类似的是,使用 Process 创建新进程也有两种方式:以指定函数作为 target,创建 Process 对象即可创建新进程。常用 继承 Process 类,并重写它的 run() 方法来创建进程类,程序创建...
2019-10-23 18:37:30
214
转载 BloomFilter--布隆
什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。无确切值。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点同样明显。优点:由于存放的不是完整的数据,所以占用的内存很少,而且新增,查询速度够快; 缺点: 随着数据的增加,误判率随之增加;无法做到删除数...
2019-10-18 13:48:41
95
原创 Spring Batch
1. SpringBatch 介绍Spring Batch是spring的一个子项目,基于spring框架开发。提供了大量的可重用组件,包括日志、追踪、事务、任务 作业统计、重启、跳过等。能够处理简单的、复杂的和大数据量的批处理作业。Spring Batch只关注处理任务相关的问题 ,如事务,并发,监控等,需要调度框架来协作构建完成批处理任务(如 利用Quartz定时调度框架进行任务调度)...
2019-10-15 14:08:10
711
原创 python matplotlib
matplotlib Python的绘图库plot(list) 函数:将列表中的值设为 y轴的范围,x轴从0开始show() 函数:查看绘制出的图形# -*- coding: utf-8 -*-import matplotlib.pyplot as pltsquares = [1, 4, 9, 16, 25]plt.plot(squares)plt.show()...
2019-10-12 17:33:55
117
原创 python多线程
进程与线程的关系:操作系统可以同时执行多个任务,每一个任务就是一个进程,进程可以同时执行多个任务,每一个任务就是一个线程。线程被创建并启动后,并不会直接进入执行状态,也不会一直处于执行状态,线程的生命周期中,它会经历新建(new)、就绪(Ready)、运行(Running)、阻塞(Blocked)和死亡(Dead)5 种状态。当一个进程里只有一个线程时,叫作单线程。超过一个线程就叫作多...
2019-10-10 17:38:02
141
转载 java中多态理解
1.多态的含义及作用在面向对象(OOP)的程序设计语言中,多态与封装、继承合称为OOP的三大特性。封装,说简单点就是合并属性和行为创建一种新的数据类型,而继承就是建立数据类型之间的某种关系(is-a),而多态就是这种关系在实际场景的运用。简单点说,多态就是把做什么和怎么做分开了;其中,做什么是指调用的哪个方法,我是去吃饭(方法a)还是去睡觉(方法b),怎么做是指实现方案,如果我选择吃饭,...
2019-09-29 15:55:35
141
原创 java 中的“==”与equals---hashcode
1. 堆栈用途简述堆内存用来存放由new创建的对象(包括由基本类型包装起来的类:Integer、String、Double,实际上每个基本类型都有他的包装类)和数组(引用类型、包装类)。 栈内存存放对象在堆中的内存地址(基本类型直接存储在栈内存中)2. == 与 Equals()基本类型 '==' 比较值,不能使用equals 对于引用数据类型(对象)来说,'==' 和 'equal...
2019-09-29 15:24:58
100
原创 python Counter计数
# -*- coding: utf-8 -*-from collections import Counter# Counter的本质是一个特殊的dict,它继承了dict类,因此它可以完全调用dict所支持的方法。# 创建空的Counter对象c1 = Counter()print(c1['pp']) # 访问Counter中不存在的元素,输出 0c2 = Counter('h...
2019-09-27 16:29:17
331
原创 python heapq(堆)
# -*- coding: utf-8 -*-# 堆:用数组实现的二叉树# 并不是每一个最大堆、最小堆都是一个有序数组,要将堆转换成有序数组,需要使用堆排序import heapqfrom heapq import *print(heapq.__all__)my_data = list(range(10))my_data.append(0.5)print('my_data的...
2019-09-27 14:10:00
84
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人