- 博客(87)
- 收藏
- 关注
原创 视频讲解:使用springboot搭建mysql+maven+mybatis服务框架
推荐大家使用springboot搭建项目,搭建过程会轻松很多,减少很多解决配置问题的时间。视频为本人自制,大家可以参照这个视频,搭配文章中的代码来创建服务。视频地址:https://v.youku.com/v_show/id_XNDMwOTAzMTExMg==.html?spm=a2hzp.8244740.0.0文件内容根据视频顺序粘贴,跟随视频操作即可。文件内容:1...
2019-08-12 05:09:07 3095
原创 java反射获取目标类的属性,所有方法,构造器
例子:首先定义一个目标类Userpackage com.example.demo;public class User { private String uname; private int age; private int id; public User(String uname, int age, int id) { this...
2019-10-21 11:43:05 408
原创 iDEA 的maven报Unable to import maven project解决记录
具体表现在编译正常,idea引入不正常,不能正确引入依赖。解决:在idea的help 找log。看见报错详细信息2019-10-11 14:43:29,174 [65977663] ERROR - #org.jetbrains.idea.maven - com.google.inject.CreationException: Unable to creat...
2019-10-12 11:29:00 7000
原创 应用jacoco统计单元测试覆盖率
单测覆盖率的意义曾经和一个做人工智能的朋友沟通单元测试的问题。我们做工程化或者应用测试时,少不了开发或者测试同学编写的单元测试。在我不短不长的职业生涯里,不管是在阿里还是自己在创业公司,总少不了要求开发的单元测试率。在阿里更是提升到很高的硬指标程度,比如分支覆盖率70%。创业公司由于项目紧张程度和流程的完善程度,要求会适当降低。当然,在测试绝对前移的情况下,比如服务端全量重构,我们的测...
2019-09-23 18:20:47 1900
转载 一文读懂锁机制:Synchronized和Lock锁在JVM中的实现原理及悲观锁乐观锁应用
一、何谓悲观锁与乐观锁悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和Reentra...
2019-09-17 19:20:05 344
转载 Redis应用及数据同步问题
Redis是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 1. 按照我们一般的使用Redis的场景应该是这样的: 也就是说:我们会先去redis中判断数据是否存在,如果存在,则直接返...
2019-09-04 11:29:03 764
原创 一文看懂消息中间件-RocketMQ(原理与应用聚合)
消息队列概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,Kafka,阿里自主开发RocketMQ等。消息中间件的构成Broker消息服务器,作为server提供消息核心服务。Producer...
2019-08-28 18:45:13 1415 1
转载 TCP/UDP入门与实例详解
TCP简介传输层控制协议(Transport Control Protocol),TCP/IP协议栈的核心之一。位于应用层与网络层之间,提供面向连接的、可靠的字节流服务。记住关键词“面向连接”、“可靠”、“字节流”,这是学习掌握TCP的关键:面向连接:客户端、服务端交换数据前,需要建立连接; 可靠:通过特定机制,在不可靠的网络之上,确保报文准确送达, 字节流:数据的最小单位为字节。...
2019-08-12 09:06:56 532
原创 使用idea搭建spring+maven+mybatis项目框架
先说一句,这个是spring+maven+mybatis项目框架的搭建文章。强烈推荐大家使用springboot搭建项目,搭建过程会轻松很多,减少很多解决配置问题的时间。详情请移步:使用springboot搭建maven+mybatis视频讲解以下是使用idea搭建spring+maven+mybatis项目框架 正文:需要准备的环境: idea ,jdk1.8,...
2019-08-12 05:10:47 867
原创 DFS深度优先搜索算法
深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。(Wiki)(直到走不下去才往回走)...
2019-08-07 19:38:59 704
转载 RPC和Http的区别
什么是 RPC ?RPC (Remote Procedure Call)即远程过程调用,是分布式系统常见的一种通信方法,已经有 40 多年历史。当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手段之一。除 RPC 之外,常见的多系统数据交互方案还有分布式消息队列、HTTP 请求调用、数据库和分布式缓存等。RPC 在我们熟知的各种中间件中都有它的身影。Nginx...
2019-07-18 19:20:29 646
转载 IOC和AOP是什么
转载:https://blog.csdn.net/qq_38735934/article/details/81074852 作者:星星点灯htIOC定义:IOC(Inverse of Contro)控制反转,有时候也被称为DI依赖注入,它是一种降低对象耦合关系的一种设计思想。1.概念引入:1.1一般而言,在开发中使用分层体系结构,都是上层调用下层的接口,上层依...
2019-07-18 19:19:23 2755 1
原创 递归思想和准则
基本法则:1.基准情形(base case):必须存在基准情形,他们不用递归就能求解。2.不断推进(making progress):对于需要递归求解的情形,递归调用必须朝着基准情形推进。3.设计法则(disign rule):假设所有的递归调用都能运行。4.合成效益法则(compound interest rule):在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工...
2019-07-16 18:26:18 261
原创 java内存区域与内存溢出异常(内存泄漏)
Java内存管理模型-运行时数据区域程序计数器一块较小的内存空间,可以看作当前线程所执行的字节码行号指示器。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,为了线程切换后能回到正确的位置,每条线程都有独立的程序计数器,这类内存为“线程私有”内存。java虚拟机栈与程序计数器一样,java虚拟机栈也是线程私有的,生命周期与线程相同。描述的是...
2019-07-16 15:59:45 486
原创 数据结构与算法之-几种常见的排序算法(插入,归并,快排)
排序是计算机科学的最基础的根基之一。基本的排序方法以O()排序。存在几种排序算法, 以O(NlogN)为时间界。任何通用的算法均需要次比较。插入排序:对于少量元素的排序,它是一个有效的算法。插入排序的工作方式像许多人排序一手扑克牌。开始时,我们左手为空并且桌子的牌面向下。然后我们每次从桌子上拿走一张牌并将它插入左手的正确位置。我们从右向左将它与已在手中的每张牌进行比较,拿...
2019-07-15 17:14:42 449
原创 树&集合类解析(三):基于树结构的集合-TreeMap(TreeSet)与其实现基础-红黑树。
红黑树红黑树是AVL树(平衡二叉查找树)的一个变种。对红黑树的操作在最坏情形下花费O(logN)时间。也是TreeMap的实现基础。我们先来了解红黑树的性质,才能理解树结构集合类的实现方法。有关二叉查找树请移步:二叉查找树结构解析。红黑树具是具有下列着色性质的二叉查找树:1.每一个节点是红色或是黑色。2.根是黑色的。3.如果一个节点是红色的,那么他的子节点必须是黑...
2019-07-10 17:31:59 678
原创 优先队列(堆)与TopK问题
优先队列是允许至少下列两种操作的数据结构:insert和deleteMin。使用场景例如打印机排队打印,和操作系统调用执行时,一有空闲就执行的任务、短且快的任务、长任务,优先级高的任务、优先级低的任务之间的调度。同时也是贪心算法的实现基础。插入的操作等价于入队enqueue,而删除最小值是dequeue(出队)在优先队列中的等价操作。优先队里的几种实现:1.链表方式O(1)插...
2019-07-10 16:11:35 548
原创 集合类解析(二):散列数据集合-HashMap(Set)源码拆解与Set,Map解析
原码拆解与流程图为原创,转载请注明。本文为集合类解析(二),从根本上了解集合类,请先移步:Collection 集合类、Iterator 迭代器、List解析移步:集合类解析(一):表结构与集合类Collection,Iterator,List基础讲解集合类之Set与Map阅读Set与Map的实现类源码即可发现,为何set与Map要一起描述,主要的Set实现类如HashSet...
2019-07-08 09:51:00 290
原创 树的解析(二):二叉查找树
二叉查找树二叉查找树是两种库集合:TreeSet和TreeMap的实现基础。二叉查找树的性质是:(1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值;(2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值;(3)左、右子树也分别为二叉查找(排序)树;(4)没有键值相等的节点。该树中所有元素可以用某种一致的方式排序。二叉查找树的部分方法实现...
2019-07-04 15:30:35 168
原创 集合类解析(一):表结构与集合类Collection,Iterator,List基础讲解。
之前一直在寻找一本集合类系统讲解的书籍,问了身边的人好像没有具体推荐。意外的在《数据结构与算法-Java语言描述》这本书里把集合类了解的明明白白。。。推荐阅读。下面的内容是阅读过程中根据自己的理解,把重点内容实现了一下。希望对阅读的人有帮助。抽象数据类型(abstract data type)抽象数据类型,是带有一组操作的一些对象的集合。下面讲解一下抽象数据类型的第一部分:表...
2019-07-02 03:38:47 246
原创 树的解析(一):基本概念和应用遍历方式
树的概念对于大量输入数据,链表的访问时间太慢。树是非常有用的抽象概念。递归是定义树的一种自然方式。一棵树是节点的集合。这个集合可以是空集。若不是空集,则树由根(root)节点及0-多个非空子树组成,这些子树每一棵的根都被来自根root的有向边(edge)所连接。每一棵子树的根叫做root的child,而root是每一棵子树的根的parent。一棵树是N个节点和N-1条边的集合,...
2019-07-02 03:36:39 673
原创 一个泛型集合类示例与相关ArrayList实现
要求:设计一个泛型类Collection,它存储object对象的集合(在数组中),以及该集合当前的大小。提供public方法isEmpty,makeEmpty,insert,remove,isPresent.方法isPresent(x)当且仅当在集合中存在(由equals定义) 等于x的一个object时返回true实现如下:package Algorithm.Generic...
2019-06-27 15:54:07 481
原创 Junit源码解析
程序运行顺序:初始化阶段:JUnit的入口点在junit.textui.TestRunner 的mian方法,在这个方法中,首先创建一个TestRunner实例 aTestRunner ,然后 main 函数中主体工作函数调用了start()方法。start()方法,首先对命令行参数进行解析:参数“ -wait ”(等待模式,测试完毕用户手动返回)、“ -c ”,“ ...
2019-06-24 19:03:11 674
原创 java静态分派+包装类+自动装箱拆箱
静态分派(Method Overload Resolution)所有依赖静态类型来定位方法执行版本的分派动作称为静态分派。典型应用方法是重载。静态分派发生在编译阶段,因此确定静态分派动作是由编译器来完成的,在很多情况下,重载版本并不是唯一的,而是“当前最合适的”版本。举一个静态分派的极端例子:上面的代码输出hello char。’a‘是一个char类型,会自然寻找char的重载...
2019-06-24 03:31:09 177
原创 常见设计模式解析
以下所有设计模式的源代码:https://github.com/gloria0610/DesignPattern.git内容供个人学习理解,需要搭配代码食用。例子来自HeadFirst设计模式。类图和code手敲,转载请注明。策略模式定义了算法族,分别封装,并且算法之间可以互相替换。因为每一个算法都被封装起来了,所以客户可以轻易地使用不同算法。举例:不同的鸭子有不同的...
2019-06-14 17:25:24 240
原创 java常见的异常及例子构造
Java的常见异常及Demo整理了一下Java常见的异常类型,并尽量在每一个附上例子,帮助清晰理解。ArithmeticException算术异常类,常见出现在公式计算除0中,举例来说,ArrayIndexOutOfBoundsException数组下标越界异常,通常出现在数组取值时,取数据下标在数组中并不存在导致。NullPointerExcept...
2019-06-13 14:36:57 6193
原创 单例模式singleton及其各种实现方式
单例模式的核心是确保一个类只有自己建立的一个实例,并且在外部需要实例时,使用get方法提供全局访问点,通常应用在线程池,缓存注册表,(共享?锅炉)等资源敏感型对象。需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。具体实现:1.私有的构造函数private Singleton(){}2.类定义中含有一个该类的静态私有对象private s...
2019-06-13 03:58:28 476
原创 javaGC与内存分配策略
在我们了解JavaGC之前,尝试思考3个问题:哪些内存需要回收? 什么时候回收? 如何回收?如何判定一个对象应该被回收?引用计数算法很多教科书判断对象是否存活的算法是这样的,给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1,当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不再被使用的。但,主流的Java虚拟机没有选用引用计数法来管理内存的。...
2019-05-31 17:47:02 427
原创 final,finally,finalize的区别与finally鲜为人知的细节拆解
Final关键字在java类中,final可以用来修饰类,方法和变量。修饰类:当final修饰类时,表明该类不能被其他类所继承。当我们需要让一个类永远不被继承,此时就可以用final修饰,但要注意:final类中所有的成员方法都会隐式的定义为final方法。修饰方法:final修饰方法的目的有两个:1.锁定方法,防止继承类对其进行更改,即方法不能被重写...
2019-05-28 15:03:39 414
原创 java反射--Field用法实践与IllegalArgumentException构造
一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,“反射”指的是通过对象找到类。简单来说:java反射机制简单例子使用反射设置属性的例子:代码:实体类package JavaCharacter;/** * Created by jiangyayi on 19/5/24. */public class Car {...
2019-05-24 15:44:41 2857
原创 Appium 真机调试
先说下 appium 要想用真机调试的 前置条件:1.在真机上跑APPIUM的前提是,手机应该注册成开发者手机,这样就可以在Settings的页面看到 Developer(开发者)这个选项了。developer选项里的 Enable UI Automation开启,不然会报错:selenium.common.exceptions.WebDriverException: Message...
2017-02-09 15:55:23 6382
原创 appium-mac-idea-ios 安装和初级使用记录-直至跑通!
一.用命令行做了一部分准备工作 1. 爬墙 因为后续安装过程中可能会碰到墙的问题,所以首先得解决爬墙的问题。 我的方便,公司提供代理。 2. Java环境 java -version Java version "1.8.0_05" Java(TM) SE Runtime Environment (build 1.8.0_05-b13) Java HotSpot...
2017-01-23 10:58:00 1786
原创 webdriver.close 报错问题 解决方案
解决方案转载自: http://blog.csdn.net/aerchi/article/details/43985099使用appium wd.close()时遇见报错:Method is not implemented ..在使用webdriver操作时,点击主窗口的链接,会弹出子窗口。此时就会有两个窗口,如主窗口
2017-01-23 10:25:19 3257
转载 RB配置和使用
安装环境:CentOS-6.7,ReviewBoard-2.5.1.1安装环境的配置确认当前系统中有如下包,若没有,使用yum安装。httpd-2.2.15python-2.6.6mysql-5.1.73接着,对系统的包更新一次:yum update接着依次安装下面这些包:yum install python-setuptoolsyum inst
2016-08-02 16:36:19 4604
原创 jmeter 使用实践
安装方法:mac上安装命令:brew install jmetertar xvzf apache-jmeter-2.13_src.tgzcd /usr/local/bin/jmetersh /usr/local/bin/jmeter使用:1 添加线程组Thread Group Thread Group elements 是任何一个测试计划的开始点。所有的测...
2016-05-07 19:34:45 345
转载 topK问题
TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。TopK问题是个很常见的问题:例如学校要从全校学生中找到成绩最高的500名学生,再例如某搜索引擎要统计每天的100条搜索次数最多的关键词。 对于这个问题,解决方法有很多:方法一:对源数据中所有数据进行排序,取出前K个数据,就是TopK。但是当数据量很大时,只需要k个最大的数,整体排序很耗时,效率不高。
2016-02-24 15:19:26 1928
转载 jenkins配置 转载保存
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面看看我们是如何几分钟就快速搭建一个持续集成环境吧。假设我们目前已经有2个maven项目:entities(JAVA类库),web(Web应用,依赖entities)。一、安装Jenkins地址http://mirrors.jenkins-ci.org/下载适合的Jenkins版本。Window
2016-02-22 12:07:49 6525
转载 seleniumRC环境配置及使用
下载 RC包 http://download.csdn.net/detail/by888888/8238989
2016-01-06 11:58:58 3414 2
原创 spring pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org
2015-12-08 15:30:03 411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人