自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap 与HashTable

HashMap 与HashTableHashMapHashTable两者的区别HashMapHashMap是线程不安全的,可以存储null键和null值。在JDK1.7是由数组+链表实现的,到JDK1.8引入了红黑树(当链表长度超过8时,将链表结构转换成红黑树结构,利用红黑树的快速增删改查提高性能)。HashMap的数组初始默认长度(tablelength)为16,加载因子(loadfactor)为0.75。当Map中的元素数量超过当前tablelength*loadfactor时,HashMap的

2020-09-10 20:25:35 128

原创 SpringFramework——DI

SpringFramework——DI依赖注入的数据依赖注入的方法DI就是依赖注入,它在以下两种情况下发生:用户第一次调用getBean()方法时,ioc容器出发依赖注入。当用户在配置文件中将 bean 元素配置了 lazy-init=false 属性时,即让容器在解析注册Bean定义时进行预实例化,触发依赖注入。依赖注入的数据依赖注入的有三类数据类型:基本数据类型和stringbean类型(由配置文件或者注解配置的)复杂类型/集合类型依赖注入的方法1.使用构造函数注入类中含

2020-07-13 20:22:57 137

原创 SpringFramework——IOC

SpringFramework——IOCApplicationContextspring对bean的管理细节创建bean的三种方式bean的作用范围IOC就是控制反转,是SpringFramework框架中的一个重要内容。其一个重要的作用就是降低依赖。ApplicationContextApplicationContext是spring 核心容器的一个接口。ApplicationContext的三个常用实现类:ClassPathXmlApplicationContext:它可以加载类路径下的配置

2020-07-13 16:57:45 102

原创 JavaWeb——JSON

