自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 4.项目部署相关

简介本章主要聊聊项目部署至服务器的过程,大致包括服务器的申请,域名解析,宝塔面板配置安装等等过程。项目导出Springboot项目是自带tomcat容器的,可以直接导出为jar,机器上装有java环境便可运行,但同样的我们也可以使用传统的方式打成war,然后放入机器中的tomcat的容器进行运行。前者还是比较省事的,本次部署我也是使用的这种方式。使用的开发工具是Idea,导出项目非常方便,首先是得在pom中进行导出设置:packaging节点用来配置我们是导出为jar还是war。其次是点击ide

2021-06-14 14:27:22 302

原创 3.配置阿里云OSS

前言本章主要介绍项目中配置阿里云OSS对象存储以及过程中的一些问题。个人对OSS对象存储的理解OSS对象存储中有几个比较关键的名词和参数,比如对象Object,存储空间Bucket,访问域名endpoint以及访问秘钥accessKey。个人理解的话,OSS对象存储是将数据以对象的方式存储在一个容器中,通过特定的访问秘钥从访问域名中读取自己想要的数据,而使用这种方式访问数据优点就是可以减少我们项目的负载,因为数据交给了OSS存储,项目中只需要一个地址便可以访问到,其次就是较为安全,将图片或是视频存在项

2021-06-14 14:13:15 1630

原创 2.项目开发

前言本篇将记录整个项目开发中遇到的一些坑,以及学到的技术,本人技术有限,如有遇到不专业之处请多海涵。。。。关于接口开放前面有说到,本项目前端的数据是从从后台开放的接口取得,而目Guns框架是具备权限管理功能的,并且对接口的放行也做了权限管理,需要在系统中将不需要过滤的接口填入,才能请求到该接口。而目前最新版的框架也是将不需要过滤的url存在数据库的一张名为sys_config表中了通过逗号将放行的接口隔开,即可完成放行操作。在刚接触到这个框架时,也是研究了好久,接口死活没法请求到,在项目中也是各种

2021-06-14 13:44:10 302 1

原创 1.前期准备

前言最近接了一个某公司的首页网站项目,网站内容很简单,与常规的公司首页相同,需要显示视频、图片文字等内容,可以进行表单提交,并有配套的后台管理系统能够管理用户提交的表单,以及可以对页面的元素进行配置。写下本次博客的目的是为了记录整个开发过程中的经验之谈,以及一些踩坑经验。接下来简述一下前期的准备吧。项目设计前端界面项目分为前后端设计,由于后期需求的增加,前端做了pc端以及移动端两个页面,使用html5以及js实现。涉及到版权问题,就暂时不展示页面效果了,大致的布局图如下:整个页面中的文字、视频以

2021-06-14 13:10:20 203 1

原创 JAVA8新特性之Stream API(一)

除了Lambda表达式,JAVA8还出现了一些新特性来配合Lambda表达式进行简化编程,如函数式接口,今天要分享的是JAVA8又一大特性——Stream API,这是一个方便我们对数据操作的新特性。所谓Stream,从字面理解是“流”的意思,个人理解是它充当的是一个类似管道的中间者,通过将数据在一端接收过来,进行一系列我们需要的操作,最后将结果从另外一端输出,成为我们最后需要的数据。由于是起中...

2020-03-01 14:11:28 267

原创 Java8新特性之四大内置核心函数式接口以及方法引用

在了解了Lambda表达式后,发现它适用于函数式接口,java8内置了许多函数式接口,而为了使Lambda表达式在某些情况下能够更为精简,就出现了方法引用这一新特性,接下来分别看看这两个新特性究竟是什么四大内置核心函数式接口:所谓函数式接口,指的是接口中只含有一个抽象方法的接口,用@FunctionalInterface注解可以对该接口进行检验,为了配合lambda表达式使用,java8内置了...

2020-02-26 18:42:31 425

原创 JAVA8新特性Lambda表达式

经常听到大佬们说java8有几个新特性特别好用,lambda表达式、stream集合等等,抱着好奇心我也去学了学lambda表达式,发现的确是方便了不少,接下来分享一下我的理解吧:lambda表达式最明显的结构,就是 -> 符号,也称箭头操作符,它可以使方法作为参数一样自由传递,它的好处在于,可以精简许多代码首先说一下表达式的构成:->//箭头左边代表的是参数列表,右边是要执行的...

