自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vue框架之抽奖项目

在之前我写的项目以及博客中有提及到MVC模式,在此先对MVC进行一下简单的回顾:MVC包含了Model(模型层),View(视图层)和Controller(控制层)三层。那么它是如何工作的呢?首先视图层会将指令给到控制层,控制层会完成相应的业务逻辑。完成业务逻辑之后它会要求 模型层改变数据状态,模型层会进行数据的填充,然后会将新的数据发送到视图层,视图层会重新渲染页面,然后返回给客户端。那此篇重点是讨论Vue框架,Vue框架是MVVM模式:MVVM的含义:Model , View, ViewMod

2020-07-12 17:45:07 1786

原创 Git的使用以及疑难杂症之解决办法

开始的开始:当我们写完一个项目之后,我们会想着将它提交到我们的gitlab(or)github上,此时就会用到git工具,那为什么用到git呢?借用一下百科的解说:git其实是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。它是为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。以上的解说可以忽略,重点看下面:当git安装好之后,右击桌面,我们会看见出现了两个图标,分别是 Git GUI Here和Git Bash Here,那我们点击Git Bash

2020-07-09 19:18:44 371

原创 es6之前:构造函数和原型

es6之前,通过构造函数+原型实现面向对象编程es6:通过类实现面向对象编程在es6之前,对象不是基于类创建的,而是用构造函数来定义对象和它们的特征。首先我们来看两个概念:静态成员和实例成员其实这个和java中的没有啥差别看以下的代码:<!DOCTYPE html><html> <head> <meta charset="UTF-8"&...

2019-11-12 11:16:44 302

原创 闭包 And 模块

就我而言,一开始接触闭包,感觉是个很抽象的概念。直接看程序吧<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>闭包</title> </head> <body> <script> functio...

2019-11-10 15:13:56 246

原创 通俗易懂的LHS和RHS