JSONJSON 在 JavaScript 中的使用json 的定义json 的访问json 的两个常用方法JSON 在 java 中的使用javaBean 和 json 的互转List 和 json 的互转map 和 json 的互转JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON 采用完全独立于语言的文本格式,而且很多语言都提供了对 json 的支持(包括 C, C++, C#, Java, JavaS

2020-06-18 19:33:28 139

原创 JavaWeb——Filter过滤器

Filter过滤器Filter的使用Filter的生命周期FilterConfig类FilterChain 过滤器链Filter的拦截路径Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器 。Filter 过滤器它是 JavaEE 的规范,也就是接口。Filter 过滤器它的作用是:拦截请求,过滤响应。拦截请求常见的应用场景有:权限检查 、日记操作 、事务管理Filter的使用Filter 过滤器的使用

2020-06-18 16:52:29 118

原创 Maven的介绍以及安装

Mavenmaven的功能maven的安装maven的功能依赖管理:maven开发的crm项目,jar包不在项目中,而是有个jar包的仓库,项目中只有jar包的坐标。项目的一键构建:指的是项目从编译、测试、运行、打包、安装、部署整个过程都交给maven进行管理。maven的安装去官网下载maven的压缩包maven下载将压缩包解压缩到一个全英文的路径下。如:D:\Java\maven3.6.3\apache-maven-3.6.3,解压后的文件内容如下。配置环境变量,与Java配置环境

2020-06-17 16:19:38 90

原创 DButils实现CRUD操作

DButils增删改操作查询操作查询表中一条或多条记录commons-dbutils是Apache组织提供的一个开源JDBC工具类库,封装了针对于数据库的增删改查操作。增删改操作使用dbutils里的QueryRunner类就可以实现各种增删改操作,具体的代码如下;import com.bsx.utils.JdbcUtils;import org.apache.commons.dbutils.QueryRunner;import org.junit.Test;import java.sql.

2020-06-14 15:09:31 206

原创 数据库连接池

数据库连接池数据库连接池技术传统的数据库连接方式会占用很多的系统资源,严重的情况下会造成服务器的崩溃。对于每一次数据库连接,使用完都得断开,否则如果程序出现异常未能关闭,将会导致数据库系统中的内存泄漏。这种传统的开发方式不能控制被创建的连接对象数,系统资源会毫无顾忌的被分配出去,如果连接过多,也可能导致内存泄漏,服务器崩溃。数据库连接池技术数据库连接池的基本思想:就是为数据库建立一个缓冲池,预先在缓冲池中放入一定量的连接,当需要建立数据库连接时,只需要从缓存池中取出一个,使用完毕后再放回去。数

2020-06-13 16:46:28 110

原创 数据库事务

数据库事务数据库事务事务的ACID属性数据库的并发问题四种隔离级别数据库事务数据库事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。一组逻辑操作单元:一个或多个DML操作。事务处理的原则:保证所有的事务作为一个工作单元来执行,即使出现故障也不能改变执行的方式。当在一个事务中执行多个操作时,要么所有事务都被提交(commit),那么这些修改就永久的保存下来;要么数据库管理系统放弃所有修改,整个事务回滚到最初状态。数据一旦提交就不可以回滚。DDL操作一旦执行,就会自动提交。DML默认执行,

2020-06-12 21:44:24 126

原创 数据库JDBC

JDBC获取数据库连接使用PreparedStatement 接口实现CRUD操作Blob类型数据JDBC程序编写步骤 :注册驱动:告知JVM使用哪种数据库的驱动获得连接:使用JDBC中的类,完成MySQL数据库连接获得语句执行平台:面对连接对象获取对SQL语句的执行结果执行SQL语句处理结果释放资源获取数据库连接使用properties 配置文件方式获得数据库连接方式。在配置文件里写下四个基本信息。然后通过系统类加载器获得配置文件properties的输入流。通过propert

2020-06-12 18:06:17 101

原创 JavaWeb——(Servlet二)

ServletHttpServletRequest类HttpServletRequest类的作用HttpServletRequest类的常用方法请求转发HttpServletRequest类HttpServletRequest类的作用每次只要由请求进入Tomcat服务器,Tomcat服务器就会把请求过来的Http协议信息解析好封装到Request对象中。然后传递到service方法(doGet和doPost)中给我们使用。我们可以通过HttpServletRequest对象,获得所有请求的信息。Ht

2020-06-11 19:48:01 88

原创 Java——Web(Servlet一)

Servlet手动实现servlet程序Servlet的生命周期继承HttpServlet实现Servlet程序使用idea自动创建servlet程序ServletConfig类ServletConfig类的三个作用ServletContext类ServletContext类的四个作用Servlet 是javaEE规范之一,规范就是接口。Servlet是JavaWeb的三大组件之一,除此之外,还有Filter过滤器,Listener监听器。Servlet是运行在服务器上的一个小程序,它用来接收客户端发

2020-06-11 16:54:01 125

原创 JavaWeb——Tomcat

TomcatWeb资源分类常用的Web服务器Tomcat介绍启动Tomcat关闭Tomcat修改Tomcat的端口号部署web工程到TomcatJavaWeb是指所有通过java编写可以使用浏览器访问的程序总称。javaWeb是基于请求和响应来开发的。请求:是指客户端向服务器发送数据。响应:响应是指服务器向客户端回传数据。请求与响应成对出现。Web资源分类Web资源按实现的技术和呈现效果的不同可以分为静态资源和动态资源。静态资源:html,css,js,视频,图片等。动态资源:jsp页面,s

2020-06-10 15:45:01 155

原创 JavaWeb——jquery(二)

jqueryjquery元素筛选jQuery属性jquery文档处理jquery元素筛选jquery筛选的方法和上篇文章中接晒的过滤器的功能类似,具体的使用不做过多说明,可以查看API文档。jQuery属性html([val|fn]) :在一个 HTML 文档中, 我们可以使用 .html() 方法来获取任意一个元素的内容。 如果选择器匹配多于一个的元素,那么只有第一个匹配元素的 HTML 内容会被获取。 不传参数是获取,传参是设置。text([val|fn]):取得所有匹配元素的内容。结果是

2020-06-08 22:32:01 87

原创 JavaWeb——JQuery(一)

JQueryJquery对象Jquery就是javascript和查询,他是一个辅助javascript开发的js类库。Jquery对象通过Jquery提供的API创建的对象通过Jquery包装的DOM对象,通过Jquery提供的API包装的对象 都是Jquery对象。Jquery对象的本质是 dom对象的数组 + jquery提供的一系列功能函数。jQuery对象和dom对象的属性和方法不能混用。jquery对象与dom对象互相转化 :dom转化成jquery:先得到dom对象

2020-06-07 18:45:21 150

原创 JavaWeb——JavaScript(二)

JavaScriptJS的事件JS的事件事件是电脑输入设备与页面进行交互的响应,我们称之为事件。常用的事件:onload : 加载完成事件 。页面加载完毕后,常用做js代码初始化操作。onclick:单击事件 。 常用于按钮的点击响应操作。onblur:失去焦点事件。常用于输入框失去焦点后验证其输入是否合法。onchange :内容发生改变事件。 常用于下拉列表和输入框内容发生改变后操作。onsubmit:表单提交事件。常用于表单提交前,验证所有表单项是否合法。事件的注册就是当事

2020-06-05 16:47:37 113

原创 JavaWeb——JavaScript(一)

JavaScript基础JavaScript介绍JavaScript 与HTML结合使用JS的变量JavaScript介绍JavaScript运行在客户端,需要运行浏览器来解析执行JavaScript代码。JS是弱类型,Java是强类型。弱类型即类型可以改变,强类型即定义变量的时候类型已经确定下来不能改变。特点:交互性(它可以做信息的动态交互)安全性(不允许直接访问本地硬盘)跨平台性(只要可以接释JS的浏览器都可以执行,与平台无关)JavaScript 与HTML结合使用方法1:

2020-06-04 15:36:20 241

原创 JavaWeb——CSS技术

CSScss语法规则css与HTML结合使用css 是层叠样式表单,是用于增强控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。css语法规则css的语法规则是:选择器{属性:值;属性:值}选择器 :浏览器根据选择器决定受css样式影响的HTML元素。属性:是要改变的样式名,并且每个属性都有一个值。css的注释和java里的多行注释一样css与HTML结合使用方法1:在head标签里加入style标签但是这种方式只能在同一个页面内复用,不能在多个页面复用css代码。维护起来

2020-06-03 17:28:43 170

原创 JavaWeb——HTML

JavaWeb——HTML网页的组成部分HTML(超文本标记语言)创建HTML文件HTML书写格式标签标签的语法常用标签网页的组成部分网页有三个组成部分:内容,表现和行为。内容:即网页上显示的文字等;表现:网页的内容相同,表现不同,网页呈现出来也不相同。HTML(超文本标记语言)HTML通过标签来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容。创建HTML文件在IDEA中创建一个新的项目,选择Static Web,填写

2020-06-03 16:09:10 235

原创 字符串匹配问题——KMP算法实现

字符串匹配问题KMP算法实现字符串匹配字符串匹配问题,就是给定一个字符串str1,要找到str2中第一个与str1匹配的索引位置。这种问题使用暴力求解很容易实现,但是每次遇到不匹配的值时,只后移1个位置进行下次匹配,这样就会造成许多重复的操作。使用KMP算法可以求出每次遇到不匹配值时,后移的位数,这样就可以加快匹配的速度。KMP算法实现字符串匹配KMP算法的核心就是 部分匹配表:假设字符串str1为:“ABCDABC”其部分匹配表就是str1子串的前缀和后缀的最长公共元素的长度,字符串“hell

2020-05-26 13:13:55 365

原创 动态规划——背包问题

动态规划——背包问题0-1背包问题完全背包问题0-1背包问题0-1背包问题就是给定一个背包的容量N,物品1,2…X:每个物品都有对应的import java.util.Arrays;public class Knapsack { public static void main(String[] args) { int[] val={1500,3000,2000}; // 物品价值 int[] w = {1,4,3}; //物品重量 int n

2020-05-25 19:02:34 170

原创

图图的表示方式邻接矩阵(二维矩阵)邻接表图的创建图的深度优先遍历(DFS)图的广度优先遍历(BFS)图是一种数据结构,其节点可以有零个或多个相邻的元素,两个节点相连称为边。顶点(也就是节点)vertex边edge路径无向图:顶点之间的连接没有方向有向图:顶点之间的连接有方向带权图:边上带有权值,也叫网。图的表示方式邻接矩阵(二维矩阵)邻接矩阵为邻接表邻接表只关心存在的边,相较于邻接矩阵而言不关心不存在的边,因此没有空间的浪费,邻接表由数组和链表组成。邻接表为标号为0的节点

2020-05-24 18:09:13 2688 1

原创 堆排序

堆排序堆排序介绍堆排序思路堆排序介绍堆排序是利用堆这种数据结构设计的一种排序算法。堆是一种完全二叉树:大顶堆:每一个节点的值都大于或等于它的左右孩子节点的值;父节点=arr[i],左孩子节点=arr[2i+1],右孩子节点=arr[2i+2];小顶堆:每一个节点的值都小于或等于它的左右孩子节点的值。堆排序思路将无序序列构成一个堆,根据升序或降序选择大顶堆或者小顶堆。将堆顶元素与末尾元素交换,将最大或者最小元素沉到数组末端;重新调整除末尾的剩余元素,使其满足堆的结构再进行交换,循环,直

2020-05-23 22:52:59 90

原创 计算机网络——传输层

传输层传输层协议TCP协议TCP连接TCP的连接释放TCP首部TCP流量控制UDP协议端口传输层协议传输层有两个协议,TCP(传输控制协议)和UDP(用户数据报协议)。为应用进程提供了逻辑通信。TCP协议需要将传输的文件分段,需要服务器和客户端建立会话(面向连接),实现可靠传输,有流量控制功能,全双工通信。每一条TCP连接只能是点对点的。例如QQ传文件,发送邮件用的就是TCP协议。传输层与应用层协议之间的关系:http = TCP + 80端口https = TCP+ 443端口RDP

2020-05-22 22:25:14 197

原创 计算机网络——网络层

网络层网络层提供的服务网络层协议ARP协议ICMP协议IGMP协议IP协议网络层提供的服务负责在网络间选择路径转发数据包,基于数据包的IP地址转发,如果丢包不负责重发。数据包的顺序,可可靠传输由传输层提供。路由器工作在网络层,屏蔽了物理层和数据链路层的复杂性,数据包就在网络层间传输,变得简单。网络层地址决定了文件传输的起点和终点,而物理MAC地址只是决定数据的下一跳即下一个设备到哪里。网络层协议ARP协议ARP将IP地址通过广播 ,目标地址是FF-FF-FF-FF-FF-FF,解析目标IP地址

2020-05-21 21:35:11 247

原创 数据链路层

数据链路层信道类型数据链路层解决的三个问题ppp协议标题信道类型点对点信道:一对一的通信广播信道:一对多,例如交换机连接多台计算机。数据链路层解决的三个问题1.封装成帧在一段数据的前后分别添加首部和尾部,就封装成了一个帧。用来确定帧的界限。2.透明传输如果要传送的数据中包含帧的开始字符或者结束字符时,要在前面插入转义字符“ESC”。接受端数据链路层在将数据传入网络层之前要删除转义字符。3.差错控制使用循环冗余检验CRC算法计算出帧检验序列FCS。计算FCS的方法不唯一,FCS要加在数

2020-05-21 14:41:22 135 1

原创 二叉树的实现

树结构二叉树二叉树遍历前序遍历二叉树中序遍历二叉树后序遍历二叉树二叉树每个节点最多只能有两个子节点的一种树的形式,其子节点分为左节点和右节点。满二叉树:所有的叶子节点都在树的最后一层,节点数= 2n−12^n-12n−1,n为树的层。完全二叉树:所有的叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点左连续,倒数第二层的叶子节点右连续。二叉树遍历前序遍历二叉树步骤:创建一棵二叉树前序遍历先输出当前节点如果左子节点不为空,则继续递归前序遍历;如果右子节点不为空,则继续中

2020-05-20 19:12:17 188

原创 OSI参考模型

OSI参考模型OSI7层结构OSI参考模型通信过程OSI7层结构下层为上层提供服务,上层使用下层的服务。接口是服务的入口。水平方向同层的是协议。OSI参考模型通信过程上面4层端到端,下面3层点到点。应用层:所有能和用户交互并产生网络流量的程序。文件传输(FTP),电子邮件(SMTP),万维网(HTTP)。表示层:用于处理两个通信系统中交换信息的表示方法。1,数据格式变换。2,数据加密解密。3,数据压缩和回复。会话层:向表示层实体/用户进程,提供建立连接,并在连接上有序的传输数据。会话也是

2020-05-19 16:14:01 939

原创 计算机网络的组成

计算机网络计算机网络组成组成部分工作方式功能组成计算机网络分类按分布范围分按使用者分按拓扑结构计算机网络组成计算机网络是互连的,自治的计算机集合。自治:无主从关系。组成部分硬件、软件、协议工作方式边缘部分:用户直接使用,C/S,P2P方式。核心部分:为边缘部分服务。功能组成通信子网:实现数据通信(各种传输介质、通信设备、相应的网络协议组成)资源子网:实现资源共享/数据处理(实现资源共享功能的设备和软件的集合)OSI模型中的上三层(应用层、表示层、会话层)属于资源子网;下三层(物理

2020-05-18 20:02:09 878

原创 四种常见查找算法

查找算法常用查找算法线性查找二分查找插值查找斐波那契查找常用查找算法Java中常用的查找算法有四种:线性查找二分查找插值查找斐波那契(黄金分割)查找线性查找线性查找也就是顺序查找,它的思路很简单:将要查找的元素与数组中的元素依次比较,找到相同的就返回该索引。二分查找二分查找需要待查找的数组是有序的才可以使用该算法。其思路就是从待查找数组的中间位置取值与查找的数做比较,由于待查找数组有序,所以查找的数只有三种可能,查找的数等于数组中间位置的数;查找的数在数组左侧到中间位置的区间;

2020-05-12 14:57:27 1248

原创 排序算法(三)归并、基数排序

排序算法归并排序基数排序归并排序归并排序是一种利用分治递归思想排序的算法。这个算法的基本操作就是将两个有序表合并。因此在设计算法时要先将原数组划分到每组只有一个元素,这时就可以将每组都看成有序表,再将其依次合并,这里使用递归方法就能巧妙的解决。在做合并操作的时候需要三个指针 leftPos,rightPos,和tempIndex分别指向左有序表首位置,右有序表首位置,和零时数组首位置。import java.util.Arrays;public class MergeSort { pub

2020-05-11 17:49:59 220

原创 排序算法(二)插入、希尔、快速排序

排序算法插入排序希尔排序快速排序插入排序**思路:**插入排序由N-1趟排序组成,N是数组长度,将希尔排序快速排序

2020-05-10 19:10:29 221

原创 排序算法,冒泡、直接选择排序

排序算法分类排序内部排序外部排序插入排序直接插入排序希尔排序选择排序直接选择排序堆排序交换排序冒泡排序快速排序归并排序桶排序常用的排序算法都是内部排序,是指将数据加载到内部存储器中进行排序。外部排序是由于数据量过大,需要借助外部存储器进行排序。...

2020-05-09 18:36:36 180

原创 递归方法

递归方法在执行一个递归方法时就创建一个新的受保护的独立空间(栈空间)。递归必须向退出递归的条件逼近,否则就会无限递归(StackOverflowError),形成死递归。谁调用方法,结果返回给谁。递归可以解决的问题数学问题:8皇后问题,汉诺塔问题,阶乘,迷宫等。各种算法中,如快速排序,归并排序,二分查找,分治算法等迷宫问题使用递归回溯方法,在一个迷宫中找出通路。路径会根据寻找路径...

2020-05-08 17:44:02 180

原创 前中后缀表达式

前缀、中缀、后缀表达式前缀表达式前缀表达式的运算符位于操作数之前前缀表达式的计算方法:将前缀表达式按从右往左的顺序将数字压住栈中如遇到计算符,将栈顶两个数弹出进行相应的操作,得到的数压入栈中。(计算减法时用先弹出的数减去后弹出的数)最后得到的数就是表达式的计算值。中缀表达式中缀表达式就是平常手工计算时使用的表达式。中缀表达式的求值过程可以参考上一篇博客https://blog...

2020-05-06 21:40:53 153

原创 栈结构

栈结构(stack)栈的特性栈是先入后出的数据结构,栈顶(top)是最后插入的数据和最先删除数据(变化端),出栈(pop),入栈(push)栈的应用场景1.计算表达式的值或者中缀表达式与后缀表达式的转换2.二叉树的遍历3.图的深度优先搜索。...

2020-04-26 02:33:39 552

原创 约瑟夫环问题

约瑟夫环问题问题描述设编号为1,2…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的人出列,依次类推直到所有人出列为止,由此产生一个出队编号序列。问题分析a.创建一个单向的环形链表,按编号插入节点,显示节点class Boy{ private int no; private Boy ...

2020-04-25 00:46:31 250 1

空空如也

空空如也

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

TA关注的人

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