- 博客(148)
- 资源 (3)
- 收藏
- 关注
原创 第K个最大的数
思路一:暴力破解,无序数组排序,排完序之后找到第K个最大的数,排序方法有多种,但是无序数组排序快排时间复杂度比较低是O(nlogn)思路二:快速选择快速选择是在快速排序的基础上进行的优化,快速选择是把找到的基准点与要找的第K个数的下标做比较,如果正好是第K个最大的数直接返回即可,如果是比基准点大则递归右侧,小的话则递归左侧。与快速排序相比可以少递归一半的数据。Random random = new Random(); public int findKthLargest(int[] nums,
2020-10-06 07:27:36
381
2
原创 Spark Stream 流式处理
总结:Spark的核心数据结构是RDD(弹性分布式数据集)Spark Streaming 采用微批处理模式,保证消息传输精准性,采用checkpoint方式保证可靠性,具有良好的吞吐性能,延时表现非真正实时Spark Streaming 可以接收Kafka和HDFS等在内的多种数据源,批量处理后,输出到HDFS、数据库或文件系统...
2020-01-21 20:06:17
599
原创 不逼自己下不知道潜力可以有多大
学期开始的学校安排选课,本来是必修课,不知道为什么也放在选课目录里,此外不知道为啥选课系统不稳定,也不知道为啥自己选上了当做没选上,直到今天上午通知晚上有考试,确认了考试人数正好是群人数才知道自己选课成功了,我真的是,服了自己,,,既然有考试,如果不去指定是零分,而且一次课没有上,一次作业没有交,这就尴尬了,还好老师画了重点,是三次课后作业。有范围总是好事情。可是让我没想到的是三次作业加起来pd...
2019-12-17 23:22:18
380
4
原创 《高效能程序员修炼》读书笔记
读到这本书的时候也已经入行了,书中提到程序员所渴望的东西,我一下子陷入沉默。这个问题刚开始看觉得有些可笑,但是慢慢想发现这个问题如果不想明白这辈子就稀里糊涂的做增删改查吗?谈梦想不仅仅是小孩子的专利,成年之后更应该多谈谈梦想,如果没有可以倾诉的人,自己也是需要时长拿出来温习一下,要不然自己连梦想都没有还谈什么成功,谈什么自由?如果把自己的梦想尘封在儿时的日记里,从来不去照看自己的梦想,它就会在你...
2019-12-15 21:05:14
421
2
原创 Mac dubbo注册到服务非常慢5秒一个
在终端 使用echo $HOSTNAME或hostname命令sudo vim /etc/hosts修改成这样既可。具体原因参考此博客
2019-10-14 15:48:21
2919
原创 机器学习初探
人工智能的基础是机器学习,机器学习的的基础是大数据的支持。近年来为什么人工智能发展比较火热,因为机器学习的原理是基于数据拟合规律,简单理解简单的拟合就是线性规划,二十世纪初期就提出了人工智能但是计算机的计算能力有限,数据量有限,又没有明确的研究方向。...
2019-10-12 10:32:11
236
原创 java单元测试打印输出继承父类的对象不显示
使用lombok的时候,在子类上方加上@ToString(callSuper = true)即可.
2019-10-10 07:18:55
1674
原创 dubbo项目搭建
建立Dubbo-client建立一个maven-archetype-quickstart工程pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...
2019-09-15 10:14:12
248
原创 Java8新特性总结
函数式编程把运算过程封装成函数,通过函数调用的方式来实现相应的功能// 过程式编程Integer result=(a+b)*c-d;// 函数式编程Integer result = subtract(multiply(add(a,b), c), d);函数式接口接口中只包含一个抽象方法的接口叫函数式接口java8 新增的函数式接口在java.util.funtion包下常用的如...
2019-09-15 09:58:47
244
原创 swagger导出Word接口文档
pom增加依赖<repositories> <repository> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> <id>jc...
2019-07-26 10:35:47
8504
13
原创 rocketmq发送消息失败
错误日志org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout解决办法开放9876/10909/10911端口Linux命令firewall-cmd --zone=public --permanent --add-port=9876/tcp二...
2019-07-12 16:03:41
2907
原创 Rabbitmq 在项目中的使用
项目中要用mq,为了保证最终一致性;但是demo里面消费没有问题,放到项目里面总是报错Caused by: java.lang.IllegalStateException: The mapped handler method class 'com.tfjybj.intern.provider.service.impl.SenderServiceImpl$$EnhancerBySpringCGLI...
2019-06-30 20:26:48
2225
4
原创 线程池原理
个人理解:线城池就像施工队,施工队里有基本人数限制,比如一般队里有10个人,最多不超过20人,当有新的工程来的时候,如果队里有8个人,而且都在工作,那就在找一个人来干,如果8个人里有人没活干就交给那个人即可.如果已经有了10个人又有工程了,那就把工程接下来放到计划里,如果工程多到计划完成不了了就再找人来干,如果超过20人了,那就让让任务等着,告诉现在完成不了那么多....
2019-06-19 11:04:45
264
1
原创 多线程重排序问题
为什么要重排序?根据程序顺序规则:在不改变程序运行结果前提下,尽可能提高并行度.也就是为了提高性能改变代码的执行顺序.什么样的代码不会重排序?数据依赖的数据,比如后面的代码执行需要用到前面的代码, 简单说两个操作其中如果有一个操作是读操作者两个操作具有数据依赖性存在数据依赖性的操作不会重排序重排序遵守什么规则?as-if-serial:不管怎么排序,结果不能改变不存在数据依赖的可...
2019-06-18 11:25:19
652
2
原创 多线程问题总结
死锁问题死锁检测jps -l // 列出所有java线程jstack -l xxxx // 查看要检测线程的堆栈信息JConsole 图形化界面检测死锁jvisualvm //图形化监控界面,可以直接看出死锁死锁避免避免一个线程同时获取多个锁避免一个线程在锁内占用多个资源定时锁 定时释放锁参考博客参考博文2线程顺序执行问题多个线程顺序执行,可以让一个执行完了再执行另...
2019-06-18 11:18:15
229
1
原创 多线程总结(二)
synchronized监视器监视对象synchronized监视器监视类线程安全问题volatilesynchronized方法什么时候用synchronized ,有线程安全问题的时候用,什么时候有线程安全问题?多线线程访问同一个共享变量的时候.同步方法方法内部的变量不是共享变量所以不会有线程安全问题实例变量非线程安全,多个线程共用一个实例变量就会有这个问题,解决办法是在...
2019-06-16 20:21:52
214
2
原创 多线程总结(一)
多线程基础为什么要使用多线程程,提高资源利用率,让原来串行的代码并行执行提高效率.使用多线程继承Thread类或者实现Runnable接口线程安全:简单理解多线程情况下无论怎样执行和单线程执行结果是一样的,就是线程安全的,如果数据变的不一样了就不是线程安全的了常用方法currentThread() //当前正在执行的线程isAlive() //判断当前线程是否处于活动状态 已经...
2019-06-16 19:53:53
202
2
原创 mysql必知必会总结
SELECT * from products;-- 查询所有select DISTINCT vend_id from products;-- DISTINCT 去重 应用于所有列不仅仅是前置它的列SELECT prod_name FROM products LIMIT 5;-- 限制结果的行数SELECT prod_name FROM products LIMIT 5,5;-- 从第...
2019-06-08 10:42:33
292
1
原创 mysql 隔离级别
set session transaction isolation level read uncommitted;-- read uncommited 可以替换为read committed /repeatable read/serializablestart transaction; -- 开启事务-- 用户登录mysql -u username -p passwordread u...
2019-06-02 19:37:51
242
1
原创 mysql索引原理
背景1.1. 读写比例10:11.2. 性能出现瓶颈1.3. 问题1.3.1. 如何简历索引1.3.2. 索引顺序如何2. 目的2.1. 提高查询速度,相当于目录3. 原理3.1. 缩小数据范围3.2. 随机变有序4. 基础4.1. 磁盘io4.1.1. 时间寻道时间旋转延迟传输时间4.2. 预读4.2.1. io太耗时,把相邻的也读到缓冲区4.2.2....
2019-06-02 19:30:39
239
1
原创 spring事务传播
什么是事务传播如果一个方法上面加了事务注解这个方法就是事务方法.如果一个事务方法被其他方法调用则会涉及到事务传播的问题外围方法:方法里调用方法,外面的方法就是外围方法内部方法:就是被调用的方法.外围方法事务如果调用者抛出异常则内部方法被nested和required修饰的方法全部回滚nested是嵌套事务,相当于子事务,外部异常它也会回滚required会加入外围事务,简单理解...
2019-06-01 16:32:52
254
1
原创 微服务问题汇总
什么是springboot?自动化配置,内嵌Tomcat ,可执行的jar包dubbo与spring cloud的区别?dubbo是RPC框架,springcloud是微服务一站式解决方案.为什么要用springcloud?独立的程序拆分成多个服务,原来一个进程分成多个进程,便于开发部署和维护,每个服务可以有自己的数据库,可以用不同的语言开发,服务之间通过http调用的方式进行调用wh...
2019-06-01 16:16:24
199
原创 springcloud入门[宏观认识]
基础1.1. 什么是微服务独立的系统拆分成多个小型服务,服务在各自进程中运行,服务间通过基于HTTP的RESTful风格的API进行通信协作高内聚,低耦合,独立开发测试部署,可以使用不同语言编写1.2. 与单体系统的区别单体:一处修改,影响全局,部署困难,维护困难微服务:不同功能模块可以单独扩展和维护;一个服务更新不会影响其他服务;便于容量评估;1.3. 如何实施运维:原来...
2019-05-19 20:08:32
193
原创 redis持久化
redis持久化有两种方式:RDB什么是RDB是把redis数据库中的数据原样保存的硬盘当中;为什么需要持久化:redis是在内存中的key-value数据库,当服务器关闭的时候或故障断电的时候如果没有持久化功能数据会全部丢失;RDB文件的创建和导入命令:save:阻塞进程bgsave:子进程处理,不会阻塞载入:自动检测,发现就会载入,载入过程是阻塞状态,aof开启默认载...
2019-05-03 21:15:11
167
原创 redis入门
什么是redis是一个高性能key-value非关系型数据库可以用来做什么可以用来做缓存,消息队列数据结构stringsetzsethashlist特性可以持久化,发布订阅模式运行原理持久化方式rdbaof实战问题哨兵:主进程失效后哨兵发现并选出主哨兵,重建主数据节点缓存雪崩:缓存大面积失效,请求压力都放在db上压力太大,导致db异常缓存击穿:黑客故意...
2019-04-24 21:32:02
147
3
原创 Spring MVC入门
什么是springmvcSpring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。Spring Web MVC的正式名称来自其源模块(Spring -webmvc)的名称,但它更常见的名称是Spring MVC。为什么要用Spring MVC简化传统servlet处理请求代码是spring的一部分,与spring无缝集成提供大量A...
2019-04-11 16:06:40
308
原创 【vscode】Bookmarks使用
前言之前用vs的时候感觉自带的书签很好用,但是现在战场转移到vscode上,这款开源的编辑器真的很不错,也有bookmark的感觉,按alt+left或alt+right也能跳转到你的刚刚编辑过的地方,但是感觉还是不太好用,功能不强大。于是发现bookmarks这个插件推荐给大家。如何安装f1 输入ext install安装完成之后介绍一些基本的使用:Ctrl+alt+K 创建或消除书...
2019-04-04 20:00:54
19775
7
原创 【spring】IOC
前言大家都知道spring的核心是Ioc和aop,也都知道IOC中的DI,但是真的想弄清楚什么是IOC其实还是挺困难的,最近看了不少关于IOC的文章,故在此总结一番,方便日后回顾查看。什么是IOC控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injec...
2019-04-02 20:55:09
162
原创 spring中用到的设计模式
单例模式保证全局仅有一个实例,并为其提供一个全局访问点。spring中最明显的使用时配置注册bean的时候设置scope为singleton。源码实现org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean@Nullable protected Object getSingleton(Strin...
2019-03-31 10:14:28
2615
原创 【JVM】类装载
什么是类加载机制把Class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java 类型就是类的加载机制。类加载的时机下图是类在jvm中的生命周期:何时加载:遇到new/getstatic/putstatic/invokestatic反射子类加载时若父类没有加载,则先加载父类包含main方法的类JDK1.7动态语言支持时MethodHa...
2019-03-27 21:21:50
274
原创 【JVM】GC
什么是GC随着程序的运行,内存中的变量,对象等越来越多轻则影响性能重则导致系统崩溃。内存回收回收的是哪些区域呢,是堆和方法区;栈帧、程序计数器、本地方法栈的生命周期是与线程同步的,线程结束它们也就消失了,所以这些区域不需要回收。GC就是找到存活对象回收无用对象占用的内存空间让其他对象。什么是垃圾要想进行垃圾回收首先得知道什么是垃圾,对程序来说判断垃圾是通过一些算法进行判断的,有以下算法...
2019-03-26 21:32:43
783
原创 【JVM】参数设置
idea在哪里设置JVM参数Trace跟踪参数打印GC简要信息-verbose:gc-XX:+PrintGC打印详细信息-XX:+PrintGCDetails打印CG发生的时间戳-XX:+PrintGCTimeStamps指定GC log的位置,以文件输出帮助开发人员分析问题-Xloggc:log/gc.log //这里是你的日志路径,可以是相对的也可以是绝对路径...
2019-03-25 11:53:12
283
原创 提高项目演示效率
今天演示项目:项目不大但模块很多,不同的人演示的时候都要重新输入一遍表单,开会的时间大约是一个小时,感觉百分之六十的时间都花在表单输入上,而且这种输入也是乱输入,仅仅是为了演示功能。解决方案:在开发测试阶段在每个有表单的界面开放一个按钮,这个按钮可以一键填写表单,这样的话可以节省大部分的时间,开发测试演示过程中都可以使用哦。...
2019-03-24 21:01:28
208
4
原创 【JVM】运行机制
启动流程我们写完代码之后代码到底是如何执行的呢?1、编写源代码,XXX.java2、编译成XXX.class3、打包成XXX.jar4、执行命令 java -jar XXX.jar来启动程序JVM基本结构类加载子系统:把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化最终形成可以被JVM直接使用的Java类型指令计数器:可以当做当前线程所执行字节码行号...
2019-03-24 17:33:25
487
1
原创 【基础】网络层
什么是网络层在网络体系结构中,网络层位于数据链路层之上传输层之下,位于提供端到端传输层服务协议的底层。网络层是网络核心的最高层,是大型网络互联的关键。网络层服务转发当通过输入链路收到分组后,路由器需要决策通过哪条输出链路将分组发送出去,并将分组从输入接口转移到输出接口。路由选择分组从源主机到目的主机过程中需要通过某种方式确定分组需要经过的路径,计算选择哪条路径的方法叫做路由选择算法。...
2019-03-24 09:43:38
483
1
原创 记一次北航软件学院复试
总共往学校跑了三次,第一次是去体检,大早晨饿着肚子水都不敢喝,经过曲折的两个小时到了北航校医院,那队伍太长了,光抽血这一项就排队排了半个小时,可能我去的时间的不早不晚吧;建议要么去的时候就大早晨去,要么就将近11点的时候再到校医院。第二次去是体检的第二天把体检表取出来交给秦老师,此处需要注意下,体检结束之后把单子交之前记住自己的编号,第二天去领的时候好找一些。体检结果分三类,体检合格、基本合格、...
2019-03-17 21:39:49
2673
9
北航软件学院复试专业基础
2019-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人