在一段代码执行之前,会经过编译阶段 。在对程序的处理过程中,不可或缺的人物就是:引擎,编译器,作用域。JavScript在预编译后执行代码时,引擎就会对其进行查询,查询分为:LHS:Left-Hand-SideRHS:Right-Hand-Side即赋值的左侧和右侧:当出现在赋值操作的左侧时进行LHS查询,出现在右侧时进行RHS查询。例:function foo(a){var b=...

2019-11-09 15:03:28 12138 2

原创 变量的解构赋值的简单探讨

众所周知,我们在ES6 中接触过很多类型变量因此解构赋值也有多种解构赋值大致分为:(1)数组的解构赋值(2)对象的解构赋值(3)字符串的解构赋值(4)数值和布尔值的解构赋值(5)函数参数的解构赋值=============================================数组的解构赋值按照一定的模式,从数组和对象中提取值,对变量进行赋值(1)例:(从数组中提取值,...

2019-10-22 15:04:36 106

原创 ECMAScript导入

在以前学的java se阶段,我们知道重载的概念,而且一般来说函数是可以重载的。那ECMAScript函数能重载吗?答案是不可以的。ECMAScript函数没有签名,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,是做不到真正的重载的。若在ECMAScript中定义了两个相同名字的函数,则该名字只属于在后面定义的函数,它会将前面的覆盖掉。例:function addNumbe...

2019-10-19 10:59:21 271

原创 数据库常见面试题汇总

1.当数据增加到100万以上,MySQL的性能急剧下降如何对其进行优化?答:主从同步复制M-M-Slaves方式:2个主Mysql,多个Slaves.Slaves可进一步负载均衡,可结合LVS,从而将select操作适当的平衡到不同的slaves上。但是:如果数据超过一千万,不能随意扩充Slaves,因此进行表分区,将其切分到不同的数据库集群会。2.既然提到了集群,那你说一下集群软件的分...

2019-10-19 09:16:06 341

原创 有关线程的面试题总结

多线程:1.进程和线程的区别问:线程有自己独立的变量吗?答:同一个进程中的多个线程之间可以并发执行,他们共享进程资源。线程不拥有资源,线程可以访问隶属进程的资源。进程有自己的独立空间地址,线程没有自己的独立空间地址,但是线程有自己的堆栈和局部变量问:为什么线程不拥有独立的地址空间但却可以有私有的栈,程序计数器等?答:这些本来也是存放在进程的地址空间上,只是这些都只能有某个特定的线程去访问...

2019-10-17 14:02:02 198

原创 要旅游,就现在------基于Web的旅游网

此旅游网项目是前端和后台交互实现的。它的功能:(1)注册功能(2)登录功能(3)退出功能(4)分类数据的展示(5)旅游路线的分页展示(6)旅游路线的名称查询(7)旅游线路的详情展示(8)旅游线路的收藏功能===========================================================技术分层:将其分为三层,1.Web层2.Servi...

2019-08-12 01:16:26 973

原创 java项目------松子铺的收银台

此项目是一个收银的系统,它主要时基于字符界面。在此项目中我们的目的是实现以下功能:1.公共端:(1)入口命令 :注册(ZC),登录 (DL)(2)公共命令:关于系统(GYXT), 帮助信息(BZXX), 退出系统(TCXI)======================================================2.管理端:(1)账户信息:查看账户(CKZH) ...

2019-08-11 12:05:17 376

原创 Mybatis的初级探讨

在前面我们曾探讨过mvc模型。仔细观察上图:上面三层:视图层(View),控制器(Controller),模型层(Model):是面向对象的语言。下面:是面向关系型的数据库。面向对象的语言和面向关系的数据库存在阻抗不匹配那问题来了,什么是阻抗不匹配呢?它就是指:类A继承自类B,但类A映射成A表,类B映射成B表,不能说A表也继承自B表,这就叫阻抗不匹配。Mybatis核⼼能⼒:(1...

2019-08-09 00:52:53 103

原创 SpringMVC导入

MVC是一个设计模式,来源于web2.0如下图所示:浏览器发一个http请求到控制器(基于http协议,发一个request,接收一个response响应)控制器:接受客户的请求,转发到其他的组件,然后调用业务逻辑。模型层:(业务层),访问持久层持久层:用来对数据进行持久化,真正访问数据库的。就是 把O(Object)到R(Relations)做一个映射把一个类映射成数据库中的一张...

2019-08-05 16:32:02 1204

原创 Spring AOP详解

AOP:Aspect Oriented Programing :面向切面编程当需要为分散的对象引入公共的行为时,我们就会考虑以前所接触的封装、继承和多态性等来建立一种对象层次结构,用以模拟公共行为的一个集合还可行不,答案是显而易见的,不行。所以我们就需要用到AOPAOP将其分为两个部分:核心关注点和横切关注点核心关注点: 业务处理的主要流程横切关注点:与业务处理的主要流程关系不大的部分。横...

2019-08-02 14:36:05 202

原创 Spring及IOC

一看到Spring,就有一个词冒出在脑海中,是“春天”吗?确实是这个词,但它其实代表的是框架,容器。那么容器是干什么的,容器其实就是管理对象的生命周期的。那么我们看下面这种情况:有两个类,类A,类B现在类A向调用类B中的方法,按照一般的想法,我们可以new一个类B的对象来调用;也可以定义一个接口,在接口中定义要实现的方法,然后让类A和类B实现这个接口现在,上面两种方法我们都不想用,因...

2019-08-01 22:26:07 135

原创 动归之回文串的分割(java)

给定一个字符串 s,把 s 分割成一系列的子串,分割的每一个子串都为回文串返回最小的分割次数例:aaba:0aa:0aab:aa b(或)a ab :1次方法一:(一个一个看)状态:F(i): 到第i个字符需要的最小分割数状态递推:F(i) = min{F(i), 1 + F(j)}, { j<i && j+1到i是回文串} 分成了1~...

2019-08-01 09:11:34 220

原创 撞了南墙才会回头吧----深度优先搜索及图像渲染(java)

有一首歌唱的是真应景,“可能我撞了南墙才会回头吧”。不要深刻的理解它,来,看字面意思。一直走,直到没路了,撞了南墙才回头。这就是深度优先搜索。从上面的描述来看,深度优先搜索就是找到当下如何做的可能性之后,继续下一步,直到走到尽头,即走到边界线,就回退。只说不练还是太抽象,来看看这一个题目:图像渲染:题目描述:给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的...

2019-07-31 23:14:02 138

原创 Http协议详解

Http协议是一个很重要的概念。 我们打开一个网页这样的操作都是靠HTTP协议。首先我们来认识认识什么是URL?URL就是我们平常俗称的网址ip地址不太方便记忆和传播,用一些更好记忆的字符串来表示,即域名。浏览器在访问域名的时候会自动把域名转成ip地址路径表示主机上具体的资源(文件或者虚拟的文件)查询字符串(query_string)中的键值对都是用户自定制协议的一部分HTTP协议:...

2019-07-30 15:34:40 138

原创 Cookie和Session

在探讨Cookie之前,我们先看一下什么是URL重写和隐藏域URL重写:URL重写是一种会话跟踪技术,它将一个或者多个token添加到URL的查询字符串汇总,每个token通常为key=value 形式。url?key-1=value-1&key-2=value-2&key-3=value-3…&key-n=value-n注:(1)若要传递值到下一个资源,需要将值插入...

2019-07-29 14:25:23 122

原创 TCP和UDP的详解

在此之前先看一下什么是传输层?我们在了解计算机基础时都知道 :OSI有七层模型:物理层, 数据链路层, 网络层,传输层, 会话层, 表示层, 应用层TCP/IP 五层(或四层)模型物理层 数据链路层 网络层 传输层 应用层那什么是传输层呢?负责数据能够从发送端传输接收端UDP协议(在传输层):16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的最大长度;如...

2019-07-28 21:40:15 293

原创 动态规划以及它的面试常见题型

什么是动态规划?动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化了。在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。动态规划具备以下三个特点:把原来的问题分解成了几个相似的子问题。所有的子问题都只需要解决一次。储存子问题的解步骤:动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶...

2019-07-26 00:46:12 1080

原创 走入servlet

第一个疑问,什么是servlet?有什么作用呢?Servlet,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容过程:1.客户端发送请求至服务器端;2.服务器将请求信息发送至 Servlet;3.Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;4.服务器...

2019-07-25 10:54:04 114

原创 事务的隔离级别(附Redis的简述)

数据库事务的特性:我们一般提到事务都会说它具有ACID特性,那ACID到底代表了什么特性呢?A:即:Atomicity,代表原子性是指整个事务中的所有操作,要么全部做,要么全部不做,不可能出现停滞在中间某个环节这种情况。若事务在执行过程中发生错误,则会被回滚到事务开始前的状态C:Correspondence,代表一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏I:...

2019-07-22 23:55:49 2560

原创 遨游优先队列与topK

队列我们已经用的很熟了,那加上优先两个字是否还是和队列一样呢?非也,非也优先队列(PriorityQueue):看见这个名称是不是能猜到点什么…PriorityQueue类在Java1.5中引入。它作为 Java Collections Framework 的一部分。PriorityQueue是基于优先堆的一个无界队列,这个优先队列中的元素可以默认自然排序或者通过提供的Comparator(...

2019-07-20 17:49:29 122

原创 二叉树操作(续)【含通过先序和中序,中序和后序得到二叉树】

1.对称二叉树对称二叉树的定义:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。但是这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3综上:若一个二叉树要镜像对称,则它的左子树和右子树要对称,并且对应位置的值要相等。即:它们对应的值相等,左子树的左节点和右子树的右节点相等,...

2019-07-20 09:13:05 202 1

原创 蛇形矩阵(java实现)

蛇形矩阵:一个呈螺旋状的矩阵,如图所示:数字从第一行开始,向右变大,向下变大,向左变大,向上变大。即解决此问题,首先我们知道它有四个方向,每次都是在这四个方向上进行操作:Right, Down, Left, Up此题需创建一个二维数组,行记为row,列记为col.每次根据方向不同,对行和列进行不同的操作。因为它的顺序为右,下,左,上,因此还需要一个方法来判断它的下一个位置。具...

2019-07-18 18:57:01 3845

原创 格雷码和尼科彻斯定理(java实现)

1.在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。给定一个整数n,请返回n位的格雷码,顺序为从0开始。测试样例:1返回:[“0”,“1”]分析:使用递归的方法生成格雷码,n位格雷码由n-1位格雷码生成。例如:若要求n=3时的格雷码:首先我们由n=1时的格雷码(0,1)得到n=...

2019-07-18 09:58:20 581

原创 动态代理模式的详述

其实我一直在想,为什么前辈要在java中引入这么多的模式,什么原子模式,组合模式…,虽然这个问题我一直没想得多透彻,但是总归这些模式都会帮助我们解决很多同步异步问题和用简单明了的方法实现更多的功能。看了很多大神们写的代理模式的说明,在此,我想更加通俗的来阐述一下。首先有一个问题,我们为啥要在众多的模式中选择代理模式,什么情况下使用代理模式?代理模式:为其他对象提供一种代理以控制对这个对象的访...

2019-07-17 13:19:47 104

原创 蛇形打印二叉树

蛇形打印二叉树(之字形)即第一行从左到右的顺序打印,第二行从右到左的顺序打印,第三行又是从做到右的顺序打印…如图所示:分析:使用两个栈。一个栈存储奇数层节点,另一个栈存储偶数层节点。若是奇数层,则打印顺序是从左往右,即先添加左子树,再添加右子树,即先保存左子节点,再保存右子节点。若是偶数层,打印顺序是从右向左,先添加右子树,再添加左子树。因为栈是先进后出,所以需要注意左右子树入栈的...

2019-07-16 21:09:09 2677

原创 二叉树链式结构操作的java实现(续)

1.根据字符串创建二叉树步骤:因为“#”代表没有,所以若对应字符不是#号,创建一个节点,然后使用递归。若是#,则直接下标++。代码实现: public Node createTestTree(String str) { //创建一棵二叉树,递归,先序遍历的方式 Node root = null; //1.若对应字符不是#号,创建一个节点...

2019-07-15 21:07:47 170 1

原创 二叉树的顺序结构以及链式结构的实现

首先我们来看看什么是树:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父节点;除了根结点外,每个子结点可以分为多个不相交的子树二叉树:一棵二叉树是节点的有限集合,该集合或者...

2019-07-15 09:37:56 1789 2

原创 斐波那契数列问题的递归和动态规划

1.给定整数N,返回斐波那契数列的第N项。分析:斐波那契数列:1,1,2,3,5,8,…F(1)=1; F(2)=1;F(N)=F(N-1)+F(N-2)由上述的式子,我给出了第一种递归解法(1) public static int fN(int n){ if(n<1){ return 0; } if(n==1...

2019-07-11 10:42:37 694 1

原创 四大并发工具类

java.util.concurrent包下的工具类:(1) 闭锁 CountDownLatch主要的构造方法:public CountDownLatch(int count) : count表示需要等待的线程个数public void countDown() : 计数器值-1(类似运动员线程[被等待的线程])public void await() throws Interrupted...

2019-07-07 23:33:55 388 1

原创 synchronized与Lock,你真的了解了吗?

线程安全问题一直是我们关注和需要解决的问题。多个线程的以下三个特性:原子性、可见性、有序性;若任意一个不满足,都存在线程安全问题,那如何解决线程安全的问题呢?synchronized实现线程安全(1)同步代码块synchroinzed(锁的对象) {}-普通对象(对象锁)-类.class(类的反射对象)(1)同步方法-成员同步方法 锁的是当前对象this-静态同步方法 锁的是当前...

2019-07-06 08:30:38 178

原创 JDBC连接步骤及简单功能实现

一提到JDBC,第一想法都是繁琐,确实如此。JDBC(Java DataBase Connectivity,Java数据库连接)技术,是一种用于执行SQL语句的Java API.JDBC优势:Java语言访问数据库操作完全面向抽象接口编程开发数据库应用不用限定在特定数据库厂商的API程序的可移植性大大增强但是不得不说写JDBC程序是一件很繁琐但该用的时候不得不写的事。接下来我将详细的...

2019-06-30 11:25:14 351

原创 设计有setAll功能的哈希表

题目:哈希表常见的三个操作是put, get, containsKey,而且这三个操作的时间复杂度为O(1).现在想加一个setAll功能,就是把所有记录的value都设成统一的值。请设计并实现这种有setAll功能的哈希表,并且put, get, containsKey,setAll四个操作的时间复杂度为O(1)。分析:要实现记录,则可以给每个记录加上一个时间来标记一下记录是何时建立的。...

2019-06-27 14:28:38 416

原创 子数组的最大累加和问题与子矩阵的最大累加和问题(java)实现

题目:1.给定一个数组array,返回子数组的最大累加和。例如:array=[1,-2,3,5,-2,6,-1],所有的子数组中,[3,5,-2,6]累加出的和最大,为12,所以返回12.分析:本题要遍历数组,毫无疑问。但核心在于该如何正确的遍历数组来得到累加和最大的子数组?解决:从左到右遍历array,用count记录每一步的累加和,若遍历到正数,count增加,若遍历到负数,coun...

2019-06-26 10:54:12 358

原创 多线程版的聊天室项目的具体实现

套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字,并尝试连接服务器的套接字。当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。现实中一个服务端会 对应多个客户端使用,即如下图所示因为有多个任务需要处理,所以可以引入线程池,每来一个任务,将其放入线程池中,然后执行服务器来进行调度。服务端:...

2019-06-24 09:30:41 977

原创 浅拷贝和用序列化实现的深拷贝

要想让对象具有拷贝的功能,必须实现Cloneable接口(标识接口,表示此类允许被clone),并且在类中自定义clone调用Object类提供的继承权限clone方法。浅拷贝:拷贝出来的对象仍然保留原对象的所有引用只要任意一个拷贝对象(或原对象)中的引用发生改变,所有对象均会受到影响如图所示:代码实现:public class TestClone { public stat...

2019-06-22 11:02:44 352

原创 单例模式的进一步实现方式

首先我们需要了解:Java内存模型的三大特性 :(1)原子性 : 由Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和read。大致可以认为,基本数据类型的访问读写是具备原子性的。如若需要更大范围的原子性,需要synchronized关键字约束。(即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行)(2)可见...

2019-06-21 23:35:23 160 1

空空如也

空空如也

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

TA关注的人

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