自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 23种设计模式(一)

1.设计模式概述什么是设计模式设计模式是前辈对于代码开发经验的总结,是解决特定问题的一系列套路,它不是语法规定,而是一套用来提高代码可复用性,可维护性,可读性,稳健性以及安全性的解决方案。Gof(四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,收纳了23种设计模式,从此树立了软件设计模式领域的里程碑,人称[Gof模式]学习设计模式的意义设计模式的本质是面向对象设计原则的实际应用,是对类封装,继承和多态以及类的关联关系和组合关系的充分理解正确使用设计模式具有以下优点:

2021-06-22 23:03:24 185 2

原创 JUC并发编程(二)

16.JMM请你谈谈对Volatile的理解Volatile是Java虚拟机提供的轻量级的同步机制1.保证可见性(JMM挂钩)2.不保证原子性3.禁止指令重排什么是JMMJMM :Java内存模型,不存在的东西,是一个概念和约定关于JMM的一些同步约定1.线程解锁前,必须把共享变量立刻刷回主存2.线程加锁前,必须读取主存中的最新值到工作内存中3.加锁和解锁是同一把锁线程 工作内存 线程内存8种操作内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分

2021-06-13 21:27:05 1173 1

原创 JUC并发编程(一)

1.JUCJUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包,JDK 1.5开始出现的。2.线程和进程进程是操作系统分配资源的单位,线程是调度的基本单位,线程之间共享进程资源。一个进程往往包含多个进程,至少包含一个java默认包含2个线程,main和GCjava不可以自己开启线程,只能通过本地方法调用c来执行对于java来说,线程就是一个单独的的资源类,没有任何附属的操作,只有属性和方法并行和并发并发(多线程操作同一个资源)CPU一核

2021-06-12 19:47:39 1177 3

原创 Redis非关系型数据库

RedisRedis介绍1.引言2.NoSQL3.Redis介绍Redis安装1.安装Redis2.使用redis-cli连接redis3.使用图形化界面连接redisRedis常用命令1.Redis存储数据结构2.string的常用命令3.hash常用命令4.list常用命令Redis介绍1.引言1.由于用户量过大,请求量也随之增大,数据压力过大2.多台服务器之间,数据不同步3.多台服务器之间的锁,已经不存在互斥性了2.NoSQLRedis是可以一款NoSQLNoSQL->非

2021-06-04 15:14:22 496 3

转载 leetcode刷题打卡(十一)

leetcode刷题打卡(十一)剑指 Offer 11. 旋转数组的最小数字难度:简单把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0解法一:class Solution { public int minA

2021-05-25 11:26:22 58

原创 leetcode刷题打卡(十)

leetcode刷题打卡(十)剑指 Offer 09. 用两个栈实现队列难度:简单用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例

2021-05-24 23:39:15 62

原创 leetcode刷题打卡(九)

leetcode刷题打卡(九)剑指 Offer 07. 重建二叉树难度:中等输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:限制:0 <= 节点个数 <= 5000解法一:...

2021-05-24 21:31:01 53

原创 leetcode刷题打卡(八)

leetcode刷题打卡(八)剑指 Offer 10- II. 青蛙跳台阶问题难度:简单一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100解法一:动态规划cla

2021-05-23 00:53:50 50

原创 leetcode刷题打卡(七)

leetcode刷题打卡(七)剑指 Offer 10- I. 斐波那契数列难度:简单写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回

2021-05-23 00:51:10 112

原创 leetcode刷题打卡(六)

leetcode刷题打卡(六)剑指 Offer 06. 从尾到头打印链表难度:简单输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解法一:...

2021-05-23 00:46:56 60

原创 leetcode刷题打卡(五)

leetcode刷题打卡(五)剑指 Offer 05. 替换空格难度:简单请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000解法一:利用replaceAll函数class Solution { public String replaceSpace(String s) { s=s.repl

2021-05-20 00:43:36 73

原创 leetcode刷题打卡(四)

leetcode刷题打卡(四)剑指 Offer 04. 二维数组中的查找难度:中等在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18,

2021-05-19 01:36:31 90

原创 leetcode刷题打卡(三)

leetcode刷题打卡(三)剑指 Offer 03. 数组中重复的数字难度:简单找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000解法一:for循环遍历数组作比较class Solutio

2021-05-19 00:49:00 97

原创 Nginx反向代理服务器

Nginx反向代理服务器Nginx介绍1.引言2.Nginx介绍Nginx安装1.安装Nginx三级目录Nginx介绍1.引言为什么要学习Nginx问题1:客户端发送的请求到那个服务器问题2:发送的请求都到了服务器1问题3:客户端发出的请求有可能是动态资源的,也有申请静态资源的服务器搭建集群后搭建集群后,使用Nginx做反向代理2.Nginx介绍Nginx是由俄罗斯人研发的,应对Ramber网站,在2004年发布的第一个版本Nginx的特点1.稳定性极强。7*24时不

2021-05-09 14:31:00 165

原创 leetcode刷题打卡(二)

leetcode刷题打卡(二)递增的三元子序列给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。我的思路:关键词存在,长度为3,递增,根据要求设置变量one,two,只要three大于two,并且对one,two,three进行递增排序的,就可以实现。

2021-05-06 10:46:58 73

原创 leetcode刷题打卡(一)

leetcode刷题打卡(一)从这篇文章开始,我会记录每天刷leetcode的题目作为打卡记录在该博客上,也希望大家也可以跟随博主一起走进算法的世界,感受算法的魅力。出现的题目可以根据题目的题号在leetcode找到相关题目的的信息。只出现一次的数字 II题目给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。我的思路记录每个数字出现的次数,若出现的次数为1则该数字为正确答案代码cla

2021-04-30 12:20:48 197

原创 走进Shiro世界

ShiroShiro1.1 Shiro是什么Shiro架构1.工作流程2.RBAC模型3.架构HelloWorld与Web集成shiro标签Shiro为什么要用shiro1.项目中的密码不能明文存储2.任何访客,登录与不登录访问的功能不同3.项目中的功能不是所有的用户都能操作项目当项目某些功能被使用,需要进行安全校验,保证整个系统的秩序1.1 Shiro是什么Apache Shiro是Java的一个安全权限框架shiro可以轻松的完成:身份认证、授权、加密、会话管理等功能Shiro

2021-04-19 22:55:15 93

原创 application/json方式提交数据遇到的问题

在servlet的request中发送json数据用post方式的Content-。type:application/json;charset=utf-8发送是不可以用request.getParameter()等获取参数值SpringMVC的@RequestBody可以接收该请求体,并且自动拼接对象来接收SpringMVC的@RequestBody Map<String,String>来接收,对于少量参数建议使用这种方式没有用到框架的话,只能通过用传统的流的方式接收 Buffe.

2021-04-12 23:49:20 526

原创 走进Git世界

GItGit概述1.引言2.介绍Git环境搭建1.Git安装2.架构Git应用1.仓库1.1 新建仓库2.基本操作2.1 查看仓库状态2.2 暂存文件2.3 提交文件3.远程仓库3.1 远程仓库工作模式3.2 远程仓库选型3.3 基础操作3.3.1 新建远程仓库3.3.2 本地关联远程仓库3.3.3 推送文件到远程仓库3.3.4 克隆远程仓库3.3.5 代码共享3.3.6 命令汇总Git分支1.分支简介2.分支基本操作2.1 查看分支2.2 创建分支2.3 切换分支3.新建分支细节3.1 新分支初始内容3.

2021-03-24 01:16:18 162

原创 解决ajax发送list数据到scontroller报错,提示类型不对

由于在最近对于开发房屋管理系统时候,因为插入房屋信息的时候有多张图片,需要用一张表来单独存放图片的地址,所以就会出现一对多的关系,就需要list数据传输,因为对于layui前端不熟悉以及传输数据格式的要求导致我走了很多弯路,也查了很多资料也不能让我满意。最后让我找到了一篇能够解决我困惑的是一位博主写的文章非常的nice,值得转载一下下面内容是来自以下链接转载于:https://blog.csdn.net/stones_liu/article/details/108489744报错内容:Property.

2021-01-24 21:38:20 379 1

原创 JavaEE学习之走进jQuery

jQueryjQuery概述1.jQuery简介2.什么是jQuery?3.为什么要使用jQueryjQuery安装1.网页中添加jQuery2.百度cdn3.新浪cdn4.Google cdn5.Microsoft cdnjQuery语法1.jQuery选择器2.jQuery事件及常用事件方法jQuery效果1.隐藏显示2.淡入淡出3.滑动4.动画5.停止动画6.callback7.链式编程jQuery HTML1.捕获2.设置3.添加元素jQuery AJAX其他jQuery概述1.jQuery简介

2020-12-30 01:16:26 147

原创 JavaEE学习之走进JSON,AJAX

JSON,AJAXJSON概述1.什么是json2.json语法JSON解析1.FASTJSON解析2.Jackson解析3.浏览器处理JSON字符串4.浏览器转换为json对象Ajax概述1.什么是Ajax2.Ajax工作原理3.Ajax实例4.创建XMLHttpRequest对象5.XMLHttpRequest请求6.readyState7.XMLHttpRequest响应8.使用回调函数Ajax的使用JSON概述1.什么是jsonJSON(JavaScript Object Notation

2020-12-27 18:03:56 84

原创 JavaEE学习之走进JS

JSJavaScript概述1.JavaScript简介2.JavaScript发展史3.JavaScript环境搭建JavaScript基本语法1.变量声明2.基本类型3.引用类型4.数组类型5.运算符6.条件分支结构7.循环结构8.函数9.常见弹窗函数10.事件11.正则表达式JavaScript的DOM1.概述2.查找HTML元素3.改变HTML4.CSS变化5.DOM事件JavaScript概述1.JavaScript简介JavaScript是一种直译式脚本语言,是一种动态类型,弱类型,基于

2020-12-25 20:05:49 180 2

原创 JavaEE学习之走进JSP

JSP引言1.现有问题JSP(Java Servlet Pages)1.概念2.作用JSP开发(重点)1.创建JSP1.1 JSP编写Java代码1.2 访问JSP2.JSP与ServletJSP实现原理1.JSP.java源文件存放目录JSP与HTML集成开发1.脚本1.1 普通脚本1.2 声明脚本1.3 输出脚本2.JSP注释2.1 语法规则2.2 注释3.JSP指令引言1.现有问题在之前学习Servlet时,服务器端通过Servlet响应给客户端的页面,有什么不足之处?开发方式麻烦:继承父

2020-12-23 03:54:12 256 1

原创 JavaEE学习之走进Servlet

Servlet引言1.C/S架构和B/S架构1.2 C/S架构(Client/Server 客户端/服务端)1.3 B/S架构(Browser/Server 浏览器/服务器)服务器1.概念1.1 什么是web三级目录引言1.C/S架构和B/S架构c/s和b/s架构是软件发展过程中出现的两种软件架构方式1.2 C/S架构(Client/Server 客户端/服务端)特点:必须在客户端安装特定软件优点:图形效果显示较好(如:3d游戏)缺点:服务器的软件和功能进行升级,客户端也必须升级,不利于

2020-12-21 16:17:38 404

原创 JavaEE学习之走进CSS

CSSCSS简介1.什么是css2.css能什么3.css书写规范4.基础语法:选择器{属性:值;属性:值.....}CSS导入方式1.内嵌方式(内联方式)2.内部方式3.外部方式4.@import方式CSS选择器1.基础选择器2.属性选择器3.伪元素选择器4.层级选择器CSS属性1.文字属性2.文本属性3.背景属性4.列表属性5.尺寸属性6.显示属性7.轮廓属性8.浮动属性float9.定位属性CSS盒子模型1.边框相关属性2.外边距相关属性3.内边距相关属性CSS简介1.什么是cssCSS:全称

2020-12-15 22:53:58 146

原创 JavaEE学习之走进html

HTML引言HTML简介1.1 什么是HTML1.2 HTML能做什么1.3 HTML书写规范HTML基本标签1.结构标签2.排版标签3.块标签4.基本文字标签5.文本格式化标签6.标题标签7.列表标签(清单标签)8.图形标签9.链接标签9.表格标签HTML表单标签1.form元素常用属性2.input元素3.select元素(下拉元素)4.textarea元素(文本域)HTML框架标签1.框架结构标签frameset2.框架标签frame3.基本注意事项引言网页,是网站的一个页面,通常是网页构成网站

2020-12-15 01:41:15 191

原创 JavaEE学习之走进JDBC

JDBC引言1.如何操作数据库2.实际开发中,会采用客户端操作数据库吗?JDBC1.什么是JDBC2.JDBC的核心思想2.1 mysql数据库驱动2.2 JDBC apiJDBC开发步骤(重点)1.注册驱动2.连接数据库3.获取发送SQL的对象4.执行SQL语句4.处理结果5.释放资源ResultSet(结果集)1.接收结果集2.遍历ResultSet中的数据常见错误综合案例引言1.如何操作数据库使用客户端工具访问数据库,需要手动建立连接,输入用户名和密码登录,编写sql语句,点击执行,查看操作结

2020-12-14 01:33:01 156

原创 JavaEE学习之走进mysql数据库

mysql数据库引言1.现在程序存储数据方式有哪些2.这两种存储方式有什么缺点数据库1.概念2.数据库的分类数据库管理系统MySQL简介数据查询,DML操作约束,事务权限管理,视图SQL语言分类引言1.现在程序存储数据方式有哪些java程序存储数据(变量,对象,数组,集合),数据保存在内存汇中,属于瞬时状态存储文件存储数据,保存在硬盘上,属于持久状态存储2.这两种存储方式有什么缺点没有数据类型的分类存储数据量级小没有访问安全限制没有备份,恢复机制数据库1.概念数据库是按照数

2020-12-09 19:06:13 228

原创 Java学习之走进Java8新特性

Java8新特性Java8概述Lambda表达式函数式接口方法引用Stream API新时间APIJava8概述java8(又称jdk1.8)是Java语言开发的一个主要版本。Oracle公司于2014年3月18日发布java8支持Lambda表达式函数式接口新的Stream API新的日期 API其他新特性Lambda表达式Lambda表达式:特殊的匿名内部类,语法更加简洁Lambda表达式允许把函数作为一个方法的参数(函数作为方法参数擦传递),将代码像数据一样传递基本语

2020-12-06 22:22:27 84

原创 Java学习之走进反射

反射什么是类对象获取类对象的方法常见方法设计模式介绍工厂设计模式单例设计模式什么是类对象类的对象:基于某个类new出来的对象,也称为实例对象类对象:类加载的产物,封装了一个类的所有信息(类名,父类,接口,属性,方法,构造方法)注意:使用-verbose:class 可以显示累的加载过程获取类对象的方法通过类的对象,获取类对象Student s= new Student();Class c=s.getClass();2.通过类名获取类对象Class c=类名.class

2020-12-05 22:27:06 78

原创 Java学习之走进网络编程

网络编程什么是网络计算机网络网络模型1.OSI模型(开放式系统互联)2.TCP/IP模型通信协议IP与端口网络编程什么是网络由点和线构成,表示诸多对象间的相互联系关系计算机网络为了实现资源的共享和信息传递,通过通信线路连接起来的的若干主机(Host)按照地理范围网络分为局域网城域网广域网互联网:点对点万维网:端与端物联网:物与物网络编程:让计算机与计算机之间建立连接,进行通信网络模型1.OSI模型(开放式系统互联)2.TCP/IP模型一组用于实现网络互

2020-12-04 21:41:25 87

原创 Java学习之走进I/O框架

I/O框架流1.什么是流2.流的分类字节流1.文件字节流2.字节缓冲流三级目录流1.什么是流概念:内存与存储设备之间数据传输的通道2.流的分类按照流向输入流:将存储设备中的数据内容传输到内存中输出流:将内存中的数据内容写入存储设备中按单位字节流:以字节为单位,可读写所有数据字符流:以字符为单位,只能读写文本数据按功能节点流:具有实际传输数据的读写功能过滤流:在节点流的基础上增强功能字节流字节流的父类(抽象类 超类)-InputStream:字节输

2020-12-02 22:31:29 76

原创 Java学习之走进多线程

多线程进程和线程1.什么进程2.什么线程线程的组成线程的状态线程的安全线程池线程安全的集合进程和线程1.什么进程正在运行的程序,是系统进行资源分配的基本单位目前操作系统都是支持多线程,可以同时执行多个进程,通过进程id(pid)区分单核CPU在同一个时刻,只能运行一个进程;宏观并行,微观串行2.什么线程线程的组成线程的状态线程的安全线程池线程安全的集合...

2020-11-30 19:54:43 111

原创 Java学习之走进异常

异常异常概念异常分类1.常见运行时异常异常的产生异常的传递异常的处理1.声明异常2.抛出异常自定义异常方法覆盖(重写)异常概念程序在运行的过程中出现的不正常现象。出现异常不处理将终止程序运行异常处理的必要性:任何程序都可能存在大量的未知问题,错误;如果不对这些问题进行正确处理,则可能导致程序的中断,造成不必要的损失异常处理:Java编程语言使用异常处理机制为程序提供了异常处理的能力异常分类Throwable:可抛出,一切错误或异常的父类,位于java.lang包中Error:JVM,

2020-11-19 23:16:08 89

原创 Java学习之集合框架(重点)

集合框架集合的概念Collection接口List接口与实现类1.List接口2.List实现类2.1 ArrayList2.1.1ArrayList源码分析泛型和工具类Set接口与实现类Map接口与实现类集合的概念概念:对象的容器,定义了对多个对象进行操作的常用方法,可实现数组的功能和数组的区别:1.数组长度固定,集合长度不固定2.数组可以存储基本类型和引用类型,集合只可以存储引用类型位置:java.util.*Collection接口一些Collection允许有重复元素,

2020-11-19 17:50:20 101 2

转载 集合遍历时remove方法的问题

这是一道标准的Java数据结构面试题,重点是回答区别。 Collection接口的remove()方法本质上就是各个底层自己实现的remove()方法,其优点就是当其不是遍历的情况下,效率应该是最快的。但是其在遍历的情况下,将会导致各种问题,比如在现在 Collection c  = new ArrayList(); 那么无论是使用forEach还是fori方法都将导致一个致命的问题...

2020-11-17 20:59:01 730

原创 Java学习之内部类与常用类

内部类与常用类内部类1.内部类的分类2.什么是内部类3.成员内部类4.静态内部类5.局部内部类6.匿名内部类Object类Object类常用方法1.getClass()方法2.hashCode()3.toString()方法4.equals()方法5.finalize()方法包装类1.类型转换与装箱,拆箱2.基本数据类型和字符串之间的转换3.整数缓冲区String类1.String2.常用方法3.综合练习BigDecimal类内部类1.内部类的分类2.什么是内部类概念:在一个类中再定义一个完整

2020-11-17 17:48:10 132 2

原创 Java学习之补充(一)

补充静态代码块、类加载1.静态代码块2.类加载final静态代码块、类加载1.静态代码块类加载时,触发静态代码块的执行(仅一次)执行地位:静态属性初始化之后作用:可以静态属性赋值,或必要的初始行为2.类加载JVM首次使用某个类时,通过CLASSPATH查该类的.class文件将.class文件中对类的描述信息加载到内存中,进行保存-如:包名,类名,父类,属性,方法,构造方法加载时机创建对象创建子类对象访问静态属性调用静态方法主动加载:Class.forName(“全限定

2020-11-16 00:56:05 63

原创 Java学习-面向对象编程oop

面向对象编程oop初识面向对象1.什么是面向对象方法回顾和加深1.方法的定义1.1修饰符1.2返回类型1.3break和return区别1.4方法名1.5参数列表1.6异常抛出2.方法的调用2.1静态方法(类方法)2.2非静态的方法2.3形参和实参2.4值传递和引用传递2.5this关键字对象的创建1.对象的创建和初始化2.构造器3.创建对象的内存分析面向对象的三大特性(四大特性)1.封装2.继承2.1Super详解3.多态3.1重写3.2多态static抽象类和接口1.抽象类2.接口内部类及oop实战初

2020-11-15 23:53:33 66

空空如也

空空如也

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

TA关注的人

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