- 博客(51)
- 收藏
- 关注
原创 RestTemplate发送请求携带文件
这里有一个问题就是,我调用的这个接口返回的中文是unicode编码的,目前还在赵原因,在此先做一个记录。后续找到原因会补充在评论下。在工作上遇到这样一个需求,就是调用我们公司的AI平台,将图片文件发送给他们,他们进行解析然后返回解析结果。1.设置请求头,并且设置ContentType为multipart/form-data形式的。那么用java代码该如何组装这个请求发送过去呢?3.将文件处理好后,增加到请求体中。
2023-08-08 14:08:19 949
原创 Java 操作ElasticSearch
Java查询ES,Java High Level REST Client,Spring Data Elasticsearch
2023-05-02 18:37:36 2072
原创 KMP算法
KMP算法主要是解决包含问题,特别是在字符串方面用的比较多,主要就是看在一个字符串里面看是否包含一个字串。 要查看一个字符串里面是否包含另一个字串,大体上分为两步。1,首先拿到字串,并且拿出它的每一个字符,去算它的最长前缀和最长后缀的匹配长度,并返回next数组。2,在此基础上去比较字两个字符串。第一步:拿子字符串去算最长前缀和最长后缀的匹配长度。怎么理解呢?比如说下面这个就是我们的子串。首先拿第一个字符a,他前面没有字符了,所以我们规定它为-1。然后拿...
2021-07-26 22:35:52 110
原创 希尔排序
相当于把数据进行分组:然后进行排序。这是在网上截屏的分析:其实我也是刚学完这个不久,看完这个分析图以及还看了讲解,我依然不太懂,我就直接看代码,一步一步的跟着代码来推理一遍才懂了。 /* * 希尔排序的第一种实现方法交换式,效率没有平移法好 * 它的基本思想是:首先拿到一个数,然后与他一组的数据进行比较, * 如果小于前面的数就进行交换,每一组都要进行比较一次,有点像冒泡排序 * */ public static void shellSort(in
2021-05-05 19:33:06 92
原创 选择排序
选择排序也是比较经典并且相对来说比较容易理解的一种排序,相当于遍历一遍数组,找到最小的一个值,然后放到最前面。第一步遍历找到数组中最小值:第二步把它和最前面的值进行交换:这样最小的一个值就在最前面了。然后后面所有的操作都一样了,只是不算已经排了序的值了。示例代码:public static void Selectsort(int[] arr){ int min = 0; for(int i = 0; i<arr.length - 1;i++){
2021-05-04 19:44:17 89
原创 冒泡排序
冒泡排序:冒泡排序是我们所有人一开始学排序就学的第一个排序,其实不难,如果你是刚学的可能需要考虑一会,如果是需要图解的话,我也不知道怎么弄一个动态图来形象说明,就搞两张图片简单说明一下。假如说我们从小到大排序,假如说我有两个指针,它们依次后移,若前面一个数大于后面一个数就交换位置,这样走完一遍,第一个数就将会是最小的一个数,依次类推,即可完成排序```public static void Sort(int[] n){ if(n.length < 1){ ...
2021-05-04 19:18:35 109
原创 链表的实现以及链表的反转
链表?到底是个什么玩意儿?用它拿来干嘛?链表其实跟数组一样,都是用来存储某一组数据的。我都有数组了,还要链表干嘛啊。其实得从它们的存储结构来看,链表跟数组最大的区别就是链表在内存中存储并不是连续存储的,而数组在内存中是一块连续的内存地址,它们都是用来存储数据的,但是由于它们的存储结构差异,因而导致了它们存在本质的区别。数组在内存中大概是这个样子的:而链表在内存中大概是这个样子哒:我们可以清楚的看出来它们本质的差别,数组是一块连续的区域,它的这种存储结构使得它读取数据以及修改数据非常的
2021-04-01 19:44:02 310
原创 数组实现队列(详细)
我们都知道,队列是一种先进先出的数据结构,每当有人问你队列是什么,你的回答就是 "一种先进先出的数据结构",当然这样的回答也是完全没有错的,它就是一种先进先出的数据结构,为什么我们不能描述的多一点呢?更详细一点?下面我们就来详细的描述一下队列。 队列是我们学习数据结构的一种重要的结构,它能帮我们帮我们解决生活中的一些问题,例如到银行办理业务,当人多的时候就需要取号排队,这就是队列的一种应用。队列的实现可以有两种方式来实现,一是用数组,二是链表,在这里我们就来说一下数组实现的方式...
2021-03-21 22:41:41 5169 4
原创 稀疏数组
所谓稀疏数组到底是什么呢?其实也是一个二维数组,为什么要叫稀疏数组?不重要。要它干嘛用呢?用来保存一个二维数组。用二维数组保存二维数组?是的,它保存的二维数组是一个重复数据比较多的二维数组,就理解成压缩吧,就是将一个较大的二维数组缩小一下,这样就可以节省内存空间了。如下一个二维数组:0 0 0 00 1 0 00 0 3 00 0 0 0转换为稀疏数组:行 列 数值4 4 01 1 12 2 3这样就可以保存下原来4行4列的值了。节省了不少内存空间。第一行记录了原来二维数组的大小,4行
2021-03-19 20:32:47 91
原创 Servlet
Servlet简介: 狭义的servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet的类。其主要功能在与交互式的浏览和修改数据,生成动态Web内容。Servlet生命周期: 有两个方法:init () 和 destroy()。 如果不再配置文件加 load-on-startup 那么初始化方法会在第一...
2019-12-03 15:46:55 229
原创 Java文件操作基础
在了解文件操作之前我想说一个基本常识:一般读写文件需要两次数据复制,比如说读文件,需要先从硬盘复制到操作系统内核,再从内核复制到应用程序分配的内存中。还需要知道操作系统所在的环境是内核态,应用程序时用户态。应用程序调用操作系统的功能,需要两次环境的切换,先从用户态切换到内核态,再从内核态切换回用户态。这种切换是有开销的,我们应该尽量减少这种切换。 从前面所讲我们引出一个新的概念,那就...
2019-11-27 20:11:06 164
原创 初识HashMap
在我学习的过程中HashMap和并发编程一直都是我难以攻克的难点,这两天阅读了一点书籍,我就来大概的概括一下我学习的内容吧。首先我们都知道,HashMap是用来存储键值对的,而且键是不可以重复的,如果在存储的时候,你定义了相同的键,那个这个键值对会覆盖原来的键值对。比如说首先看这段代码:HashMap<String, Integer> hs = new HashMa...
2019-11-24 22:48:45 121
原创 学习Hibernate框架总结
Hibernate框架应用在dao层对数据库进行crud操作,其实hibernate底层代码就是jdbc,它只不过时jdbc进行了封装,使用hibernate框架之后不需要再写jdbc的代码了,也不需要再去写sql语句实现。 那么现在假如说我们想创建一个user表,按照我们以前的惯例,我们需要create table然后等等之后的操作,但是我们现在可以不用,我们先创建一个实体类,就...
2019-08-15 21:49:13 176
原创 JDBC
我的老习惯,在介绍某个东西的时候都会说一下这个东西是干什么用的。那么JDBC(Java Data Base Connectivity,)是拿来干嘛用的呢?它是拿来对我们数据库(mysql,oracle)进行操作用的,比如说我们想要读取数据库的数据,或者拿数据与数据库的数据进行比较。先总体说一下开发步骤,然后后面拿几个实际例子,然后应该就能看明白。 JDBC开发步骤:1,注册...
2019-07-26 21:15:01 130
原创 线程和多线程总结
首先说一下进程和线程的区别: 进程:指正在运行的程序,当打开一个程序的时候,他会进入内存运行。它最大的特点是它需要内存。 什么是线程:线程是进程中的一个执行单元。 什么是多线程: 一个程序有多个执行路径。我们在学习一门技术的时候首先要知道这么技术有什么作用,能干什么用,那么我们学习线程有什么用?学习多线程有...
2019-07-23 21:36:49 152
原创 Servlet常见的几种错误及解决方法
错误1: 404错误造成原因:1,在请求地址中Servlet书写名称错误。2,虚拟项目名称书写错误、解决方式:仔细检查你的地址拼写是否完全正确。错误2: 500错误,内部服务器错误错误1:java.lang.ClassNotFoundException解决方法:仔细检查你的web.xml文件的全限定路劲是否正确。错误2:Service方法体的代码执行错误。解决...
2019-07-11 09:05:49 4254
原创 Spring总结(上)
spring是一个开源框架,使用它可以降低类与类之间的耦合度,它里面最核心的两个思想是控制反转(Ioc)和切面编程(aop),首先解释一下他们两个的大致意思,尽量说的容易理解一点。 控制反转(ioc):还是拿在网上看到最多的例子来说,假如你想制造一辆汽车,如果你按照以下顺序来做的话,首先制造车轮,然后按照车轮的大小去制造底盘,然后去制造车身,车子是制造出来了,可是有一天客户说他想换...
2019-07-02 09:38:37 110
原创 jdk的动态代理
其实学一项技术,我们要明确几样东西,一是需要去了解这项技术能干嘛,二是我拿这项技术可以拿来帮我解决什么样的需求,还有就是这项技术的优缺点格式什么,我该在什么样的场合去用他们,本文围绕这几个方面来展开述说。 首先说一下动态代理能拿来干嘛,假如说我们今天下班了想直接就回家吃饭,这一行程我们已经决定好了,可是下班的时候走在路上临时决定想去买点好吃的干粮带回去,想一下我们在程序中,我们...
2019-06-23 22:56:42 92
原创 网络版计算器的实现及中缀转后缀
首先说一下,我这个网络版计算器要实现的效果,首先,我们由客户端输入要计算的公式,然后传递给服务器,进行计算,然后再返回给客户端计算结果。 首先会讲解一下我的代码大致的实现过程,然后会说一下中缀表达式转后缀表达式,最后附上代码。 第一步我们创建服务端,首先是创建ServerSocket对象,指定端口号,然后调用accept方法,等待客户机的接收,这里的话accep...
2019-06-09 21:59:01 271
原创 归并排序
归并排序是八大排序算法之一,它的空间复杂度为O{n*logn},他比基础的冒泡排序和选择排序要快。 归并排序是利用了递归,把一个数组分为两半,然后分别排序,然后再整体排序,可能我直接这样说你不太理解,我利用图来分析一下。 首先将数组一分为二(分为左半部分和右半部分):然后将左半部分和右半部分排好序后,分别用两个指针来进行比较:这里是这么进行比较的:开辟一个新的数组...
2019-05-18 22:48:41 111
原创 设计模式之责任链
什么是责任链? 我全部围绕着代码来写: 首先,我们经常在上网的时候会遇见这样的问题,你发出去一部分消息,但是在屏幕显示出来的跟你实际发送出去的有所差别,比如说在玩有些游戏的时候,你想骂人的时候,但是你会发现你的有部分会变为其它的,比如星号。因为在你发送消息出去之后,程序会检查你的消息时候包含敏感词汇,如果有,它会给你改了或者删除掉,我们今天就来介绍这种设计模式。假如说MS...
2019-05-11 23:27:02 207
原创 Java中的容器
Java中的容器就跟我们生活中的容器差不多,常常我们根据我们要装的东西来选择容器,在Java中我们也是根据我们需要存储的数据类型来选择容器,那么究竟容器有那些呢? 下面我来简单的画个图:首先谈Collection,它里面有很多抽象方法,可以看到,它是在最顶层的一个接口,它的所有子类都必须去实现它里面的方法,它里面的抽象方法有:接下来我们再看Set接口,Set接口有...
2019-04-27 20:45:59 659
原创 Java中的多态
多态的定义: 在程序执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。 这句话很抽象,我相信很多人看完第一遍之后完不懂什么意思,我当时也是一样,甚至都不想看它。那么我们用一个实际的例子,以及内存图来分析一下。 加入我们先定义一个基类(也可以说是父类)Animalpublic class Animal { private String n...
2019-04-17 20:52:23 126
原创 Iterator设计模式
在讲这个设计模式之前,我先讲一下一个容器如何具体去实现,我们都知道ArrayList数组可以往里面增加元素,那么既然是一个数组为何可以不用担心它溢出呢?因为在这个容器中,它可以自动扩容,那么具体去如何实现? 首先我们都知道,一个容器,必须有一个往里面添加元素的方法: public void add(Object o){ if(count == object.length...
2019-04-16 14:13:23 324
原创 Java实现循环队列和链式队列
队列的定义: 队列是一种只允许一端进行插入操作,在另一端进行删除操作的线性表。允许插入的一端称为称为队尾,删除的一段是队头。想象你去排队购买车票时,排着一个很长的队,排在最前面的人买完票走了,这个操作就称为出队操作,而在队列的后面又来一个人排在后面,这个操作就称为入队操作。 一个普通的队列:对于一个普通的队列来说,如果进行入队的话,仅在队列后面追加一个元素就可以...
2019-04-07 16:54:07 971
原创 Java语言实现链表
链表的定义: 我们都知道数组是用来存储某种数据类型的数据的,那么链表其实也是一样,用来存储某种数据类型的数据的,在Java中也可以是某个对象,链表这种数据结构,用起来他有自己的特点,我们都知道,数组在内存中是一块连续的存储空间,数组的长度也是固定的,那么在对数据进行操作的时候,比如我要在数组中间插入一个元素,那么在空间足够的情况下,后面的每一个元素都要向后移动,这样是不是很...
2019-04-06 21:14:05 698
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人