- 博客(51)
- 资源 (6)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用代码逻辑实现业务中的模糊查询
前言实际工作中,与C端交互的需求常会涉及到模糊查询,解决思路一般有如下几种:数据库实现:like语句;全文索引;ES实现;代码逻辑实现;三种解决方案在针对不同场景往往能得到很好的运行效果,本文主要介绍第三种。一、适用场景在对某一用户的信息查询二、使用步骤1.引入库代码如下(示例):long begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { Str
2021-07-05 22:34:19
1022
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从一年开发经验的视角看如何优雅编程
从一年开发经验的视角看如何优雅编程编程绝非易事,需要大家在日常工作中仔细钻研,下面我们从实际业务开发的角度来分析一下如何优雅地进行编程,简单可以总结几点:1.整体理解业务2.从开发角度分解业务3.结合各业务点整体分析系统结构4.针对每一个业务点进行边界分析5.对每个功能点进行测试分析6.快速编码一、整体理解业务都说业务是一切系统架构的基础,那么其也是我们在项目开发中首先要理解的内容,因为接下来的所有工作都将围绕这些业务点进行开展,如果对业务理解不透彻,那么后续很有可能出现错误、遗漏等问
2021-04-10 21:35:34
265
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringBoot+Idea+Maven中Log4j2的快速搭建
首先假设读者已经将SpringBoot+Idea+Maven工程成功搭建,下面对Log4j2的集成做一下说明:工程application.yml配置:# log4j2.xml配置logging: config: classpath:log4j2.xml# log4j2.yml配置# logging:# config: classpath:log4j2.properties...
2019-07-25 10:08:59
1572
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 OpenCV——Delaunay三角剖分(C++实现)
最近做三角剖分发现了一篇很好的博客,其中的代码都可以实现,特在此分享给大家,希望可以一起学习,有问题共同探讨。---------转载源-----------------------------------------------------------------Delaunay三角剖分是1934年发明的将空间点连接为三角形,使得所有三角形中最小角最大的一个技术。如果你熟悉计算机图形学,你便会知道...
2018-05-04 10:36:50
14864
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 基于Java的文件上传与下载
最近自己做了一个关于文件上传与下载的小demo,在制作中遇到了一些小问题,特在此记录一下。一、文件上传1.前台及对应后台代码:<input name="upSource" type="file"/> private PrintWriter out = hresponse.getWriter(); //判断文件是否存在(upSource为前台传入的文件) ...
2018-03-29 15:14:49
295
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 MFC——常见的几种类型转换(CString、Int、Char、string)
* 从昨天开始打算做一个学习点云的构件,点云操作平台选择了MFC,但是在往MFC框架中添加功能的时候常常需要进行一些数据类型的转换,网上也有不少资料,但是感觉有些不够全面且不能一目了然地呈现给读者想要寻找的内容,现做一些笔记,方便自己以后查看,也希望可以帮助读者。*1. CString向char类型转换 //这里使用string时在MFC项目中可能会报错 //需要
2017-06-29 16:49:14
3320
原创 SpringBoot入门篇(注解篇一)
在说明Spring的注解前先来理解一下Spring中最重要的两个概念,一个是“依赖注入”,另一个是“控制反转”。依赖注入,我理解的就是在开发中我们需要依赖于Spring主动注入的一些实例化对象来作为资源提供给我们进行使用,简称“开发者依赖Spring的资源注入来完成开发”;而控制反转,即开发者将手动new对象的工作交给了Spring来完成,这是一个由主动创建到被动接受的过程,也就是将控制实例化对象...
2019-07-15 21:18:10
343
原创 “0xc000007b无法正常启动”解决方案汇总
今天在运行一个Opengl项目时总是一直报“0xc000007b无法正常启动”的错误,于是百度了一些解决方案,当然这些解决方案是针对不同错误原因提出来的,所以如果读者也遇到同样的错误可以一一尝试,或者首先分析原因再选择解决方案。现将这个问题总结如下:一、错误可能产生原因DirectX 9.0损坏,这种一般是由于系统原因引起的,但是对于开发来说基本上不会是这个原因,如果是执行某...
2019-04-03 17:55:45
50396
4
原创 Java笔试必考知识点合集九
1.full GC触发的条件触发Full GC执行的情况有如下五种:<1>. 旧生代(老年代)空间不足 旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的FullGC,调优时应...
2018-07-14 11:29:39
372
原创 Java笔试必考知识点合集八
1.Java序列化一、序列化使用场景对象的序列化:目的:将一个具体的对象进行持久化,写入到硬盘上。(注意:静态数据不能被序列化,因为静态数据不在堆内存中,而是在静态方法区中)Serializable:用于启动对象的序列化功能,可以强制让指定类具备序列化功能,该接口中没有成员,这是一个标记接口。这个标记接口用于给序列化类提供UID。这个uid是依据类中的成员的数字签名进行运行获取的。如果不需要自动获...
2018-07-12 16:32:06
321
原创 Java笔试必考知识点合集七
1.Java垃圾回收机制两个最基本的java回收算法:复制算法标记清理算法 复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B。此为新生代最常用的算法标记清理:一块区域,标记可达对象(可达性分析),然后回收不可达对象,会出现碎片,那么引出 标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象两个概念:新生代和年老代 新生代:初始对象,生命周期短的永久代:长时间存在的对象整个ja...
2018-07-09 09:53:02
409
原创 Java笔试必考知识点合集五
1.Java代码的执行注意点*Java类的加载顺序 :(1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) (3) 父类非静态代码块( 包括非静态初始化块,非静态属性 ) (4) 父类构造函数 (5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 ) (6) 子类构造函数 其中:类中静态块按照声明顺...
2018-07-09 09:23:47
403
原创 Java笔试必考知识点合集六——Spring专场
1.Servlet中使用过滤器,web.xml中配置Servlet过滤器的配置包括两部分:第一部分是过滤器在Web应用中的定义,由<filter>元素表示,包括<filter-name>和<filter-class>两个必需的子元素第二部分是过滤器映射的定义,由<filter-mapping>元素表示,可以将一个过滤器映射到一个或者多个Servlet...
2018-07-08 22:30:22
315
原创 Java笔试必考知识点合集四
1.Java枚举的内部实现:枚举类在后台实现时,实际上是转化为一个继承了java.lang.Enum类的实体类,原先的枚举类型变成对应的实体类型,上例中AccountType变成了个class AccountType,并且会生成一个新的构造函数,若原来有构造函数,则在此基础上添加两个参数,生成新的构造函数,如上例子中:实例枚举源码:enum AccountType{ SAVING, FI...
2018-07-08 11:06:03
403
原创 Java笔试必考知识点合集三
1.抽象类与接口:抽象类与接口的关系:可以说接口是一个特殊的抽象类抽象类:抽象类中可以有抽象方法和普通方法;抽象类中可以有抽象成员和普通成员;抽象类中可以有静态成员和静态方法;抽象类中有构造函数但是不能被实例化,因为有抽象方法没有被实现;抽象类可以被普通类和抽象类继承;接口:接口中的所有成员默认都是public abstract final的且必须赋初值,所有方法都是public abstract...
2018-07-06 21:30:23
349
原创 Java笔试必考知识点合集二
1.Java的内存泄露:内存泄露(Memory Leak)——是指一个不再被使用的对象或者变量还在内存中占有存储空间。在C/C++语言中,内存泄露出现在开发人员忘记释放已分配的内存就会造成内存泄露。在java语言中引入垃圾回收机制,有GC负责进行回收不再使用的对象,释放内存。但是还是会存在内存泄露的问题。内存溢出(OOM)是指程序在申请内存时没有足够的内存供使用,进而导致程序崩溃这是结果描述。内存...
2018-07-06 11:05:18
290
原创 Java笔试必考知识点合集一
1.web开发中如何实现会话跟踪?会话跟踪是一种灵活、轻便的机制,它使Web上的状态编程变为可能。HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的、非连续的。当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题。当一个客户在多个页面间切换时,服务器会保存该用户的信息。有四种方法可以实现会话跟踪技术:UR...
2018-07-05 10:48:39
535
原创 Java实现“队列”结构
1.队列 说到队列首先给我们的第一印象就是“先进先出”,这一点与栈是完全相反的。当然,对于双端对列除外,因为其可以指定任意一端进行数据的删除和插入。其次在队列中的删除和插入是采用环绕式处理的方式进行的,即通过头标记head_sign和尾标记rear_sign的移动来实现的,具体过程可以通过下边的图进行理解。2.队列结构实现public class Queue{ //record the...
2018-06-07 16:20:59
2793
原创 Java实现"栈"结构
一提到栈首先映入我们脑海的一个词就是“后进先出”(即其为单通道,只能有一个出口),显然这是栈最明显且重要的特点。栈的内部实现可以使用数组或链表来完成。------------------------1.栈的解析栈之所有容易被理解是因为其包含的方法非常简单,主要包括以下三个方法:push()——一次只能向栈中压如一个数据,先入栈的数据在最下边。pop()——每次只能弹出栈顶数据,也就是一...
2018-06-05 09:12:11
7005
1
原创 Java俩种形式实现插入排序法
排序的重要性使得大家总是走在寻找新方法的路上,冒泡排序->选择排序->插入排序三种方法见证了这一过程,这三种简单排序在实际应用中的使用率也是比较大的,当然也是我们学习高级排序的一个基础。------------------------什么是插入排序—— 通过名字就能很好的理解,插入就是将要排序的元素插入到应该被放置的位置。而这里的插入有一个前提,也是插入排序的一个特征,那就...
2018-06-03 10:46:38
237
原创 PCL求取三维点云模型每点曲率
最近在做有关实验需要计算模型曲率,但是网上找了一圈也没找到满意的资料。最后发现PCL库可以很方便的求取模型中每一个点的曲率,但是我们要想将PCL库求得的曲率数据应用到自己的项目中需要将PCL库与我们的项目进行结合,并且在PCL求出曲率后存放在自己的结构体中,这样才能得到更适合自己项目的数据。-----------------------------------实现思路:鉴于在实际使用中只需要一些曲...
2018-06-01 15:36:24
23206
75
原创 Java实现选择排序及与冒泡排序的比较
已有的排序方法往往不能很好的满足在实际开发中的所有需求,因此需要不断探索去发现更高效的方法。------------------------为什么要出现选择排序? 前面论述了冒泡排序的思想,并通过Java进行了代码实现。我们知道在冒泡排序中,我们需要从左向右依次进行俩俩比较,且每一次比较都有需要进行交换的可能性,所以若不够幸运,一次排序将交换接近N*N次。要知道一点,交换的过程是要在内存...
2018-05-26 22:05:38
554
原创 Java俩种形式实现冒泡排序
数据排序的重要性在实际项目开发中的重要性不言而喻,无论是数据整理还是分析都离不开排序这道工序。-------------------------------------冒泡排序—— 是一种比较简单的排序方法,也是在数据结构课程中我们学习到的第一种排序方法。但是冒泡排序在简单排序中属于时间复杂度较高的方法,用大O表示法为O(N*N)。可是虽然如此,这种排序的思想仍然需要我们去很好的掌握,而...
2018-05-25 21:59:52
753
1
原创 Java编程思想——细话Java中的字符串处理
一、String String为了可以节省存储空间以及避免额外的开销,在需要改变字符串内容时会返回一个新的字符串对象,而如果不需要改变字符串内容,则直接返回原对象的引用。这一点也许也解释了String对象为什么是不可改变的。 String类在实际开发中使用频率非常高,其构造器和常用方法非常多,需要我们在开发中多多使用才能熟悉,具体可以参考如下地址查看:http://tool....
2018-05-23 21:19:09
435
原创 Java编程思想——细话Java异常处理
Java的基本理念”结构不佳的代码不能运行“。----------------------------------------------------一、基本概念1.为什么要有异常机制 发现错误的最理想时机是在编译阶段,即在我们试图运行程序之前。但是这只是一种理想状态,实际是不可能的,所以我们需要一种机制,将编译期间发现不了的错误发送给接收者,接收者通过分析这个错误做出相应的处理,这种机...
2018-05-14 17:38:28
243
转载 Javaweb中常见的乱码问题解决方案
最近在做一个小demo出现了乱码问题,途中发现了一篇总结的比较全面的博客,加上自己的补充后特在此分享给大家。----------转载源--------- ------------------------------------------------------1.文件页面编码导致的乱码每一个文件(java,js,jsp,html等)都有其本身的编码格式,文件中的代码在一种编码中显示正常,在另外一...
2018-05-07 16:00:38
1405
原创 Java实现数据结构——数组
数组是一种比较简单的数据结构,而且在大多数高级程序设计语言中都实现了数组。一、无序数组利用面向过程的思想创建数组,实现数组元素的插入、查找和删除工作:public class Box{ public static void main(String[] args){ //create a array long[] arr=new long[50]; //record index ...
2018-04-30 21:13:00
318
原创 数据结构的魅力折服了我
有些家伙注定让人又爱又恨! 数据结构也许在大多数计算机专业的人眼中并不陌生,不知道其他人在最初接触它时是什么感觉,我确实是被它给难倒了,从此数据结构成为了我计算机学习之路上的一个阴影。记得大二一开始,对C语言还是一知半解的我,忽然开的这门课更是让自己抓狂——那是完全听不懂啊(感觉就是在听天书),当时的老师也没有和我们说这个数据结构到底可以干什么,有什么用,于是乎就晕头转向的上完...
2018-04-27 17:34:14
516
原创 Java实现n阶阶乘的计算
1.问题描述 自然数由1~n的n个数连乘积叫作n的阶乘,记作n!。要求设计一个算法,可以根据输入的数字计算其相应的阶乘。2.问题分析 这是一个比较简单的问题,所谓阶乘实际就是n内数字的连续相乘的运算,想必大家都做过连加问题,俩者的解决思路其实很相近。但是要了解递归的思路实现会更加简洁。3.解决方案方案1: 既然阶乘就是连续乘积,那么我们可以设计一个循环体,在循环体外声...
2018-04-25 15:57:48
34911
3
原创 Java编程思想——细话Java持有对象(下)
一、Map集合由于Map集合的每一个元素是由键和值组成的,所以他具有将对象映射到对象的能力。containsKey()——查看集合中是否包含某键值。containsValue()——查看是否包含某个值。keySet()——获取所有键values()——获取所有值get()——获取指定键对应的值Map可以很容易被扩展为多维:Map<Person,List<String>> m...
2018-04-25 09:33:00
285
原创 Java编程思想——细话Java内部类(上)
置于其他类内部的类就是内部类内部类了解外部类并能与外部类进行通信内部类和组合并不是一个概念一、内部类的创建内部类小例子:class A{ class B{ //内部类的方法体与普通类相同 private int num=0; B(){} void f(){} } private String name="Hello"; public void set...
2018-04-17 17:43:50
222
原创 Java编程思想——细话Java接口
接口为我们提供了一种将接口与实现分离的更加结构化的方法。在选择使用接口通常有俩个目的:一是,为了可以向上转型二是,避免被创建对象(实例),这一点和抽象类是一致的。任何抽象性都是应真正的需求而产生的,所以在开发中不能一味地使用接口,而要根据设计的需求。《Java编程思想》给出的建议是:优先选择类,如果接口的必需性变得非常明确,那么就进行重构。一、抽象类和抽象方法抽象类提供一批通用接口,希望可以通过这...
2018-04-16 22:30:28
231
原创 Java中有多继承吗?
Java中是不支持多继承的,但是提供了一些可以实现同样效果的机制——接口的多实现和接口的多继承。1.什么是接口的多实现?就是一个类(包括抽象类和普通类)可以同时实现多个接口。class Test implements Shape,Tool{}//Tool后边可以通过‘,’的间隔继续实现其他接2.什么是接口的多继承?即接口之间可以实现多继承。interface Test extends Shape,...
2018-04-16 09:37:21
2834
原创 Java类实现某个接口后,是否需要实现接口中的所有方法?
1.结论 并不是所有的类实现接口后都必须实现接口的所有方法!2.特殊情况 当Java抽象类实现某个接口后没必要实现所有的方法。3.注意点 当Java普通类实现接口后必须实现接口中的所有方法。4.原因为什么抽象类不需要实现所有方法? 因为抽象类本身是具有抽象性的,它的方法也大多不需要进行实现,只需要声明,其他实现的过程多交给继承它的子类。而接口本身就更为抽象的一种形...
2018-04-15 12:12:46
17840
3
原创 Java编程思想——细话Java多态
多态是一项让程序员”将改变的事物与未变的事物分离开来“的技术。它可以消除类型之间的耦合关系,为程序员带来更快的程序开发过程,更好的代码组织,更好扩展的程序以及更容易的代码维护。一、什么是多态 多态不但可以改善代码的组织结构和可读性,还能够创建可扩展的程序(即无论在项目最初创建时还是在需要添加新功能时都可以”生长“的程序)。之所以可以进行扩展,是因为在多态中默认忘记了对象类型,比如类Sh...
2018-04-11 22:23:47
398
原创 Java编程思想——细话final关键字
*** 可能使用到final的三种情况:数据、方法和类 ****** 使用final的理由:设计的需要和运行效率 ***一、final变量一个永不改变的编译时常量,也就是一经初始化将不能被改变;可在编译时带入任何用到它的计算式进行执行,这种final常量必须是基本数据类型,并以关键字final表示,这将减轻一定的运行时负担;对于对象引用,final将使引用恒定不变,即一旦引用初始化指向一个对象将不...
2018-04-10 17:01:48
309
原创 Java编程思想——细话Java复用类
在Java中类复用有俩种情况,一是类的组合,二是类的继承。组合是指在新类中使用已经产生的类的对象,也就是新类是由现有类对象的组合而成的,此种方法只是复用了现有程序的功能,而非它的形式。继承无需改变现有类的形式,采用现有类的形式并在其中添加新代码。但是在实际开发中并不是只要其中的一种,基本上是混合使用或者只用其中的一种,至于哪种复用方式更合适还需要根据具体的需求进行合理选择。一、组合 在组...
2018-04-09 22:42:26
235
原创 Java编程思想——那些易被忽视的关键点(三)
1.Java数组:声明有俩种方式---"int[] a;"---"int a[];",在实际开发中Java常用第一种,表示一个int类型的数组a。如果创建了一个非基本类型的数组则称此数组为引用数组,在数组中需要注意以下几个方面:{ int[] a={1,2,3,4,5};//第一种初始化方式,只能紧随定义的数组之后//------------------------------------...
2018-04-06 12:52:53
215
原创 Java编程思想——那些易被忽视的关键点(二)
1.Java中赋值操作,在将一个对象赋值给另一对象时,其实是对引用的赋值。class People{}public static void main(String[] args){ People p1 = new People(); People p2 = new People(); p2=p1;//及将p2的引用给p1,使得俩个引用指向同一个对象 }2.比较操作:“==...
2018-04-05 13:01:28
209
原创 Java编程思想——那些易被忽视的关键点(一)
Java提倡一切皆对象的思想,这样将更有利于开发人员对事物的抽象和描述。1.对象:解空间中的元素及其在解空间中的表示称为“对象”。2.class由来:在程序执行期间具有不同的状态而其他方面都有相似的对象会被分组到对象的类中,这就是class的由来。3.对象即类型:在面向对象程序设计中实际上进行的是创建新的数据类型(即:每个对象就是新的数据类型)。4.类:描述了具有相同特征(数据元素)和行为(功能或...
2018-04-03 11:30:21
290
openMesh实战demo
2018-06-04
C++实现3D点云数据的泊松重建
2018-06-04
高级数据库
2017-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人