自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 一个基于Servlet的在线商城

onlineMallServlet介绍基于Servlet实现的在线商城只是一个小demo很多细节还需要打磨,比如账号密码格式验证等,主要用来学习Servlet和MVC开发模式,以后使用框架开发时再打磨细节。代码gitee仓库环境1.JDK112.tomcat 9.0.503.mysql 8.0.25 表结构见最后管理工具maven 4.0.0需求分析1.用户登录注册(商家和用户)2.用户浏览购物商城页面3.购买物品4.商家管理商品(增删改查)5.买家查看购买记录6.卖家查

2021-10-15 16:04:38 620

原创 使用数据库连接池报异常too many connection

背景用servlet+jsp+mysql开发一个练手项目在线商城,dao层选用HikariDP连接池作为数据源,网页前端点一点,刷新几次之后,即进行几次数据库操作之后,就会报错too many connection解决思路报这个错误意思是连接数过多,我们都知道,连接数据库获取的连接数是有上限的,虽然上限可以设置,但是就我这么小的小项目,mysql不至于顶不住啊?另外,所有的获取连接操作,我都是try-with-resource代码块实现的,也就是说,所有获取的connection,在使用之后都正常释

2021-10-15 15:31:49 2668 1

原创 Spring之IoC使用

IOC简介概念、优点网上一大堆,我只说下自己的见解。所谓控制反转IoC就是在开发过程中,不需要手动的new对象,而是把对象都交给Spring的IOC容器,由Spring容器来创建和注入到需要的相应对象的位置。不使用SpringIoC的情况下举个例子:在传统的MVC模型中,用户Controller类会调用用户Service类,用户Service类调用用户Dao类,如果实现一个注册功能,需要有以下流程:Controller需要调用Service中的方法,所以Controller类中必须创建Service对

2021-10-12 18:49:27 330

原创 5.Jave反射

反射是一种可以不通过对象,而直接对内存进行操作的特殊手段,本质是越过了“对象”实例,而是通过类似于指针直接去访问内存,反射破坏了Java的封装特性。

2021-09-26 14:33:33 90

原创 2.Java核心类与常用工具类

String1.String在Java中的特殊地位String是字符串类型由于字符串类型实在太常用了,因此Java对String做了特殊处理,以提升性能。String在JVM中有一个单独的存储空间专门存储String,防止大量重复的new String对象浪费内存,一个String一旦被定义,就不能修改其内容,这样的好处就是不会有重复的String在内存中。2.String内容不可变String对象实际上是一个常量,一旦被创建,首先会在字符串常量池中搜索字符串是否存在,如果存在,则将对象地址直接指向

2021-09-24 17:21:37 123

原创 git命令总结与使用场景

1.假设您已清晰认识工作区、暂存区、仓库区和远程仓库的区别2.还假设您已经了解仓库区中又包含本地提交和远程备份提交。3.常见的命令git status 查看当前工作状态git branch 查看本地分支git branch name 创建分支git branch -d name 删除分支git checkout name 切换到分支namegit checkout -b name 从当前分支拉取代码新建分支name并切换到新分支git add . 将所有更改文件加入暂存区git comm

2021-09-09 10:16:19 104

原创 Java查看日志的技巧

查看日志技巧首先,假设懂点linux和日志的知识,能进入到服务器日志目录中去。我的日志保存在log/logs中。场景1:想去日志中查看信息,而且知道关键字,或者是在关键字附近。比如线上调试代码或者线上突然报错,或者崩溃,某些功能突然挂了,都可以通过下面的方法来查日志。总之排查错误总要有点线索,可能是之前自己打的日志,或者报错信息。如果一点线索都没有,看下一个场景。进入目录后:cat xxx.log | grep -n -C20 ‘keyword’ 回车即可这个命令的意思是:打开文件xxx.l

2021-09-03 15:19:17 10304

原创 MySQL安装与卸载过程记录

MySQL安装及介绍文中包含MySQL在Windows下的安装(安装板与免安装版),文档结构介绍,卸载,以及第三方软件SQLyog的安装与使用。MySQL在windows下安装有两种方法,第一个中是通过安装包,简单但是配置不灵活。第二个是免安装版解压压缩包来安装,需要手动配置,麻烦但是有些配置更灵活,可以根据需要选择配置属性。卸载的话一般推荐按照我说的步骤进行。