2020-02-25 14:30:40 441

原创 6.GO语言数组

数组这一节开始就来聊聊Go中的容器类型了,作为一个学Java的表示狂喜,学过Java的同学一定知道Java中容器类型之复杂(各种集合框架),哈哈。定义数组和Java中数组一样,Go中的数组依然是固定长度,同一数据类型,自动填充默认值的特点。下标当然也是从0开始。声明方式1,固定长度,在指定位置赋值:var arr1 [10]intarr[0]=100arr[3]=200fmt.Println(arr1)结果:[100 0 0 200 0 0 0 0 0 0]这里发现Go中的pr

2021-09-27 20:15:53 518

原创 5.GO语言指针类型

指针类型之前并没有学过C家族的语言,不知其中指针的可怕,但在浏览各种技术博客时时会经常看到类似的字眼,于是对指针这个词有了一种莫名的高大上的感觉。其实Java中也是存在指针的概念的,但不过Java中封装的思想将它很好的隐藏起来了。哈哈,跑题了,来看看GO语言中的指针吧。指针从比变量的角度来看指针,一个变量我们经常看到的是值,比如var int1 int=100,100就是int1的值,而int1存在内存中,系统会为其划分一块空间,这块空间有一个编号,这个编号就是内存地址。而指针就是存储这个内存地址的变

2021-09-27 20:14:54 419

原创 4.字符、字符串以及布尔类型

