自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 (手码四万余字)专门为大学生入门的Spring全面详解

Spring1、简介1.1 简介Spring : 春天 ————给软件行业带来了春天2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术Spring是一个轻量级的Java 开发框架,最根本的使命就是:解决企业级应用开发的复杂性,即简化Java开发。两个核心特性

2020-08-07 14:28:59 552

原创 TensorFlow模块简介

TensorFLow框架内构建了很多高层次的API,可以显著减少编写程序的代码量,其中包含众多网络结构相关函数和数据载入、数据处理的方法。

2023-07-14 15:34:31 2998

原创 TensorFlow基础和入门案例

TensorFlow是目前主流深度学习框架之一,其库中几乎包含了所有机器学习和深度学习相关的辅助函数和封装类,官方文档如下图所示。在其框架下做各种神经网络算法的开发可以极大减轻工作量,在入门阶段可以不需要深入理解相关优化算法、分布式的底层细节也可以完成对于深度学习神经网络的搭建、训练、评估、测试和部署步骤。TensorFlow最初是由谷歌脑研究组的研究员和工程师们开发出来的,主要用于进行机器学习和深度神经网络方面的研究,后来逐渐发展成为广泛通用的深度学习主流框架之一。

2023-07-07 08:54:52 1030

原创 python使用matplotlib库绘制数学函数

*

2023-07-04 14:01:04 2182

原创 面试高频知识点总结(二)——Cookie与Session的作用原理

Cookie1、工作原理(1)创建Cookie当用户第一次浏览某个使用Cookie的网站时,该网站的服务器就进行如下工作:①该用户生成一个唯一的识别码(Cookie id),创建一个Cookie对象;②默认情况下它是一个会话级别的cookie,存储在浏览器的内存中,用户退出浏览器之后被删除。如果网站希望浏览器将该Cookie存储在磁盘上,则需要设置最大时效(maxAge),并给出一个以秒为单位的时间(将最大时效设为0则是命令浏览器删除该Cookie);③将Cookie放入到HTTP响应报头,将C

2020-12-10 21:26:11 289 2

原创 面试高频知识点总结(一)——计算机网络

五层协议应用层:为特定应用程序提供数据传输服务,例如 HTTP、DNS 等。数据单位为报文。运输层:提供的是进程间的通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。网络层:为主机之间提供服务,而不是像运输层协议那样是为主机中的进程提供服务。网络层把运输层产生的报文段或者用户数据报封装

2020-12-10 21:21:09 310

原创 非常暴力的搜索算法——深度优先搜索算法

