- 博客(51)
- 收藏
- 关注
原创 Java锁机制
1 乐观锁与悲观锁乐观锁和悲观锁是一种广义的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念的实际应用。对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候,一定有其他线程会修改数据,因此在获取数据的时候,会先加锁,确保数据不会被其他线程修改,在Java中synchronized关键字和Lock的实现类都是悲观锁。而乐观锁认为自己在使用数据的时候,不会有其...
2021-07-29 09:50:23 354
原创 Git常用命令
1.本地分支关联远程分支 git branch --set-upstream-to=origin/master master2.切换检出分支git checkout xxxbranch3.从远程获取最新代码到本地git fetch
2020-02-14 23:03:32 247
原创 Git常见报错解决方法
报错1: 账号被锁定GitLab: Your account has been blocked.fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.解决方法:git remote s...
2020-02-14 22:47:55 782
原创 MySQL之Sql语句总结
一、基本查询Test1找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date...
2019-09-16 17:56:28 332
原创 基于IDEA搭建SpringMVC项目详细过程(三)
前面,我们在IDEA上把SpringMVC框架基本搭建完成,接下来,就要实现核心业务逻辑我们的业务需求是从MySQL数据库中取出数据,然后在jsp 页面上把数据显示出来在实现具体的业务逻辑时,把业务逻辑分为DAO层、Service层、Controller层、View层 Controller层-->Service层-->DAO层Controller层...
2019-08-07 15:00:48 792
原创 基于IDEA搭建SpringMVC项目详细过程(二)
首先,我们来看一下SpringMVC的核心工作流程 根据SpringMVC框架的工作流程,我们需要依次来配置以下几个核心组件1)在web.xml中配置前端控制器DispatcherServlet<web-app> <servlet> <servlet-name>s...
2019-08-07 12:05:46 323
原创 基于IDEA搭建SpringMVC项目详细过程(一)
最近在学习SpringMVC框架,在这里记录一下使用IDEA搭建一个SpringMVC项目的详细过程,加深自己对SpringMVC框架实现过程的理解~~~1)首先,创建一个Maven项目,记得点击右下角弹出的自动导入[Enable Auto-Import]2)在pom.xml文件中添加SpringMVC依赖1.添加spring 所有jar包spring-core spr...
2019-08-07 10:43:54 1280
原创 Java数据结构——二叉树的遍历
首先,什么是二叉树的遍历呢?二叉树的遍历是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。为什么要遍历二叉树呢?因为计算机只会处理线性序列,而我们研究遍历,就是把树中的结点变成某种意义的线性序列,这给程序的实现带来了好处。在遍历二叉树之前,我们首先要创建一个二叉树,想要创建如下图的二叉树,就要先进行二叉树的扩展,也就是将二叉树...
2019-07-23 18:44:33 349
原创 快速排序的实现和优化
快速排序的三种实现快速排序是对冒泡排序的一种改进,使用了分治的思想。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法描述:从数列中挑出一个元素,称为"基准"(pivot)。 重新排序数列,所有比基准...
2019-07-13 21:44:56 289
原创 为什么推荐使用PreparedStatement而不是Statement?
在JDBC应用中,有经验的开发者,大多都使用PreparedStatement代替Statement那么,这是为什么呢?原因基于以下几点:1.代码的可读性和可维护性首先,让我们来看看使用Statement的查询SQL语句,只能采用拼接的方法传入参数int id = 1;String name = "rachel";String sql = "select * ...
2019-07-10 16:05:28 1423
原创 模板设计模式——实现JDBC开发
一、什么是模板设计模式?在面向对象编程过程中,程序猿们经常会遇到这样的问题:设计一个系统时,知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未确定,或者说某些步骤的实现与具体环境有关,这些未确定的步骤需要延迟到子类实现。例如:去银行办理业务一般需经过以下4个步骤:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人...
2019-07-09 18:10:50 334
原创 基于Selenium自动化测试框架的设计与实现
测试项目:基于MongoDB的文件服务器功能介绍:基于MongoDB的文件服务器支技所有文件的上传、下载、查看、删除。 项目技术:Servlet Freemarker模板引擎 Mongodb数据库项目界面:Selenium框架自动化脚本# -*- coding: utf-8 -*-from selenium import webdriver...
2019-07-08 21:34:37 780
原创 动态规划:数字和为sum的方法数
题目描述:给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。输入描述:输入为两行: 第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000) 第二行为n个正整数A[i](32位整数),以空格隔开。输出描述:输...
2019-07-07 17:13:54 611
原创 Java数据结构——八大基本排序算法总结
一、排序算法基本概念排序算法分为内部排序和外部排序,内部排序把数据记录放在内存中进行排序,而外部排序因排序的数据量大,内存不能一次容纳全部的排序记录,所以在排序过程中需要访问外存。八大基本排序算法都是内部排序。 稳定性:如果一个排序算法经过排序后相同元素(不同元素排序后位置会发生改变)的相对位置不改变则可以被称为是稳定的。反之...
2019-06-04 11:28:45 1523 2
原创 Java网络编程
Java的网络编程主要涉及的内容是Socket编程,那么什么是Socket编程呢?Socket,套接字,就是连接两台主机间双向通信的端点。一个Socket由一个IP地址和一个端口号唯一确定TCP/IP协议是传输层协议,主要解决数据如何在网络中传输;在Java环境中,Socket编程主要是基于TCP/IP协议的网络编程使用Socket进行网络通信的过程服务端:服务器程序将一个套接...
2019-05-20 18:15:50 314
原创 返回链表开始入环的第一个节点
题目:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null分析过程: 设置一个slow指针和一个fast指针,开始时,slow和fast指向链表的头,然后slow每次跳一步,fast每次跳两步。 如果链表无环,那么fast一定先到终点,直接返回null。 如果有环,那么fast和slo...
2019-05-18 21:32:50 1406
原创 判断链表是否有环
题目:给定一个链表,判断链表中是否有环分析过程:1)定义两个变量fast、slow都指向第一个节点2) fast每次走两步,slow每次走一步3)如果fast和slow相遇,说明有环,否则说明无环注:1)当fast为null 时,该链表一定无环2)fast=fast.next.next 此处要判断fast.next!=null,否则会出现空指针异常publ...
2019-05-18 21:18:17 223
原创 输入一个链表,输出该链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第k个结点关于这道题目,我首先想到的解决方法就是先求出链表的长度,然后返回第length-k个节点但是,这么做会遍历两次链表,求链表的长度会遍历依次链表,返回第k个节点又会遍历一次链表为了遍历一次链表,就返回倒数第k个节点,我们采用类似于 "尺子" 的方法定义两个节点,让其中一个节点先走k-1步,然后两个节点一起走,直到第一个节点走到尾节点,第二...
2019-05-18 19:06:09 304
原创 返回链表的中间节点
给定一个带有头结点head的非空单链表,返回链表的中间结点如果有两个中间结点,则返回第二个中间结点示例 1:输入:[1,2,3,4,5]输出:[3,4,5] 返回的是中间节点,输出该节点之后的所有节点示例2:输入:[1,2,3,4,5,6]输出:[4,5,6] 返回的是中间节点,输出该节点之后的所有节点分析过程:1)求得链表的长度2) 从...
2019-05-18 18:44:59 656
原创 反转一个单链表
反转一个单链表示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL分析过程:1) 定义curNext变量,找到反转后链表的头节点reverseHead此处不能通过cur节点,因为倒数第二个节点反转后cur.next不是最后一个节点curNext变量从始至...
2019-05-18 18:25:02 186
原创 删除链表中等于给定值 val 的所有节点
删除链表中等于给定值val的所有节点示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5分析过程:1)要想删除所有给定值为val的节点,必须要遍历一次链表2)从第二个节点开始遍历(如果从第一个节点开始遍历,第一个节点的prev会出现空指针异常)3.1)...
2019-05-18 16:59:02 1126
原创 Java数据结构——带头单向循环链表
1. 结构图 2.节点类组成class Node { //内部节点类 private int data; //节点数据 private Node next; //下一个节点引用 }3.常用链表操作1)遍历链表2)头插法3) 尾插法...
2019-05-18 12:57:44 395
原创 Java数据结构——不带头单向非循环链表
一、链表的概念链表:采用链式存储结构存储的线性表,所谓的链式是指每个节点保存下一个节点的引用链表的分类:单向、双向 带头节点、不带头节点 循环、非循环根据以上三种分类,即可组成八种不同类型的链表链表的特点:链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理,但是链表失去了顺序表可以随机读取的优点,同时,链表增加了节点的指针域,空间开销比较大。二、不带头单...
2019-05-13 21:26:41 337
原创 Java数据结构——顺序表
一、线性表线性表是数据结构中最基本、也是最简单的数据存储结构,可以理解为"线性的表"。在线性表中数据元素之间的关系是线性的,所谓的"线性关系",是指数据一个挨着一个,中间没有空隙,除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素。数据在逻辑结构呈线性分布,称这样的存储结构为线性表1.1 线性表特点存储的元素数据类型相同 各个数据元素之间的相...
2019-05-07 14:09:33 615
原创 Java多线程
一、多线程的概念想要知道什么是多线程?就会引出线程的概念,而线程和进程之间又是息息相关的。进程:操作系统中一个程序的执行周期称为一个进程。线程:一个程序同时执行多个任务。通常,每一个任务就称为一个线程。多线程:一个进程运行时产生了多个线程。1.1 进程与线程的区别 进程是资源分配的最小单位,线程是程序执行的最小单位。没有进程就没有线程,进程一旦终止,其内的线程也将...
2019-05-04 22:28:49 1911 1
原创 微信小程序——云函数上传失败
这个困扰了好几个小时的bug,一定要发个博客总结一下...最近在使用微信小程序自带的云开发功能实现后台,然而,就在刚刚要上传部署云函数的时候就报错了~~~就是下面这个错误:然后,尝试了各种解决办法~~,它依然顽强的存在,but ! ! ! 就在我要放弃它的时候,突然找到一个解决办法,具体步骤如下:1.手动在云开发控制台上创建一个同名函数2.本地同步云函数列表...
2019-04-26 18:31:11 8505 1
原创 Java集合框架 ——Map接口
一、Map接口概述Map接口是由一系列键值对组成的集合,提供了key到value之间的映射,并且不能存在相同的key值,value值可以相同。Map接口继承关系:Map接口提供对一个值的集合与一个键的规则集进行查询、更新和读取等方法:方法 描述 public V put(K key, V value); 向Map中添加数据 public V get(Ob...
2019-04-21 22:15:12 354
原创 Java集合框架——标准输出
输出集合中的元素,我们可以通过覆写toString()方法,或者利用List接口的get()方法,但这些都不是集合的标准输出。那么,集合标准输出一共有以下四种方式:Iterator ListIterator Enumeration foreach迭代输出——Iterator集合输出的时候要形成以下的思路:只要碰到了集合输出的操作,就一定使用Iterator接口,这是最重要的...
2019-04-21 20:41:51 275
原创 Java集合框架——Collection接口
一、Collection接口概述在认识Collection接口的各个子接口之前,我们需要对它们之间的继承关系有个大概的了解。Collection接口继承关系:根据图中继承关系,我们可以看出Collection接口包含两大分支,分别为:List接口和Set接口List接口 :有序队列,元素可重复 Set接口 :无序队列,元素不能重复二、List接口...
2019-04-20 19:03:24 232
原创 Java集合框架
一、集合框架的由来我们经常使用数组来操作一组相同类型的数据,而数组有一个重要的缺陷,就是长度固定不变,那么集合框架的出现就是为了弥补数组的缺陷。集合可以动态扩展容量,而且可以存储不同类型的数据。既然要操作这些数据,就会引出如何组织和存储这些数据的问题——即数据结构,集合框架实际上就是java针对于数据结构的一种实现。在实际开发中,程序员不必考虑数据结构的实现过程,只需要使用这些类创建对...
2019-04-20 13:05:14 189
原创 I/O流之缓冲流
拥有缓冲区的流被称为缓冲流缓冲流把数据从原始流成块读入或把数据积累到一个大数据块后再成批写出,通过减少资源的读写次数来加快程序的执行缓冲流的分类:字节缓冲流:BufferedInputStream类、BufferedOnputStream类字符缓冲流:BufferedReader类、BufferedWriter类BufferedReader类继承结构:字符缓...
2019-04-14 20:51:43 273
原创 I/O流之系统标准输入与输出
我们经常使用System.out.print()语句,输出相关内容,但是,你真正了解这条语句的具体实现过程吗?实现过程:在System类内部定义了一个out静态成员变量,out变量又调用了print()方法,该方法来自于PrintStream类其实,System类内部定义了三个静态的成员变量:1. 标准输出(显示器) : public final static PrintStre...
2019-04-14 20:05:04 386
原创 I/O流之打印流
打印流,顾名思义,就是具有打印功能的流,可以打印任何类型的数据信息,比如小数,整数,字符串等...打印流的本质只是对OutputStream类的功能做了一个封装而已,可以看作是OutputStream功能的加强版。打印流按照操作的数据类型可分为两类:字节打印流 PrintStream 字符打印流 PrintWriter打印流的继承结构: ...
2019-04-14 19:08:05 257
原创 I/0流之内存流
我们经常使用I/O流来读写文件内容,除了文件之外,I/O流同样可以用来操作内存,这种流被称为内存操作流内存操作流的好处:进行I/O操作,不会产生文件内存流根据操作的数据类型可分为两类:1.字节内存流:ByteArrayInputStream、ByteArrayOutputStream2.字符内存流:CharArrayReader、CharArrayWriter内存流继...
2019-04-14 15:40:05 262
原创 I/O流之转换流
Java I/O流体系中按照处理的数据类型可分为字符流和字节流字节流可以转换为字符流OutputStreamWriter类: 将字节输出流变为字符输出流 InputStreamReader类 :将字节输入流变为字符输入流那么,为什么要把字节流转换为字符流呢?首先来看一下这两个转换流的继承关系和构造方法 InputStream...
2019-04-14 14:30:33 394
原创 Java——I/O流总结
在Java中File类对象,可以用来操作文件,但是不能处理文件内容为了处理文件内容,进行 I/O 操作,必须使用流的操作模式来完成I/O流体系结构图:I/0流分类:1)根据处理的数据类型分为:字节流和字符流2)根据处理的数据流向分为:输入流和输出流字节流与字符流的区别:字节流和字符流操作的本质区别只有一个:字节流是原生的操作,而字符流是经过处理后的操作。...
2019-04-09 17:54:43 416
原创 递归打印当前目录下所有层级的文件信息
在Java中,File类提供有listFiles()方法,它能够列出本目录中的第一级信息如果要求列出目录中所有级的信息,必须自己来处理。这种操作就必须通过递归的模式来完成。递归打印当前目录下所有层级的文件信息:import java.io.File;public class Test{ public static void main(String[]args){ ...
2019-04-09 14:29:16 529
原创 Java File文件操作类
一、文件类基本操作File类关于文件操作的基本方法:1. 创建一个新文件public boolean creatNewFile() throws IOException //如果创建文件的路径找不到,就要抛出异常2. 判断一个文件是否存在public boolean exists()3. 删除文件public boolean delete()综合范例:判断文件...
2019-04-07 21:24:36 245
原创 Java泛型总结
一、为什么需要泛型?首先,让我们来看一段代码: 1 public class Test { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("hello"); 6 list.add("word...
2019-03-30 21:28:22 279
原创 Java设计模式——工厂方法模式
引言:简单工厂模式虽然简单,但存在一个很严重的问题:当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同,来创建不同的产品,这必定要修改工厂类的源代码(增加一个新产品类,修改静态工厂方法内部逻辑),那么,为了实现增加新产品而不影响已有代码,工厂方法模式应运而生。一、工厂方法模式概述1.定义定义一个用于创建对象的接口,让子类决定将哪一个类实例化,同时让一个类的实例化延迟到其子类...
2019-03-24 19:56:29 206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人