自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 Linux下一个tomcat部署两个不同端口的项目

1)server.xml已有第一个项目的配置信息,现在需要新增第二个项目的配置,在Server节点下,新增Service节点;cp-rwebapps/*webapps1/-------》复制webapps的全部内容到webapps1。mkdirwebapps1---》创建一个和webapps同目录的webapps1。cdconf---->然后进入到tomcat目录下的conf文件夹中。viserver.xml------>编辑这个文件。2)复制后,做如下端口等配置修改。...

2022-07-20 23:56:42 1742 1

原创 java实现手机扫码登录客户端

  在了解扫码登录之前我们先了解一下其他内容, 首先为了安全,手机端它是不会存储你的登录密码的。但是在日常使用过程中,我们应该会注意到,只有在你的应用下载下来后,第一次登录的时候,才需要进行一个账号密码的登录, 那之后呢 即使这个应用进程被杀掉,或者手机重启,都是不需要再次输入账号密码的,它可以自动登录。  其实这背后就是一套基于token的认证机制,我们来看一下这套机制是怎么运行的, 1、账号密码登录时,客户端会将设备信息一起传递给服务端2、如果账号密码校验通过,服务端会把账号与设备进行一个绑

2022-06-22 20:14:40 2083 1

原创 如何通过反射获取的类的方法并执行?invoke

1、什么时候使用代理对象?反射出来的对象的方法没有办法直接调用,只能通过代理去使用此时需要用代理对象 使用的是invoke()方法2通过反射机制调用方法执行静态方法我们看下图的代码在main方法中,我们获取到了两个静态方法然后我们去printTable中执行这两个方法看其中这行代码 double y= (Double) f.invoke(null,x) ,这就是静态方法的执行如果我们调用的是实例方法,也就是对象级别的方法,我们需要给这个null这里传入具体的对象的名称,但

2022-05-15 17:17:50 515

原创 sql中的substring_index

substring_index(str,delim,count) 返回字符substr在str中第n次出现位置之前的字符串;例子:str=www.wikibt.com substring_index(str,'.',1) 结果是:www substring_index(str,'.',2) 结果是:www.wikibt如果count是正数,那么就是从左往右数,第N个分隔符的左边的所有内容 如果count是负数,那么就是从右往左数,...

2022-05-14 15:20:30 1568

原创 sql中的IF语句和case when then else语句

IF语句下面是一个操作实例case when then elsecasewhen 条件1 then 返回值1when 条件2 then 返回值2end下面是一个操作实例

2022-05-14 15:18:51 778

原创 一些你可能不知道的sql查询语句的知识点

目录1、round函数2、什么时候用having 不用where3、where,group by,having,order by执行顺序和编写顺序1.group by和where2.group by和having3.group by和order by【二】使用having字句对分组后的结果进行筛选,语法和where差不多:having 条件表达式【三】当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序:4、unio...

2022-05-14 15:08:33 410

原创 缓存(Mybatis)

目录1、什么是缓存2、为什么使用缓存3、什么样的数据能使用缓存4、Mybatis缓存一级缓存和二级缓存1.一级缓存2、缓存失效的情况3.二级缓存1、什么是缓存存储在内存当中的数据 将用户常使用的数据存放在缓存(内存)当中,用户查询数据就不用从磁盘(关系型数据库文件)当中查询,从缓存当中查询,从而提高查询效率,解决了高并发系统的性能问题2、为什么使用缓存减少和数据库的交互次数,减少系统开销,提高系统效率3、什么样的数据能使用缓存经常查询并且不常

2022-05-13 22:52:43 570

原创 #{}和${}的区别

#{} 占位符${} 字符串拼接区别就是1、用${}向数据发送数据的时候就已经是一个拼接好的字符串用#{},向数据库发送数据的时候还没有拼接好,直到运行的时候占位符的位置被真正的值取代2、${}使用字符串拼接的方式拼接sql语句,如果数据是字符串类型或者是日期,需要我们手动加上引号 而#{} 会自动加上引号...

2022-05-13 22:27:58 54

原创 多线程执行需要的strat方法和run方法(重要)

目录CPU的执行多线程线程start()run方法CPU的执行讲线程之前我们需要了解一个信息就是线程的运行是通过CPU来执行的如下图打开任务管理器可以看到显示了CPU是几核的,有多少进程和线程单核CPU一个时刻只能做一件事四核CPU一个核一个时刻只能执行一个线程,所以CPU执行任务的时候是在快速切换任务,对应着分时操作系统一般来说的话 linux一个任务,也就是一个线程执行在20ms左右,Windows几毫秒到几十毫秒不确定多线程现在我们可以开始讲多.

2022-04-30 16:33:28 1220

原创 java重点之一------>反射(非常重要)

目录为什么学习反射反射的基本概念获取Class类实例化对象的方式1、Class.forName(“全类名”)2、类名.class3、对象.getClass()反射分析类的能力Field、 Method 和 Constructorjava.lang.reflect.Fieldjava.lang.reflec.Methodjava.lang.reflect.ConstructornewInstance //利用获取的构造器创建对象为什么学习反射开篇一.

2022-04-20 22:03:10 636

原创 八大算法之堆排序(非常重要)

在学习堆排序之前,我们需要了解一下下完全二叉树一、完全二叉树完全二叉树是一种特殊的二叉树。从上到下,从左到右,每一层的节点都是满的,最下边一层所有的节点都是连续集中在最左边二、堆堆排序分为两种,分别是大顶堆和小顶堆。大顶堆:在完全二叉树的基础上,每个结点的值都大于或等于其左右孩子结点的值小顶堆:在完全二叉树的基础上,每个结点的值都小于或等于其左右孩子结点的值堆排序需要知道的一个非常重要的点 就是父子结点的关系基本思想1):将带排序的序列构造成一个大顶堆,根据大顶.

2022-04-19 12:00:00 115

原创 八大算法之基数/桶排序(非常重要)

基本思想基数排序是桶排序的扩展,他的基本思想是:将整数按位切割成不同的数字,然后按每个位数分别比较。具体做法是:将所有待比较数值统一为同样的位数长度,数位较短的数前边补零。然后,从最低位开始,依次进行一次排序,这样从最低位排序一直到最高位排序完成后,就变成一个有序数列。图解动态图代码首先我们先一轮一轮的看怎么操作第一轮:第二轮:第三轮总代码:public class TongSort1 { public static void..

2022-04-19 10:00:00 84

原创 八大排序之归并排序(非常重要)

目录基本思想图解流程分析分:合并:代码基本思想归并排序就是递归得将原始数组递归对半分隔,直到不能再分(只剩下一个元素)后,开始从最小的数组向上归并排序。将一个数组拆分为两个,从中间点拆开,通过递归操作来实现一层一层拆分。 从左右数组中选择小的元素放入到临时空间,并移动下标到下一位置。 重复步骤2直到某一下标达到尾部。 将另一序列剩下的所有元素依次放入临时空间。 将临时空间的数据依次放入原数据数组。图解动态图流程分析分:分解的时候我..

2022-04-18 23:28:54 132

原创 八大排序之希尔排序(非常重要)

希尔排序介绍希尔排序也是一种插入排序。它是简单插入排序进过改进之后的一个更高效的版本,也成为了缩小增量排序希尔排序的基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量主键递减,每组包含的关键词也来越多,当增量减至1时,整个文件恰被分成一组,算法终止。代码实现package QCBYSuanF;import java.util.Arrays;//运用到了插入排序public class ShellSort { publi..

2022-04-18 23:09:58 127

原创 八大排序之插入排序(非常重要)

基本原理它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。实现的过程中我们认为数组第一个数已经排好顺序 后面待排序的数插入到前面已经排到的数组中然后就有两个数排好序了,我们再把第三个数插入到前面两个已经排好序的数组中,这样就有三个数排好序了,然后接下来的数依次这样操作图解代码实现import java.util.Arrays;.

2022-04-15 10:00:00 234

原创 八大排序之选择排序(非常重要)

基本操作:第一次从arr[0到]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]到arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i-1]交换,…, 第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。import java.util.Arra

2022-04-14 20:00:00 218

原创 八大排序之冒泡排序(非常重要)

冒泡排序的基本原理对存放原始数组的数据,按照从前往后的方向进行多次扫描,每次扫描都称为一趟。当发现相邻两个数据的大小次序不符合时,即将这两个数据进行互换,如果从小大小排序,这时较小的数据就会逐个往前移动,好像气泡网上漂浮一样。冒泡排序的特点:升序排序当中每一轮比较会把最大的数沉到最底(这里以从小到大为例),所有相互比较的次数每一轮会比前一轮少一次。代码import java.util.Arrays;//冒泡public class Test01 { public stat

2022-04-14 15:04:50 246

原创 八大排序之快速排序(非常重要)

目录快速排序(将整个递归分为两步,第一步是基本算法,第二步是递归)基本思想算法描述图解代码快速排序(将整个递归分为两步,第一步是基本算法,第二步是递归)基本思想快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。算法描述快速排序使用分治法来把一个串(名单)分为两个子串(子列表)具体算法描述如下:会把数组当中的一个数当成基准数. 一般会把数组中.

2022-04-13 23:36:12 93

原创 浅谈对jar包的理解

要知道jar包首先要知道什么是socketsocket把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。任何通信的底层都涉及到socketjar包:java本身不自带上传下载功能 因为java本身可以依靠socket实现封装任何功能,用socket传送数据,第三方开发人员觉得麻烦于是写了jar包 ,所以jar包底层就是基于socket实现的那为什么java可以上传下载文件呢?文件的本质是编码,换成变量的话是基

2022-04-04 11:05:45 633

原创 为什么程序能在操作系统上安装?

为什么程序能在操作系统上安装?开发工具和操作系统有约定开发工具把方法打包成.exe文件 .exe实际是一个压缩包.exe中的文件包含(主方法路径 程序图标以及程序图标所在路径 可识别编码,可识别文件扩展名 )和 程序代码程序代码会被操作系统翻译成操作系统能识别的汇编语言和C语言所以安装的时候 因为有约定 操作系统读取.exe中的文件 找到主方法一点击桌面上的图标 操作系统会找到.exe文件的主方法 然后执行程序代码...

2022-04-04 10:59:24 3642

原创 大白话讲解操作系统内核和操作系统

首先了解一下驱动是什么?一个硬件对应一个程序 (驱动)驱动:驱动某个硬件执行操作系统内核的产生:封装了一系列方法 写了如何组合工作驱动 内核控制最基本的功能操作系统的内核就是操作驱动 ,驱动又和硬件相连操作系统是由操作系统内核衍生出的 内核功能的扩展 形成一个完整的操作系统所以如果程序是基于内核研发的 就可以在window任何一个版本上使用 如果基于操作系统开发的 如果换了版本就不能使用了无论哪种语言最后都转化成汇编语言或者C语言 然后操作驱动 推动硬件执行

2022-04-04 10:57:57 1628

原创 操作系统之磁盘和内存原理(非常重要)

1、数据在计算机中以01010101比特的形式在计算机内存储计算机的主要的存储主要分成三部分:CPU 内存 磁盘1、CPU:存储的量极少 大概只有几兆2、磁盘:也叫硬盘 分为机械盘和固态盘 固态盘要比机械盘快很多很多,也比较贵 不过主流企业里还是以机械盘为主为什么不用固态盘呢?因为固态盘有固定的读写次数,一般超过30W就报废了。但是机械盘理论来说读写次数是无限的磁盘是如何以0101的比特流形式存储的呢?磁盘依赖磁介质,磁介质可以想象成很小的磁铁,有N极和S极,N极是1,S极是0磁

2022-04-03 23:57:09 831

原创 HTTP协议

1.认识urlurl被称为统一资源定位符,用来表示从互联网上得到的资源位置和访问这些资源的方法。他的表示方法一般为:<协议>://<主机>:<端口>/<路径>如下我们启动一个servlet程序,来看一下我们的url表示http://localhost:8080/BuyechengServlet/login.html大家可以看到我们采用的是我们这里采用的是 http协议localhost:代表的是我们本机的IP地址8080:代表我们的端口号BuyechengServlet/l

2022-03-26 18:44:34 83

原创 大白话浅谈HTTP协议的解析

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。首先要知道http数据在应用层因为下一层协议都是在上一层协议的数据里面定义的,所以http协议也是基于TCP(上一层协议)协议写的而协议是放在传输的数据里面的 下面的图简略的能看出每种颜色表示不同层的协议(物理层 ,数据链路层,网络层,传输层,应用层)那么http怎么解析的协议?? 通过下图随机写的红色的图可以看出 http协议通过换行符分成一份份的 通过换行符区分不同的数据 ..

2022-03-26 16:19:09 586

原创 Socket的解析机制

Socket是什么呢?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。socket解析机制 (java原生工具类)把要发的数据和ip, 端口交给SOCKETSOCKET将下面的东西打包 然后传输然后另一端接收后再解析SOCKET的内容下面是socket解析IP(只需要IP地址

2022-03-26 16:05:42 847

原创 基数排序/桶排序完整代码

桶排序 首先要知道的是一个二维数组​1、按照对每个数求余数得到的个位的顺序依次往桶里装数据 然后再倒出来2、按照对每个数求余数得到的十位的顺序依次往桶里装数据 然后再倒出来3、按照对每个数求余数得到的百位的顺序依次往桶里装数据 然后再倒出来.....import java.util.Arrays;public class TongSort1 { public static void main(String[] args) { int[] arr = new int[]...

2022-03-20 23:09:53 206

原创 什么是Servlet 创建第一个Servelt项目(零基础也能看懂)

Servlet:当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应客户端发送请求至服务器 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器 服务器将响应返回客户端Servlet通过tomcat服务器运行所以首先要先下载tomcat服务器 并且配置环境变量这里可以借鉴一下这位大佬的教程 里面的各种问题都有被解决Tomcat服务器下载、安装、配置环境变量教程(超详..

2022-03-20 22:57:28 415

原创 TCP协议

协议的作用:1、约定通信2、保障稳定的通信传输 应对突发情况首先要知道 传输数据是通过端口号识别不同的程序 所以每一个程序都有自己的端口号假设设备A发送“你好”给设备D需要自己的ip地址和端口号 (好让D识别)和D的ip地址和端口号(发送给D)和响应时间 (A发送给D 到 D回复到A 总共需要的时间 )A响应时间内没有收到消息后 会超时重发(意味着在网卡里面有备份 只有收到响应后才会删除备份)发送的数据有过期时间假如A发送给D的数据过于大 此时需要分包发送 .

2022-03-14 23:04:29 3481

空空如也

空空如也

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

TA关注的人

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