字符、字符串以及布尔类型因为字符与布尔类型内容相对来说较少,就和字符串类型放在了一起(凑篇幅)哈哈,话不多说,接下来一个个看。字符类型在Go语言中,实际上字符类型是并不存在的,个人猜测是因为Go语言崇尚精简,为了省下几个关键字。而实际上,Go语言的byte类型其实就是int类型。接下来我们通过例子来看:var char1 byte='0'char2:='风'fmt.Printf("char1=%c,char1=%T\n",char1,char1)fmt.Printf("char2=%c,cha

2021-09-27 20:13:15 420

原创 3.GO语言数值类型

数值类型和任何语言一样,数值类型肯定是Go类型中必不可少的一种数据类型,但同时,Go中的数值类型又有许多不同于其他语言的地方。接下来来看看吧。分类从大类上看,Go的数值类型分为整形和浮点型两种,而Go中的浮点型不像java分成了单精度(float)和双精度(double)两种。总的来说,Go的数值类型按照占字节的大小分为了好几种。整形int因为种类繁多,我将整形称为int系列,哈哈。首先int类型分为有符号与无符号两种。有符号位指的是该数的最高位可以用负数来表示,这里就不详细说了,有兴趣的可以看看

2021-09-12 21:54:44 317

原创 2.GO语言变量声明

变量声明go中声明变量有诸多方式,个人感觉花里胡哨的,接下来就来看看吧。Go中的数据类型提到变量就不得不先提到Go中的数据类型,几种常用的数据类型几乎在每个编程语言中都会有,但他们还是有一些区别的。Go中数据类型分为数值类型、浮点类型、字符、字符串、布尔、指针、数组、切片以及map几大类,详细介绍及用法在后面的文章中会一一提到。几种声明变量的方法首先在项目下新建一个包,idea中对于go语言new的选项中并没有package,我们直接new一个目录就好了。接着新建一个go文件,这里就叫main.

2021-09-08 21:06:06 188

原创 关于本栏目的介绍

前言又一次步入了实习生活了,此次实习的公司并没有使用Java语言开发产品,目前主要使用的是PHP,而和小组长聊到未来架构要向GO语言转型,并且建议我可以学习学习GO,在有了Java的基础上,应该学起来不会很困难吧,哈哈。于是从零开始吧。此次学习使用的是Mac,因此后续的相关内容都是在Mac平台上完成。...

2021-09-06 21:11:10 166

原创 1.GO概述以及环境搭建

Go概述比较懒,就从网上随便摘了一段。。。Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。总之,GO语言相比于Java,入门会简单很多。(自我感觉),当然这里随便看看吧,

2021-09-06 21:07:48 310

原创 Redis环境搭建

Redis概述简介Redis(Remote Dictionary Server ),即远程字典服务是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis作用用于内存存储、持久化。但数据存在内存中容易丢失,比如断电或是服务端关闭都会导致数据丢失,因此Redis也支持持久化(rdb、aof)用于高速缓存用作发布订阅系统(pub/sub)地图信息分析(geospatial )计数器(计

2021-08-10 18:20:59 460

原创 SpringBoot配置文件

SpringBoot项目不同于SSM框架繁多的配置文件,生成项目时若没有特殊需要,一般只需要一个配置文件,默认在项目根目录下生成一个application.properties文件,但官方更加推荐我们使用另一格式,也就是yml格式的文件。YAML语法配置文件的作用之前有说到,SpringBoot的自动装配已经帮我们默认配置好了许多参数,但有时候我们需要自定义一些参数,不想使用默认的,在配置文件中重新填写即可。例如,SpringBoot默认配置项目的运行端口号为8080,在配置文件中我们可以修改:

2021-08-10 16:15:24 201

原创 NoSQL概述

什么是NoSqlNoSqlNoSql并不是一个完整的词,即它的意思不是没有Sql!,而是Not Only Sql的缩写,即不仅仅是Sql。泛指非关系型数据库,在web2.0时代,关系型数据库在处理高并发和超大规模的动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。而 Redis便是这其中的一个典型代表。传统关系型数据库存储数据采用类似表格中行、列

2021-08-06 11:32:40 376

原创 SpringBoot初识

SpringBoot初识简介SringBoot是基于Spring开发的,它本身并不提供Spring框架的核心特性及扩展功能,只是用来快速、敏捷地开发基于Spring框架的应用。换句话说,SpringBoot并不是用来替代Spring的解决方案,而是和Spring框架紧密贴合用于提升Spring开发者体验的工具。SpringBoot以约定大于配置的核心思想,默认已经配置了许多设置,多数SprinBoot应用开发时只需要少量Spring配置,同时它也集成了许多常用的第三方配置(例如Redis、MongoDB

2021-08-05 17:56:26 197

原创 Java数据结构之稀疏数组

稀疏数组适用于一个数组中元素大部分为0,或者为同一个值的数组,使用稀疏数组可以减少数组中的重复部分而起到提高效率的目的,以棋盘与棋子为例,我们具体看看如何实现它。假设在一个11*11的棋盘中,第二行第三列有一颗黑子,第三行第四列有一颗白子,用一张简单的图如下:此时我们用一个二维数组来表示该棋盘上的情况,0为该位置上没有棋子,1为该位置上有黑子,2为该位置上有白子,声明一个二维数组,并输出它: //创建一个原始的二维数组11*11 //0:表示没有旗子,1表示黑子,2表示白子

2020-05-20 14:48:05 265

原创 JAVA集合工具类Collections及Vector

就像数组有工具类Arrays一样,JAVA也同样在util包中提供了一个供集合使用的工具类Collections。Collections工具类包含了很多功能,这里就提两大块:排序以及查找、替换首先说一下排序,包含如下几种:reverse(List):反转List中元素的顺序shuffle (List): 对List集合元素进行随机排序sort(List):根据元素的自然排序对指定List...

2020-05-07 17:00:07 392

原创 JAVA集合之Map集合

除Collection集合外,JAVA还有另一大体系集合,Map集合,相较于Collection集合,Map集合存储元素方式不同,该集合具有key(键)-value(值)映射关系,存储的元素是成对存在的对象,而key值不允许重复。Map与Collection相同,都是接口,而相较于Collection没有那么多的分类,Map集合主要包含3个实现类HashMap、Hashtable以及TreeSe...

2020-05-03 21:21:28 954

原创 JAVA集合的遍历

在遍历数组时,我们可以使用增强for循环进行遍历,同样,遍历集合也可以使用增强for循环,而在collection接口中,还存在一个用于遍历集合的方法Iterator,被称为迭代器,使用这两种方式,都可以对集合进行遍历。首先我们使用增强for循环对一个集合进行遍历:@Test public void test1(){ ArrayList a1=new ArrayList...

2020-05-03 16:37:55 452

原创 JAVA集合之Set系列集合

除List系列集合外,Collection集合还有另一子类Set集合,该系列集合主要包含TreeSet以及HashSet集合,而HashSet又有一个子集合LinkedHashSet,今天就来说一说这三个集合。首先说Set集合,该集合的特点是其中的元素无序,并且不允许重复,接下来先看看该集合的子集合HashSet。它是Set接口的典型实现类,使用哈希算法存储元素。首先新建一个HashSet并存入...

2020-04-25 21:36:45 505 1

原创 JAVA集合之list系列集合

在了解了java的集合根接口Collection之后,今天来说一下它的的一大子接口list集合以及其常用的子接口。list集合位于java.util.List包中,相比数组无法确定有效元素这一弊端,List系列集合存在索引值这一概念。因此该集合存储的元素特点是有序的,并且允许有重复元素。而list集合又有几个常用的实现类:ArrayList、LinkedList、Vector,vector集合...

2020-04-21 17:53:38 395

原创 JAVA集合类(一)

集合是JAVA中用途很广泛的一类容器,与数组类似,集合用于存储、获取、操作对象。但它与数组又有一些区别。首先我们可以看看数组的一些弊端:1.数组的长度是不可变的,在我们声明时指定好长度就不可以再变化2.数组中没有提供可以查看有效元素个数的方法而集合将这两个弊端很好的进行了解决,但同时,集合也有局限性,即它只能存储对象JAVA将集合按照存储的特性分为了很多种,即不同的集合用于存储不同的对象...

2020-04-20 14:40:27 240

原创 JAVA反射(三)

关于JAVA的反射机制,动态代理是一大重要的功能,今天主要就来说一说动态代理。提到代理,想必大家都不陌生,简单的理解就是代理充当着代替办某件事的一个角色,既然有动态代理,那就有静态代理,先看看一个比较简单的静态代理:假设我们有一个名为Consumer消费者的接口,其中包含购买饮料食物buyDrink和购买食物buyFood的方法:public interface Consumer { ...

2020-04-10 15:33:08 187

原创 JAVA反射(二)

在之前有写了关于JAVA反射的理解以及几种用法,今天主要想记一下常用一些功能以及一些注意的地方,为了使功能尽量全面,我们以一个包含比较丰富的实体类为例:首先是新建一个自定义的注解、以及接口:接下来新建一个Creature类:接下来新建一个Person类,继承自Creature类,实现上面的自定义接口和一个自带的Comparable接口,以及引用自定义注解:其中Person类属性有姓...

2020-04-06 17:10:58 1134

原创 JAVA反射(一)

反射作为JAVA特有的一个功能,有必要了解以及掌握。那么首先我们得清楚反射是什么,什么时候使用反射,反射能做什么。提到反射,就不得不联系到Java程序的运行状态,它分为两种:1.编译时:通过Javac命令,生成一个或多个.class字节码文件(每个.class文件对应一个类)2.运行时:通过Java命令,将生成的一个或多个.class字节码文件加载到内存中。(由JVM提供的类加载器完成)什...

2020-04-03 17:09:48 273

原创 JAVA多线程(四)

今天想写的是多线程的另一个用法,线程通信,以及由其出现的一个经典案例:生产者消费者模式。所谓线程通信,又叫线程交互,指的是多个线程在完成某些任务时,多个线程之间发生的通信,先举个简单的例子:假设我们需要使用多线程打印1-100之间的数,要求的是有两个线程交替进行打印:首先新建一个线程类重写run方法并写入循环打印语句,由于需要反复打印,为了方便我们直接套上死循环:i是一个共享数据,为...

2020-03-29 14:14:03 176

原创 JAVA多线程(三)

在之前运用多线程练习时,写了一个模拟三个窗口售票的简单程序,但其实它还存在许多小问题,也就是我们所说的多线程安全问题,我们先来看看之前的:首先我们有100张票要卖:卖票的线程类这样写:为了使问题更加明显,我们加上睡眠方法接下来用一个测试类新建三个子线程,并且启动:查看运行结果:在这两处我们发现,卖出的票存在剩余票无序、重复剩余,甚至还有余票为负数的情况,那么这样的问题是怎么来...

2020-03-26 16:38:42 180

原创 JAVA多线程(二)

在之前了解了JAVA多线程的两种创建与启动方式之后,今天要说的是结束线程,以及对线程的控制,话不多说,先看看结束线程。假如有这样的一个线程类:不难看出如果该线程一旦启动,就会无限循环,而这时我们想通过另一个线程让其停止,比如主线程:这里我在主线程中写了一个循环语句,当i的值等于100时,调用stop()方法终止线程,但很明显,stop()方法上划上了一条横线,说明该方法不再推荐使用,因为...

2020-03-24 15:37:09 179

原创 JAVA多线程(一)

最近发现自己对JAVA多线程这一块的了解可以说是完全为0,于是开始对多线程基础进行了一些学习,今天主要来说一说JAVA多线程的一些基本用法吧说到线程,那么我们得先知道线程是什么,为什么要用多线程,而提到线程,我们就还得了解另外两个与其密切相关的名词,程序与进程作为一名程序员,那么对程序肯定不陌生,官方的解释是,程序是为了完成完成某项特定的任务,使用某种语言,编写的一组指令的集合。说白了程序也就...

2020-03-23 15:43:27 192

原创 JAVA8新特性之新时间与日期API

花了许多时间在JAVA8新特性的学习上,今天算是可以收尾了,今天要说的是JAVA8提供的新时间与日期API,在以前我们对时间进行处理时,会遇上许多小问题,像是格式化的问题,或是时区的问题等等,而JAVA8很好的解决了这些问题,接下来我们看一看:首先是表示本地时间的三种:LocalDate(本地日期)、LocalTime(本地时间)、LocalDateTime(本地日期+时间),它们使用的是ISO...

2020-03-17 15:24:15 268

原创 JAVA8新特性之Optional类以及接口默认方法

为了尽量避免空指针在编码中给我们带来的问题,JAVA8提供了一个包装类Optional来解决空指针异常的问题,该类中包含了许多的方法,一起看看Optional.of(T t)该方法用于创建一个Optional实例,T为我们想要创建的类型,比如我们想创建一个Student类型的对象,可以这样写:Optional<Student> optional=Optional.of(new S...

2020-03-12 19:43:20 266

原创 JAVA8新特性之StreamAPI(三)

继之前了解了StreamAPI的创建以及中间操作后,今天主要说一下StreamAPI的最后一步,也就是终止操作。终止操作主要有查找与匹配,以及归约与收集,这些操作很像我们平时的sql操作,也比较好理解。首先看看查找与匹配,有这样几种操作:allMatch-检查是否匹配所有元素anyMatch-检查是否至少匹配一个元素noneMatch-检查是否没有匹配所有元素findFirst-返回第...

2020-03-09 17:14:57 620

原创 JAVA8新特性之StreamAPI(二)

在上一次初步了解了Stream的创建和部分中间操作后,今天我们继续来了解Stream的其他中间操作,以及终止操作。上一次我们提到了中间操作的筛选与切片,今天我们说一说映射、排序映射:假如我们现在有这样一个数组:List<String> list=Arrays.asList("aaa","bbb","ccc","ddd","eee");这是一组含有小写字母的集合,我们想将该数...

2020-03-09 15:21:16 193

原创 记一次简单的sprigboot+jpa的增删改查

最近,在慕课网上自学了springboot的一些初级用法,也在使用途中,了解了一些相关的知识,接下来记下我的学习成果:本次记录的是使用springboot+jpa对mysql数据库的简单增删改查,在新建了项目后,这里我们以学生为例,对其信息进行相关的操作。由于需要与mysql进行交互,先引入相关依赖: <dependency> <groupId&g...

2020-02-21 17:31:07 277

原创 使用bootstrap-multiselect插件进行前后台数据交互

上一次分享了bootstrap-multiselect插件的一些基本用法,今天想来记下使用该插件的一个实际用途,在公司的项目中,我使用了该插件用于增或者修改某一个对象所关联的属性,由于公司使用的前多选下拉框的中的子项便是我想要关联的子项,那么今天就简单的来分享一下我的思路首先是对下拉框的一个初始化:$(document).ready(function () { initSelectBox()...

2020-02-15 13:56:41 888

原创 使用bootstrap-multiselect插件

最近,公司有项目中需要用到多选下拉框,下拉框的option从后台动态创建,多选后提交表单并存至相应的数据库表,经过网上查阅资料以及自己的一番研究后,发表一下自己对该插件的一个用法和理解:使用的插件是boostrap中的multiselect插件,所以在js或是jsp中得引入相应的js文件以及css样式文件:<link rel="stylesheet" href="css/bootstra...

2020-02-14 17:39:11 790

翻译 JAVA缓冲流翻译

原文链接原文:Buffered StreamsMost of the examples we’ve seen so far use unbuffered I/O. This means each read or write request is handled directly by the underlying OS. This can make a program much less e...

2020-02-06 15:00:17 237

空空如也

空空如也

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

TA关注的人

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