可视化网盘系统构建学习记录
可视化网盘系统
开发者: 张津瑞
项目名称: 可视化网盘系统 (基于开源项目:奇文网盘)
Email:jinrui.zhang@accenture.com
功能介绍
多文件格式分类查看
支持网格、表格视图、时间线三种展示视图
支持极速秒传功能,提高上传效率
多人上传同一文件,可多人并行上传,共享他人上传进度,极大提高上传效率
拒绝冗余,每份文件只存一份,提高硬盘使用效率
上传文件前台实时显示上传文件进度,上传速率,百分比等信息
安全的下载机制,断点下载,权限校验,他人拿到了下载地址也无法下载您的文件
支持视频音频播放,进度条拖拽,倍速播放
拥有回收站功能
高效的垃圾回收机制
响应式前端布局
软件架构该项目采用前后端分离的方式进行开发和部署,主要用到以下关键技术
前端:Element UI、Vue CLI@3、Node ...
docker Error记录
错误1:有同名实例正在运行,冲突错误
解决方案:
使用 docker ps -a 查看当前正在运行的实例列表
使用docker rm 进程名 删除相应进程
12docker: Error response from daemon: Conflict. The container name "/mymysql" is already in use by container "236483b34c607e2d40306b36cd2a74c10c317dbf902ef6ab9ae0dfdb36185768". You have to remove (or rename) that container to be able to reuse that name.See 'docker run --help'.
错误2:端口监听冲突错误
发生原因:本地3306端口被其他应用程序占用
解决方案:
若本地安装了MySQL服务,并监听的是3306端口:
打开Windows服务停止该服务
如果本地MySQL有需求要使用可以更改 ...
Java-Web笔记
Java Web笔记入门servlet命名规范:
包名:全小写,写法:a.b.c
类名或接口名:所有单词首字母大写
变量名或方法名:从第二个单词开始首字母大写
常量名:所有单词的字母都大写,单词之间用”_”分割
实现servlet的三种途径:
实现servlet接口
继承GenericServlet抽象父类
继承HttpServlet父类(最常用)
Servlet是单例多线程的工作模式
Servlet声明周期的重要方法:init(一次)、service(多次)、doGet(多次)、doPost(多次)、destroy(一次)
注解:@WebServlet(); URL Mappings写法:(按照优先级排序)精确路径匹配:以”/“开头最长路径匹配:以”/“开头,以” * “结尾拓展匹配:以” * “开头默认Servlet:URL Mapping为”/“根路径:URL Mapping为””匹配所有地址:URL Mapping为”/*”
loadOnStartup:
loadOnStartup属性用于标记容器是否在启动的时候加载这个Servlet(即实例化并调用其init()方法);
...
Java-web-点餐系统数据库脚本
mealsystem.sql
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798/* Navicat Premium Data Transfer Source Server : Web Source Server Type : MySQL Source Server Version : 80011 Source Host : localhost:3306 Source Schema : mealsystem Target Server Type : MySQL Target Server Version : 80011 File Encoding : 65001 Date: 14/03/2 ...
分页算法(Java实现---Jsp)
分页基本算法分页模块中, 页码 1,2,【3】,4,5的显示,要显示5个页码, 并且页码可以点击跳转。需求: 显示 5 个连续的页码, 而且当前页码在中间。除了当前页码之外, 每个页码都可以点击跳到指定页。
情况 1: 如果总页码小于等于 5 的情况, 页码的范围是:1-总页码1 页 12 页 1, 23 页 1, 2, 34 页 1, 2, 3, 45 页 1, 2, 3, 4, 5
情况 2: 总页码大于 5 的情况。 假设一共 10 页
小情况 1: 当前页码为前面 3 个: 1, 2, 3 的情况, 页码范围是: 1-5.【1】 2, 3, 4, 51【2】 3, 4, 51, 2【3】 4, 5
小情况 2: 当前页码为最后 3 个, 8, 9, 10, 页码范围是: 总页码减 4 - 总页码6, 7【8】 9, 106, 7, 8【9】 106, 7, 8, 9【10】
小情况 3: 4, 5, 6, 7, 页码范围是: 当前页码减 2 - 当前页码加 22, 3, 4, 5, 63, 4, 5, 6, 74, 5, 6, 7, 85, 6, 7, 8, 9jsp前端代码 ...
Java就业-6k实习薪资-需要掌握的技能
技能篇
Java基础
掌握数据库
MySQL
Redis(加分)
Java Web框架
Spring
SpringMVC
Mybatis
Spring Boot(加分)
前端
html
css
js
jQuery
bootstrap
面试的项目
图书管理系统
个人博客 (MVC架构)
OA自动化办公等等面试篇
刷Leecode
了解Java内存模型、GC、线程安全、线程池
了解ArrayList和HashMap数据结构
理解数据库 索引原理和innodb特点
Spring重点理解IOC和AOP
笔试算法题 推荐冒泡排序、二分查找、二叉树三种遍历其他篇
推荐使用 Intellij IDAEA进行编码
学会Git使用
切换分支
创建分支
add
commit
push
merge
Java基础-Lambda表达式
Lambda 表达式
概念
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。
基本语法
123(parameters) -> expression或(parameters) ->{ statements; }
以下是lambda表达式的重要特征:
可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。
Lambda 表达式实例Lambda 表达式的简单例子:
1234567891011121314// 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> ...
Java基础-反射机制-框架的灵魂
反射机制 实现框架的灵魂在介绍反射之前我们先聊一下注解(开胃菜)
注解
概念:说明程序的。给计算机看的
注释:用文字描述程序的。给程序员看的
定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
注解同时也可以进行一些基本的代码检查
概念描述:
JDK1.5之后的新特性
说明程序的
使用注解:@注解名称
作用分类: ①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】 ②代码分析:通过代码里标识的注解对代码进行分析【使用反射】 ③编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【Override】
JDK中预定义的一些注解
@Override :检测被该注解标注的方法是否是继承自父类(接口)的
@Deprecated:该注解标注的内容,表示已过时
@SuppressWarnings:压制警告
一般传递参数all @SuppressWarnings(“a ...
GO语言学习之路--闭包的概念
闭包1.1 闭包概念闭包是引用了自由变量的函数,被引用的自由变量和函数一同存在,即使己经离开了自由变量的环境也不会被释放或者删除,在闭包中可以继续使用这个自由变量。
简单的说 : 函数+引用环境=闭包
贴士:闭包( Closure)在某些编程语言中也被称为 Lambda表达式(如Java)
在闭包中可以修改引用的变量:
123456str := "hello"foo := func(){ // 声明一个匿名函数 str = "world"}foo() // 调用匿名函数,修改str值fmt.Print(str) // world
1.2 闭包案例一 简单示例12345678910111213141516171819func fn1(a int) func(i int) int { return func(i int) int { print(&a, a) return a }}func main() { f := fn1(1) //输 ...