自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 资源 (4)
  • 论坛 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 JDK自带JVM工具

1 jdk 自带工具之jstat——虚拟机进程状况工具使用方式Usage: jstat -help|-options jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]例子1: 查看gc信息,每 250 秒查询一次,总共查询 20 次jstat -gc pid 250 20例子2:其中 pid 可以通过 jdk 自带工具 jps(直接在命令行执

2021-04-25 23:09:19 369 7

原创 推荐一个神器教你看懂GC日志

1、在idea中配置VM参数-verbose:gc # 在控制台输出GC情况-XX:+UseSerialGC # 使用Serial垃圾回收器-Xms20M # 最小堆 20M-Xmx20M # 最大堆 20M-Xmn10M # 年轻代 10M-XX:+PrintGCDetails # 打印GC日志细节-XX:SurvivorRatio=8 # eden:survivor比值=8:1VM虚拟机参数说明:分配最小堆 20M,最大堆 20M,年轻代 10M,eden:survivor比值=8

2021-04-01 10:43:16 30 1

原创 如何优雅的停止线程(池)

文中内容整理自《Java并发编程实战》方法一:使用中断标志使用 cancelled 标志,当标志状态为true的时候,停止线程。示例:public class Test0701CancelThread implements Runnable { public static void main(String[] args) { Test0701CancelThread cancelThread = new Test0701CancelThread(); try

2021-02-27 10:36:57 108 2

原创 JAVA获取线程执行结果的几种方式

获取线程执行结果的几种方式1、Callable 线程public class FetchAdTask implements Callable<Ad> { @Override public Ad call() throws Exception { System.out.println("fetch task"); sleep(1000L); return null; }}2、使用Future,包括 FutureTa

2021-01-20 23:18:39 129

原创 JAVA提交异步任务的三种方式

方法一:CompletableFutureCompletableFuture<List<CmsContentExtDO>> userListFuture = CompletableFuture.supplyAsync(()-> userMapper.selectByIds(ids));方法二:注解Async@Asynchttps://www.cnblogs.com/jpfss/p/10273129.html方法三:线程池创建全局线

2021-01-19 15:29:29 98 2

原创 CompletableFuture源码分析以及例子实证

CompletableFuture介绍默认情况下 CompletableFuture 会使用公共的 ForkJoinPool 线程池,这个线程池默认创建的线程数是 CPU 的核数(也可以通过 JVM option:-Djava.util.concurrent.ForkJoinPool.common.parallelism 来设置 ForkJoinPool 线程池的线程数)。但是也不一定就使用ForkJoinPool,要看(cpu的核数-1)是否大于1,如果大于1,使用过 ForkJoinPool,否

2021-01-08 10:41:42 58

原创 使用idea打包springcloud项目并部署到tomcat下

说明:有三个项目,一个提供 eureka 服务——ehl-eureka-server1,一个数据接口服务——apps-is,一个web服务-appsweb使用 idea 打成 war 包:build-&amp;gt;build artifacts--&amp;gt;选择 all 或者选择单个在工作空间下找到 war 包,比如:E:\workspace-mars\mps\mps-apps-is\ta...

2018-10-12 14:49:34 5719

原创 找到一个适合的分布式文件系统之各种分布式文件系统优缺点对比

一、各种分布式文件系统对比1.1 表格对比 技术 优点 缺点 总结 1、 HDFS 1、大数据批量读写,吞吐量高; 2、一次写入,多次读取,顺序读写; 1、交互式应用,低延迟很难满足; 2、不支持多用户并发写相同文件。 ...

2017-05-19 17:20:16 20349

原创 Java读取Excel成List对象数组

文件IO是任何软件进行的重要组成部分,我们在电脑上创建一个Excel文件,然后打开它修改一些东西或者删除它。Java给我们提供了操纵文件的很多工具类,本文主要是使用POI操纵Excel文件。1 介绍POI包的一些概念Workbook: 这就是一个工作Excel文件。XSSFWorkbook 和 HSSFWorkbook classes都实现这个接口XSSFWorkbook: 针对 XLSX 类型文件的一个实现.HSSFWorkbook: 针对 XLS 类型文件的一个实现.Sheet: 一个Exc

2021-04-17 20:52:58 55

原创 mac平台下怎么分析java堆hprof文件

使用 jdk 自带的 jhat 命令如何打印堆栈信息到hprof文件中运行程序增加VM参数(如何增加VM执行参数,可以查看之前文章):-XX:+HeapDumpOnOutOfMemoryError # 会打印出现内存溢出异常时,Dump出当前内存堆转存快找以便分析步骤1:在命令行界面,执行以下命令,其中java_pid73912.hprof为文件名称jhat java_pid73912.hprof 会输出Reading from java_pid73912.hprof...Dump f

2021-04-11 10:13:35 43

原创 github阅读代码神器

github看代码三境界纯小白一个一个目录点击进阶版本通过google插件,octree神器版本修改https://github.com/prepared48/Java-learning地址为https://github1s.com/prepared48/Java-learning

2021-04-05 10:23:18 34

原创 GC日志分析工具网站

https://gceasy.io/gc-index.jsp可以通过上传文件,也可以通过直接复制粘贴日志,进行分析。堆分配,各个区域大小GC停顿时间GC过程分析GC次数、GC时间统计值,最大值、最小值

2021-04-01 10:30:52 26

原创 git删除敏感文件或者大文件

使用场景1、以前项目中上传了比较大的jar包,使项目比较大,主要是 .git/objects/pack/ 目录下;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1gHtMdgK-1616042587575)(http://note.youdao.com/yws/res/43079/95DD286A4B1F4BCC863AFA7EA783A6A2)]2、上传了敏感信息,比如说数据库密码到git上,需要删除,除了删库的另外一种解决方案方式一:BFG下载BFG:https

2021-03-18 12:43:49 20

原创 并发编程常见面试题以及答案

1、现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?考察 Thread.join,还有其他concurrent包下工具类的了解。方法一:可以使用 join 方法实现等待;方法二:可以使用 CompletableFuture 的 thenCombine 方法public class TestOrder { public static void main(String[] args) { Thread thread1

2021-03-14 20:53:06 65 1

原创 JDK提供的线程同步的四个工具类

同步工具类可以是任何一个对象。阻塞队列可以用作同步工具类。生产者现场往队列中存入任务,消费者线程从阻塞队列中获取任务。可以在某种程度上对生产者线程和消费者线程进行解偶。存入任务和获取任务速率不一致的时候,不会导致效率下降。其他的同步工具类包括:信号量(Semaphore)、栅栏(Barrier、CyclicBarrier)、FutureTask以及闭锁(Latch、CountDownLatch)。信号量 SemaphoreSemaphore 可以用来控制某些访问资源的操作数量,可以用作限流器,可以

2021-03-05 22:46:18 38

原创 springboot-mybatis中xml怎么写

建表语句CREATE TABLE `tuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `id_card` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL, `name` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL, `age` int(11) DEFAULT NULL, `ismale` tinyint(1) DEFAULT NULL, PRIM

2020-12-28 13:47:37 75

原创 nacos源码-怎么更新配置

界面操作更新nacos配置,然后使用charles抓包工具,抓到请求http://ip:port/nacos/v1/cs/configs?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYwNTE2Nzc5N30.NNcnIivPaMxj3me9FfKY2VHaWnJNVA6GganyWenR6NU下载源码https://github.com/alibaba/nacos找到请求:nacos/v1/cs/configs

2020-12-22 10:41:49 124

原创 mysql索引下推(ICP)例子

1、索引下推是mysql5.6(包括)之后的优化策略。2、是否设置了索引下推,explain执行计划查看到了 rows 行数应该是一致的。因为索引下推只是减少了回表的次数。打开索引下推。set optimizer_switch='index_condition_pushdown=on';关闭索引下推set optimizer_switch='index_condition_pushdown=off';查看索引下推的设置状态show VARIABLES like '%optimizer_s

2020-12-21 17:59:55 76

原创 Spring Boot读取yml或者properties配置数据

1 使用@Value注解一般用于 非static@Value 注解即可获取。增加注解@RefreshScope,可以使得配置实时生效(实践使用nacos做配置中心的时候)@Configuration@RefreshScopepublic class InquiryConfig { @Value("${prepared.template.filepath}") private String templateFilePath;} static也可以使用@Value,使用

2020-12-10 10:19:58 170 2

原创 JAVA面试之九—@Autowired和@Resource注解有什么区别?

面试可能会问到这样一个问题:@Autowired和@Resource两个注解有什么区别?1、@Autowired 默认以类型(类)进行区分,@Resource 默认以name进行区分。工作中的例子:有两个比较相似的mapper,一个FallLogMapper,另外一个LogMapper,为了简便,把第一个变量命名为logMapper(这里只是举例,正常可能类名字表长,所以会简写),第二个,变量名字也是logMapper。这样的话,如果按照名字来看,两个Mapper对应的变量名字是一样的了。如果使用 @Re

2020-11-26 22:56:26 87 1

原创 JAVA面试之八—常见面试题

JVM1、JVM内存模型;2、讲一下GC的过程?3、怎么判断对象是否是垃圾?4、讲一下你常用的垃圾回收器;5、G1垃圾回收器和CMS有什么区别?有什么优点?6、你们用的什么垃圾回收器?调整过哪些参数?7、CMS垃圾回收器原理,什么时候触发垃圾回收?8、JMM java内存模型了解嘛?9、年轻代垃圾回收的步骤?10、什么情况下年轻代对象会上升到老年代?多线程1、你们的线程池的参数都是什么?为什么这么设计?2、线程池的工作原理和7个参数;3、synchronized在JDK1.6中升

2020-10-02 09:43:53 43

原创 JAVA面试题之七—线程池的工作原理和7个参数

线程池的工作原理和7个参数(京东物流、美团充电宝一面、中信银行一面、美团外卖一面、58用户平台一面、轻松集团)7个参数corePoolSize:线程池核心线程数量maximumPoolSize:线程池最大线程数量keepAliverTime:当活跃线程数大于核心线程数时,空闲的多余线程最大存活时间unit:存活时间的单位workQueue:存放任务的队列threadFactory:创建线程的工厂handler:超出线程范围和队列容量的任务的处理程序每个值为什么这么设置?工作原理例子

2020-10-02 09:01:36 215

原创 JAVA面试题之六—讲一下GC的过程

讲一下GC的过程(中信银行一面、美团外卖一面、58用户平台一面、轻松集团)年轻代垃圾回收,引起老年代内存不足,最终引起FullGC。JDK1.8之后,Java官方的HotSpot JVM去掉了永久代,取而代之的是元数据区Metaspace。Metaspace使用的是本地内存,而不是堆内存,也就是说在默认情况下Metaspace的大小只与本地内存的大小有关。因此JDK1.8之后,就见不到java.lang.OutOfMemoryError: PermGen space这种由于永久代空间不足导致的内存溢出的

2020-10-02 08:42:41 182

原创 JAVA面试题之五——消息队列对比,RabbitMQ还是Kafka?

MQ 的应用场景:第一个应用就是商品秒杀以及产品抢购等使用场景使用 MQ 实现消息通讯,实现实时通讯功能使用 MQ 实现日志系统常用的 MQ 中间件有 RabbitMQ、Kafka 和 Redis 等,其中 Redis 属于轻量级的消息队列,而 RabbitMQ、Kafka 属于比较成熟且比较稳定和高效的 MQ 中间件MQ 的特点:先进先出发布、订阅工作模式持久化分布式消息确认引入 MQ 系统会带来的问题增加了系统的运行风险。如果 MQ 系统挂掉的话可能会导致整个业务系统瘫

2020-08-10 22:48:40 190

原创 JAVA面试题之四——Redis 中的缓存清空策略 LRU 说一下?

LRU 是一种缓存淘汰策略。常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、最近最少使用策略 LRU(Least Recently Used)方案一:使用链表实现 LRU思路是这样的:维护一个有序单链表,越靠近链表尾部的结点是越早之前访问的。当有一个新的数据被访问时,我们从链表头开始顺序遍历链表。如果此数据之前已经被缓存在链表中了,我们遍历得到这个数据对应的结点,并将其从原来的位置删除,然后再插

2020-07-30 06:44:45 132

原创 JAVA面试题之三—Mysql索引了解嘛?怎么优化查询效率?

Hash只支持单条数据的查询。很多时候我们需要更复杂的操作。BTree[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MKL6rIB9-1595459675581)(8B3F0F034EF54F4D81405D839B2958FB)]特点不再是二叉搜索,而是N叉搜索,树的高度会降低,查询快叶子节点,非叶子节点,都可以存储数据,且可以存储多个数据通过中序遍历,可以访问树上所有节点设计逻辑内存读写快,磁盘读写慢,而且慢很多磁盘预读:磁盘读写并不是按需读取,

2020-07-23 07:15:52 240 1

原创 JAVA面试题之二—如何实现接口幂等性?什么是幂等性?

幂等性说的是:如何防止接口的重复无效请求。对于一个接口而言,无论调用了多少次,最终得到的结果都是一样的。四种解决方法:前端拦截。不安全,可能被专业人士修改,跳过该过程。使用数据库实现幂等性使用 JVM 锁实现幂等性。缺点:只能引用于单机环境使用分布式锁实现幂等性。通常使用redis或者zookeeper实现分布式锁。保证分布式锁的key是业务id的唯一标识。1 悲观锁实现begin; # 1.开始事务select * from table_name where id='xxx' fo

2020-07-22 19:32:08 578

原创 JAVA面试题之一—如何实现锁?如何实现分布式锁?

为什么需要分布式锁?答:悲观锁、乐观锁、可重入锁、共享锁和独占锁等内容,它们都属于单机锁也就是程序级别的锁,如果在分布式环境下使用就会出现锁不生效的问题,因此我们需要使用分布式锁来解决这个问题。分布式锁是控制分布式系统之间同步访问共享资源的一种方式。是为了解决分布式系统中,不同的系统或是同一个系统的不同主机共享同一个资源的问题,它通常会采用互斥来保证程序的一致性,这就是分布式锁的用途以及执行原理。分布式锁的常见实现方式有四种:基于 MySQL 的悲观锁来实现分布式锁,这种方式使用的最少,因为这种实

2020-07-22 09:03:02 184

原创 【数据存储】从hashMap、mysql、redis、到分布式

从hashMap/mysql/redis/到分布式1 HashMap问题:从一个大数组(10000)中,找到特定的X。通常的解答:都是循环遍历一遍,查找X,需要全量IO。优化把大数据量,分为小数据量(4个数字)的组合。组成了2500个4个小数组。分而治之,依赖索引 / 路由 / hash 。X 计算hash值。 hashcode % 2500HashMap 或者 HashTable 的原理。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XC5HoUL0-15

2020-07-15 06:25:01 126

原创 python保存数据到文件的几种方法

方法一:open函数保存#保存数据open函数with open('D:/PythonWorkSpace/TestData/pinglun.txt','w',encoding='utf-8') as f:#使用with open()新建对象f for i in comments: print(i) f.write(i+'\n')#写入数据,文件保存在上面指定的目录,加\n为了换行更方便阅读 方法二: numpy#导入包import pandas as pd

2020-07-12 09:30:22 3127

原创 yolo各版本的对比

yolo 是现在常用的目标检测模型,大家知道他们之间的区别嘛?1 一些概念或者细节yolo v1 : 最后两层是全连接层层,之后的 yolo 版本是全卷积层。滑窗、区域选择是不同的。yolo 是用的区域选择。Iou: intersection over union 交并比,是一个非常重要的衡量指标。Iou、1-IoU 可以做为Iou = 交集 / 并集物体的中心点落在哪个格子里,就用哪个格子做预测。但预测阶段不需要使用中心点。NMS 非极大抑制 概念NMS 即 non maximum su

2020-07-12 09:15:25 2214

原创 python基础—pip指定包安装目录

pip 指定某个路径安装包场景:有的时候我们安装了annconda环境,有很多的python环境,比如py36, py37, py27。此时,我们使用pip安装包的时候,经常可能安装在一个不知道的路径,或者不是我们期望安装的路径。这就是本文要解决的问题了。方法一指定安装numpy包到固定文件夹下,比如这里“文件夹”是安装路径pip install -t 文件夹 numpy方法二设置 pip 默认安装路径找到 site.py 文件。(windows:可以通过自带的查找,或者使用 every

2020-06-09 20:49:08 602

原创 人人都要会编程—金融大佬问我利率预测

事情是这样子的。在一个夜深人静的晚上,我接到了某证券行业大佬的问题——关于编程。波哥,睡了吗?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T1WO9AYU-1591017221431)(08AEDC9083E94D408824918FB9894C06)]内心OS: 作为一个金融大佬,怎么会这么晚还找我问编程的问题?后来知道,原来他们公司内部组织了一个比赛——利率预测。原来是这,这还不简单嘛,不就是一个线性回归模型吗。和人工智能领域的 Hello world

2020-06-01 21:14:17 270

原创 【NLP】文本表示之实战——计算信息熵

在上一篇文章介绍了文本表示《NLP之文本表示》https://blog.csdn.net/Prepared/article/details/94864658但是没有代码。在这篇博客中,我们在实践一下!中文分词常用模型:Jieba模型、百度的LAC模型,这里使用 Jieba 模型进行中文分词。数据集使用:人民日报1946年05月的数据。数据集地址:https://github.com/fang...

2020-03-13 21:28:18 786

原创 oracle、mysql差异以及springboot中如何修改

oracle 迁移到 mysql1. JAVA代码修改1、修改配置2、POM文件,需要增加mysql对应的包3、主键策略修改,可以在建表的时候指定主键策略1.1 配置修改。oracle配置// oraclespring.datasource.test1.jdbc-url=jdbc:oracle:thin:@127.0.0.1:1521/orclspring.datasource...

2020-02-14 08:40:49 356

原创 springboot集成MongoDB

springboot集成MongoDB1 代码实现1.1 yml文件配置:1.2 实体类1.3 定义通用IService1.4 实现通用IService1.5 使用:1.6 测试:2 工具思路:Iservice 实现通用方法,增删改查,ServiceImpl实现具体方法。业务Service接口增加具体业务方法,业务ServiceImpl实现业务Service接口1 代码实现1.1 yml...

2019-12-31 10:19:57 223 2

原创 ES-script-查询7点到9点的数据

ES 版本6.2.4在使用 ES 进行统计的时候,经常会用到查询某个小时的统计数据,比如统计每个小时的数据;比如计算早晚高峰的数据。这些场景都可以使用 script 进行查询、统计。ES 语句{"query": { "bool": { "filter": [{ "range": { "datetime": { "from": "2019-10-01 00...

2019-11-04 11:44:48 1164

原创 【NLP】之文本表示

引言我们在做模型训练的时候,不是直接把文本或者词语传给计算机让其进行计算,而是需要将单词、句子、文本转换成向量或者矩阵进行计算,而如何将文本转换成向量就是本文需要介绍的内容。介绍内容之前,大家需要先熟悉一些概念。词库:训练数据中出现的所有单词,可以使用jieba分词统计出来。混淆矩阵:混淆矩阵是数据科学、数据分析和机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照...

2019-07-06 15:55:27 566

转载 for循环的 i++ 和 ++i 的区别

基本所有语言都有for循环,每个语言的写法大致都相同。下面来解释一下for循环里的i++和++i有什么区别!!!前几天有看到相关的文章解释i++,和++i,其实就在for循环里,是没什么区别的,但是在其他场景,相信大家都知道,他们的区别。var i = 0;var a = i++;//这里i变成多少了? 而a又是多少呢?/*结果大家都知道a = 0;i = 1 ;*/var i...

2019-06-21 08:45:43 5420

转载 Elasticsearch | Elasticsearch如何做到亿级数据查询毫秒级返回?

如果面试的时候碰到这样一个面试题:ES 在数据量很大的情况下(数十亿级别)如何提高查询效率?这个问题说白了,就是看你有没有实际用过 ES,因为啥?其实 ES 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较...

2019-06-05 08:59:53 310

ojdbc5.jar

用户 oracle 数据库连接,实用的 jar 包。可以用来解决 mybatis 获取不到Date类型的时分秒的问题。

2018-09-17

pymssql-2.1.4-cp36-cp36m-win_amd64.whl

安装 scrapy 爬虫工具的前置包,对应于 python 3.5

2018-09-27

爬虫工具 scrapy 包:pymssql-2.1.4-cp36-cp36m-win_amd64.whl

安装 scrapy 爬虫工具的前置包,对应于 python 3.6

2018-09-27

1_0 JDK_API-6.0_zh_CN.CHM

全面的帮助文档。JavaTM Platform Standard Edition 6 API 规范

2015-05-25

报告bug-我也不是第一名,前面怎么只有0个人呢

发表于 2021-03-22 最后回复 2021-03-22

现在用aul6顺利把数据库表和数据恢复过来了,请问下存储过程和视图等其他对象怎么恢复呢?谢谢!!!

发表于 2017-09-07 最后回复 2018-08-31

linux 启动 tomcat报错

发表于 2015-10-12 最后回复 2017-01-01

vs2013开发cocos2d-x项目-ccTouchesEnded问题

发表于 2015-06-14 最后回复 2015-08-12

form提交,为什么不会提交??

发表于 2015-05-11 最后回复 2015-06-14

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

TA关注的人 TA的粉丝

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