2020-10-19 20:06:35 330

原创 算法学习大纲

面试算法学习大纲以下只包含我了解到出现频率较高的题,仅供参考,以后还会补充的,因为完全刷完leetcode挺难的。有些题目是我自己面试以及从同学那里了解到的面试原题,面试官也是从题库里抽。一、基础1.时间复杂度和空间复杂度时间复杂度空间复杂度、选择排序、冒泡排序插入排序的时间复杂度二分法的复杂度递归的复杂度2.O(N*logN)的排序归并排序堆和堆排序快速排序3.进阶排序算法桶排序外部排序工程中的排序4.链表数据结构以及特点链表的遍历链

2020-10-08 20:49:53 514

原创 3.Java容器框架

集合框架Collectionpublic void add(E e)添加元素public void clear()清空public boolean contains(Object o) 是否包含某元素public boolean containsAll(Collection<?> c)是否包含集合c中的所有元素public boolean equals(Object o)判断两个集合是否相等public boolean isEmpty()判断是否为空public remove(

2020-09-13 10:54:07 240

原创 1.Java中常见的重写

重写toString()、equals()、hashcode()、compareTo()接下来将从两方面分析为什么要重写这几个方法?怎么重写这几个方法?toString()public class Student { String name; int age; String address; public Student() { } public Student(String name, int age, String address) {

2020-09-12 20:21:29 398

原创 4.熟悉HashMap底层原理

熟悉HashMap参考https://blog.csdn.net/c139352227/article/details/47861815一、概述HashMap基于Map接口,键值都允许存在null,由于键不能重复,所以键中只能有一个Null。而且它的插入顺序和存放顺序未必一致,不能相同。HashMap是线程不安全的。基本属性static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认容量static final i

2020-09-12 20:19:27 100

原创 JAVA实例锁和类锁

Java中的实例锁(Synchronized)和类锁(Static Synchronized)锁的作用​ 对于多线程同时访问共享变量时,就会产生线程安全问题。锁的作用就是对共享的变量进行加锁,当有线程在访问变量时,其他线程必须要等锁释放才可以访问,解决线程安全问题。线程安全问题​ 直接上代码,下面是模拟10个线程对同时卖票的场景。public class ThreadSecurtiy implements Runnable{ int ticket = 100; @Overrid

2020-09-11 19:54:41 1296

原创 查找算法总结

顺序查找:最简单的遍历的方法,适用于各种线性表。折半查找:比顺序查找效率更高,节省一半的时间,适用于有序的线性表,使用条件是有序,其改进的算法包括插值查找和斐波那契查找法。索引顺序查找:介于折半查找和顺序查找之间的一种算法,适合动态变化且结点数量较多的表。二叉排序树:用于树中结点的查找,特点是左儿子的值一定小于父亲的值,右儿子的值大于父亲的值,左右子树也分别是二叉排序树。这样的数据结构...

2020-01-02 15:19:18 1644

原创 图的遍历DFS和BFS代码实现

图的深度优先遍历是树的先序遍历的延伸,先序遍历是DFS的特殊情况。从图中任选一个顶点v,访问后开始随意选一个邻接点,从新的邻接点开始进行DFS,以此类推,这是一个递归的过程,直到遍历完图中所有结点。实际上,递归算法的本质就是一个栈,递归算法消耗大量的内存存储临时变量和中间状态,但是代码更简单。(至于用不用递归,就看实际需求吧)图的非递归深度优先遍历,引入一个数组和一个栈,数组visit[]...

2019-12-25 20:56:23 2342

原创 图的几种表示方法

图数据结构的表示方法大致分为四种,邻接矩阵、邻接表、十字链表、多重邻接表。邻接矩阵是最容易理解的表示方法,优点是简单易懂,缺点是可能会占用很多存储空间,且没有任何意义,空间复杂度有向图是n^2,无向图是n(n-1)/2,因为无向图矩阵是对称的,只需要存储一半且不包含对角线即可。邻接矩阵的存储优化可以通过矩阵优化来实现(具体可以看矩阵的压缩方法)。邻接表就是更加灵活,节省存储空间空间复杂度有...

2019-12-25 13:33:58 4976

原创 树的表示方法以及先、中、后序遍历以及求叶子结点个数和树的深度代码C代码

树的概念及性质暂时略树的表示方法图形表示法:直观清晰易于理解。广义表表示法:不常用。左孩子右兄弟表示法:可以将多叉树转化为二叉树的一种表示方法,而二叉树更适合计算机表示。(也就是说一般遇到多叉树,转化成二叉树)二叉树及性质略二叉树的存储结构顺序存储用一个数组来存储二叉树,结合二叉树的性质,可以保存树的结点之间的关系。最适合完全二叉树和满二叉树,如果是一般二叉...

2019-12-17 10:16:39 2412 1

原创 顺序队列和链式队列的C语言实现

老规矩,简单的算法就不做其他解释了,直接上代码。首先是顺序存储SeqQueue.h头文件#ifndef _SEQQUEUE_H#define _SEQQUEUE_H#define MAXSIZE 50typedef struct Queue * SeqQueue;struct Queue{ int front; //队伍头 int rear; //队伍尾 int da...

2019-11-20 20:37:43 2182 1

原创 栈的链式结构以及中缀表达式转后缀表达式(逆波兰式)C语言实现

栈的数据结构就不多说了,后进先出,只有一个出口。最典型的应用就是中缀表达式转后缀表达式,因为计算机不能识别人类所认知的中缀表达式,逆波兰式多用于编译器实现、自然语言处理这些常用的领域。下面介绍中缀转后缀的具体过程。比如1+3*(2+5)转化成后缀表达式是:1325+*+,转化算法为:1、对于数字,直接输出2、对于符号: 左括号:进栈,不管栈中是否有元素 运算符:若此时栈为...

2019-11-13 18:21:26 1887 1

原创 单向链表C语言实现

list.h#pragma once#ifndef _LIST_H#define _LIST_Hstruct Node{ int data; struct Node * next;};struct Header{ int length; struct Node * next;};typedef struct Node List;typedef struct H...

2019-11-05 18:28:08 1484

原创 顺序链表C语言实现

顺序链表没什么说的啦,直接上代码,参考了传智播客出版的数据结构。创建工程的时候不小心弄成c++了,不过没关系,都一样。Operation中有一处语法上的疑惑,就是插入的那个函数中,node为什么要强制转换成整型,既然等式两边都是指针,为什么不是转化成int* ,有心人帮忙解答一下,谢谢。SeqList.h头文件#ifndef _SEQLIST_H_#define _SEQLIST_...

2019-11-04 18:18:54 3305 1

原创 数据挖掘概论

最近学习数据挖掘,记录一下数据挖掘概述,便于指导以后的学习方向。数据挖掘的过程1.数据预处理(至关重要,数据的质量决定挖掘的质量)数据预处理包括数据整合、数据清洗、数据转化和数据约简。一、数据整合:收集要分析的数据进行模式整合组成一个新的数据仓库。(具体什么方法还有待学习,可能是爬虫?)数据整合的问题:数据来源五花八门,如何收集不同数据源的数据?收集到的数据又未必一致,而且还可...

2018-11-22 16:06:50 2313

原创 C语言实现集合运算(交并差补)

C语言入门,写的不好多多指教!//输入两个整数集合A、B,求出交集、并集以及B在A中的余集,输入时按照大小顺序输入。#include&lt;stdio.h&gt;#define MAX 1000//最大输入个数int bubbleSort(int *A,int len)//冒泡排序{ int i,j,t; for(i = 0;i &lt; len-1;i++) {...

2018-11-14 10:38:56 27035 7

原创 黑色星期五C语言实现

问题描述:已知1998年1月1日是星期4,输入一个1998年之后的年份,输出本年所有的黑色星期5日期。(黑色星期五指的是既是13日,又是星期五)代码:#include&lt;stdio.h&gt;//整体思路://只需要判断每个月13号是否是星期五就可以了。那怎么看这天是不是星期5呢?//可以计算这一天距离已知的98年1月1日有多少天,那天是星期四,天数+3再模7,结果是几就是星期几。是...

2018-10-29 22:20:50 11065 10

Java实现画图工具

画图工具用java实现,比较简单,下载直接编译即可运行。老师留的作业。分享给大家

2018-11-14

空空如也

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

TA关注的人

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