前景导入第一题有1-9 9个数,选取3个数组成以下格式:? + ? = ?数字只能用一次,不能重复/** * 有1-9 9个数,选取3个数组成以下格式: * ? + ? = ? * 数字只能用一次,不能重复 */public class demo1 { public static void main(String[] args) { int min=1; int max=9; for (int i = min; i <

2020-12-03 21:26:45 636

原创 初步了解Dubbo并探究其实现原理

首先,我想用一个例子来导入对Dubbo的认识:我在中国,我的女朋友在美国,我想对我女朋友打一个电话。我会通过手机进行拨号,然后回传到中国的运营商中进行号码转接,再将这个号码通过中国的协议进行编码传送到美国的运营商中,美国的运营商接收到信息后会通过它们的协议进行解码得到一个电话号码,然后在拨到我女朋友的手机,由此,我才能和我女朋友进行通信。在这个过程中,通话多久就要多少话费,这样就需要进行全程监控。由上面的这个例子基本说出了Dubbo的基本功能和大致流程。了解RPC在此之前,我们需要了解一下什么是R

2020-12-01 16:24:55 253 1

原创 Spring MVC基本原理图解

2020-11-28 16:39:54 171

原创 SpringBoot整合Swagger2

Swagger2简介在前后端分离开发中,为了减少与其他团队的沟通成本,一般构建一份RESTFUL API文档来描述所有的接口信息,但是这种做法有很大的弊端,分别说明如下:接口众多,编写RESTful API文档工作量巨大,因为RESTful API文档不仅要包含接口的基本信息,如接口地址,接口请求参数以及接口返回值等,还要包含HTTP请求类型,HTTP请求头、请求参数类型、返回值类型、所需权限等。维护不方便,一旦接口发生变化,就要修改文档。接口测试不方便,一般只能借助第三方工具(如postman)

2020-11-18 15:38:49 298

原创 SpringBoot实现定时任务

定时任务是开发中比较常见的功能之一,如定时统计订单数、数据库备份、定时统计博客访客等,简单的定时任务可以直接通过Spring中的@Scheduled注解来实现,复杂的定时任务则可以通过集成Quartz来实现。Scheduled@Scheduled是由Spring提供的定时任务注解,使用方便,配置简单,可以解决工作中大部分的定时任务需求。使用方式如下:(1)、创建工程首先创建一个普通的Spring Boot Web工程,添加Web依赖即可。(2)、开启定时任务在项目启动中添加@EnableSche

2020-11-17 21:18:15 1014

原创 SpringBoot实现邮件发送

发送前准备使用QQ邮箱发送邮件,首先要申请开通POP3/SMTP服务或者IMAP/SMTP服务。SMTP为简单邮件传输协议,它定义了邮件客户端软件与SMTP服务器之间,以及SMTP服务器与SMTP服务器之间的通信规则。也就是说,xxx@qq.com 用户先将邮件投递到腾讯的SMTP服务器,这个过程就使用了SMTP协议,然后腾讯的SMTP服务器就将邮件投递到网易的SMTP服务器,这个过程依旧使用了SMTP协议,SMTP服务器就是用来接收邮件的。而POP3是邮局协议,它定义了邮件客户端与POP3服务器之间的通

2020-11-16 15:22:26 372

原创 springboot访问本地(磁盘)图片

@Configurationpublic class SpringMvcConfigurationInitializer extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //上传的图片在c盘下的/opt/plate目录下,访问路径如 下:http://l

2020-11-09 20:26:32 1388

原创 SpringBoot项目针对跨域问题的三种解决方案

1、什么是跨域要了解跨域,先要知道同源策略。同源策略是由 Netscape 公司提出的一个著名的安全策略,所有支持 JavaScript 的浏览器都会使用这个策略。所谓同源是指:协议,域名,端口 全部相同。浏览器从一个域名的网页去请求另一个域名的资源时,协议,域名,端口任意不同,都会出现跨域问题。现实工作开发中经常会有跨域的情况。因为公司会有很多项目,也会有很多子域名,各个项目或者网站之间需要相互调用对方的资源,所以跨域请求是避免不了的2、解决跨域的几种方案、方法一:注解在Spring Bo

2020-11-08 20:55:24 639

原创 Spring Boot 整合WebSocket(一)

WebSocket简介WebSocket是一种在单个TCP连接数进行全双工通信的协议,使用WebSocket可以使得用户端和服务器之间的数据交换变得更加简单,它允许服务器主动向客户端推送数据。在WebSocket协议中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行数据双向传输。WebSocket的特点:WebSocket使用时需要先创建连接,这使得WebSocket成为一种有状态的协议,在之后的通信过程中可以生了一部分状态信息(例如身份认证等)。WebSocket连

2020-11-06 16:14:07 973

原创 初步学习SpringBoot 整合FreeMarker

FreeMarker简介FreeMarker是一个非常古老的模板引擎,可以在Web环境或者非Web环境中。与Thymeleaf不同,FreeMarker需要经过解析才能够在浏览器中展示出来。FreeMarker不仅可以用来配置HTML页面模板,也可以作为电子邮件模板、配置文件模板以及源码模板等。SpringBoot整合FreeMarker步骤1、创建项目,添加依赖首先创建Spring Boot项目,然后添加spring-boot-starter-freemarker依赖,代码如下:<?xml

2020-11-05 15:59:11 630

原创 初步学习Spring Boot整合Thymeleaf

Thymeleaf简介Thymeleaf是新一代jaa模板引擎,类似于Velocity、FreeMarker等传统Java模板引擎。与传统Java模板引擎不同的是,Thymeleaf支持HTML原型,既可以让前端工程师在浏览器中直接查看样视,也可以让后端工程师结合真实数据查看效果。Spring Boot整合Thymeleaf步骤1、创建工程,添加依赖新建一个SpringBoot工程,然后添加spring-boot-starter-thymeleaf依赖,代码如下:<?xml version=

2020-11-05 15:28:28 1143 1

原创 Spark基础解析

一、Spark概述1、什么是SparkSpark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。项目是用Scala进行编写。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkCore、SparkSQL、Spark Streaming、GraphX、MLib、SparkR等子项目,Spark是基于内存计算的大数据并行计算框架。除了扩展了

2020-10-24 13:13:48 517

原创 SpringBoot与Redis整合的一个小项目(附全部代码)

1、引入redis的依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.0.0.RELEASE</version></dependency>2、假设我们要操作的类是Cof

2020-08-28 10:58:52 973

原创 序列化和反序列化的详解以及在java中的实现

一、基本概念1、序列化和反序列化的定义:Java序列化就是指把Java对象转换为字节序列的过程。Java反序列化就是指把字节序列恢复为Java对象的过程。序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。反序列化的最重要的作用:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。总结:核心作用就是对象状态的保存和重建。(整个过程核心点就是字节流中所保存的对象状态及描述信息)2、json/xml的数据传递:

2020-08-28 10:47:17 433

原创 SpringBoot与mybatis整合的一个小项目(附全部代码)

项目文件结构:详细流程1、引入Mybatis我们使用 IDEA 建立一个 SpringBoot 项目,初始化组件部分选择 Web、JDBC API、MyBatis Framework、MySQL Drive。项目初始化完成之后,可以在 pom.xml 文件中看到如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId&

2020-08-26 17:37:03 1056

原创 设计模式简要分析与举例(附全部代码)

设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是代码可用性的延伸设计模式分类:创建型模式,结构型模式,行为型模式。其中设计模式主要有:代理模式,单例模式,工厂模式,观察者模式,装饰类模式。代理模式详见:JDK动态代理单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。意图:保证一个类仅有一个

2020-08-25 14:47:21 2399

原创 Vue中使用axios进行前后端的数据传输(附详细代码)

Vue界面在前后端交互的过程中使用的是AJAX的方式来进行的数据交互,我们一般来说使用较多的是Vue-resource 以及 axios 这俩个组件来实现Vue的前后端的交互。但是在Vue1.0中官方推荐使用vue-resource,在Vue2.0的时候,官方推荐使用axios。并且在之后对Vue-resource不再进行维护更新。所以今天我就来说一说axios的使用。安装组件npm install axios --save然后在main.js文件中引入,axios不能使用use。import V

2020-08-20 09:36:44 13215

原创 C#+Vue实现文件的前后端传输完整版(附完整版代码)

最近笔者也遇到了这样的一个需求,页面上传一张图片给后台,后台存储在一个文件夹中,以便后续在调用该图片。我也看了很多很多的博客,大都是一半都在说前端的事情 ,一半都在说后端的事情,没有很好的衔接在一起,经过一下午的研究,笔者终于实现了该功能。下面就有笔者慢慢的说吧。第一步:在Vue中创建一个页面用于图片上传。<template> <div class="Thisform"> <el-form ref="form" :model="form" label-wid

2020-08-06 18:05:00 13901 6

转载 专门为新手写的消息队列详解

什么是消息队列?我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ。另外,我们知道队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。比如生产者发送消息1,2,3…对于消费者就会按照1,2,3…的顺序来消费。但是偶尔也会出现消息被消费的顺序不对.

2020-07-28 09:56:20 218

原创 C#流的基本认识和基本使用

首先我们来看一下流的基本体系框架。StreamReader常用方法汇总:Close():关闭流Peek():获取流的下一个字符的整数,如果没有获取到字符,返回-1。Read():获取流的下一个字符的整数Read(char[] char,int start,int length):从指定位置开始读取字符到缓冲区ReadLine():从当前流中读取一行字符并将数据作为字符串返回。ReadToEnd():读取来自流的当前位置到结尾的所有字符。实例:读取文件信息class Program

2020-07-23 14:38:27 830

原创 C#基于TCP协议的Socket通信实现的客户端与服务器端交互

开发工具:VS2019,控制台应用程序TCP协议是一个Stream的协定,就像是电源一样,只要不断电,Stream和电流一般,Socket即为插座,TCP是支持可靠、双向、连接架构的字节数据流。重要的C# API说明IPAddress addr = IPAddress.Parse(“127.0.0.1”);System.Net.IPAddress,IP地址的对象表示方法,将字符串IP地址转换为IPAddress实例。IPEndPoint ipe = new IPEndPoint(addr, 21

2020-07-23 14:19:10 2048

原创 C#反射机制的一些小笔记

已知一个泛型或者一个类,但是不清楚这个泛型或者类中的具体属性时,就可以用反射来获取。Type type=typeof(泛型、类);Type type=实例对象.GetType();通过反射可以获取的内容MemberInfo : 成员ConstructorInfo : 结构FieldInfo : 类型信息字段MethodInfo :提交字段PropertyInfo : 属性EventInfo : 事件获取各种信息的方法获取类型:Type[] typeLi

2020-07-22 10:57:54 156

原创 c#委托详谈

最近小编用到了很多次的委托,就决定找个机会总结一下。定义C#委托类似于C或C++中函数的指针,委托是存有对某个方法的引用的一种引用类型变量,引用可以在运行时被改变。委托特别用于实现事件和回调方法。声明委托格式:public delegate 类型 函数名(参数类型 参数名)例:public delegate int MyDelegate(string s);internal delegate void FeedBack(int value);上面的第一个委托可被用于引用任何一个带有单一

2020-07-22 10:42:46 143

原创 Vue入门——我的第一个vue网站

今天我们来谈一谈Vue的相关事宜。首先

2020-07-13 16:57:42 498

原创 微信小程序支付功能实现全过程简析

今天小编带大家来分析一下微信小程序支付功能的实现全过程。先附一张小程序支付时序图:整体流程:在所以操作之前,我们得先有微信开发者账号,还得有自己的商户号和商品密匙。微信端请求下单之后,会调用wx.request接口发起网络请求。服务器接收到请求之后会调用auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key。服务器端收到openid之后会再去调用支付统一下单接口,具体内容下文会说。返回一些数据,其中最重要的就是prepay_id。服

2020-07-10 11:28:47 4316

原创 微信小程序授权登录全过程解析(附代码)

今天小编对于微信小程序的登录功能比较感兴趣,也是由于工作需要,就大概研究了一下。这里先附一张小程序的登陆整体流程图。整体流程:微信端点击登录按钮后会去调用 wx.login接口,如果接口调用成功,它会返回一个code值。我们就把这个code值放到缓存中,以变以后来调用。与此同时,微信端调用wx.getUserInfo去获取用户的基本信息,包括nickname、avatarUrl等。用以显示在页面上。获取到code值后,微信端会调用wx.request接口,发起网络请求,到服务器端。服务器端接

2020-07-10 11:01:21 7938 4

原创 get,post,put,delete的含义简析

GET请求:GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。PUT请求:PUT请求是向服务器发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次的PUT操作,其结果并没有不同。POST请求 :同PUT请求,但该请求会改变数据的种类等资源,就像数据库的ins.

2020-07-07 16:01:03 178

转载 Spring Boot基础配置——@SpringBootApplication底层浅谈

@SpringBootApplication注解是加在项目启动类上的。@SpringBootApplication实际上是一个组合注解,定义如下:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterTyp

2020-06-27 15:45:00 225

原创 Java垃圾回收机制详谈

垃圾回收是在内存中存在没有引用的对象或者超过作用域的对象时进行的。垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。垃圾回收机制中的算法Java语言规范没有明确的说明JVM使用哪一种垃圾回收算法,但是任何一种垃圾回收算法一般要做两件基本的事情:(1)、发现无用信息对象。(2)、回收无用对象占用的内存空间,是该控件可被程序再次使用。1、引用计数法引用计数法是垃圾收集器中的早期策略。在这种方法中,堆中每个对象实例都有一个引用计数。当一个对象被创建时,且将该对象实例分配给一个变量,该变量计

2020-06-22 10:54:33 222

原创 创建线程的四种方式

创建线程的四种方式:继承Thread类实现Runnable接口实现Callable接口使用Executors工具类创建线程池1、继承Thread类定义一个Thread类的子类,重写run方法,将相关逻辑实现,run()方法就是线程要执行的业务逻辑方法创建自定义的线程子类对象调用子类实例的star()方法来启动线程public class MyThread extends Thread { @Override public void run() {

2020-06-17 21:10:46 219

原创 LeetCode第二题——两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9返回 [0, 1]方法一:最简单的暴力两次for循环class Solution { public int[] twoSum(int[] nums, int target) { for (int i

2020-06-16 21:12:20 227

原创 并发编程的一些基本概念

并发编程的三要素:原子性:一个或多个操作要么全部执行成功要么全部执行失败。可见性:一个线程对共享变量的修改,另一个线程能够立即看到。有序性:程序执行的顺序按照代码的先后顺序执行。并发编程的优缺点:优点:充分利用多核CPU的计算能力,通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升。方便进行业务拆分,提高系统并发能力和性能。在特殊的业务场景下,先天就适合于并发编程。现在的系统动不动就要求百万级或者千万级的并发量,而多线程并发编程正是开发高并发系统的基础,利用好多线程机制

2020-06-15 22:03:33 277

原创 Java关键字浅析——final、static、this、super

在此之前,我们先来说一下访问修饰符:private:在同一类可见。default:在同一包可见,不使用任何修饰符。protected:对同一包的类和所有子类可见。public:对所有类可见final关键字用于修饰类、属性和方法;被final修饰的类不可以被继承。被final修饰的方法不可以被重写。被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容还是可以改变的。final,finally,firalize的区别:fi

2020-06-12 22:22:30 229 1

原创 SpringBoot对静态资源的映射规则(源码分析)

WebMvcAutoConfiguration的源码public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handling disabled"); } else {

2020-05-24 15:51:13 257

Redis-Spring所需包汇总.rar

这个压缩包很适合新手,我把关于redis所需的所有的包都放在了一起。包括commons-pool2-2.4.3.jar,jedis-2.9.0.jar,spring-data-commons-1.8.6.RELEASE.jar,spring-data-redis-1.8.6.RELEASE.jar。

2020-05-04

jacksonjar.rar

页面自动生成JSON页面所需要的包集合,包括多个版本,适应各个Spring版本。包括2.10,2.11,2.9 。 明细:jackson-annotations-2.9.8.jar jackson-annotations-2.10.0.jar jackson-annotations-2.11.0.jar

2020-04-29

jsp——简单的音乐管理系统

这是一个适合新手借鉴的音乐管理系统,主要是jsp中一些组件的使用和对数据库的各种操作。其中还包括一些组件的高级操作,比如gridview的一些操作(代码绑定,不是数据库绑定),所以更能让新手理解gridview。其中还包括前端js的一部分内容,如幻灯片播放和时钟显示。

2020-01-18

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

TA关注的人

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