自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 一个简单的语言模型(transformer)的使用,代码逐行解析版

快速使用transformer来完成一个训练 测试任务

2022-09-21 16:25:15 1045

翻译 Transformer详细代码逐行解析(B站搬运手敲版)nlp基础

这是目前做nlp方向效果最好的模型,适合研一,代码解析很详细

2022-09-21 16:20:49 1395 1

原创 java常见面试问题

1谈谈你对面向对象的理解:面向对象和面向过程经常拿来一起比较,面向过程 就是根据功能的实现逻辑,然后一步一步的设计方法完成。面向对象就是把里面每个对象抽象出来,定义它独属的方法,有点类似于模块化开发,对象只负责自己的方法。然后功能实现的时候就去调用对应对象的方法,这样相对于面向过程来说,它更容易复用维护和扩展,而面向过程的性能要高一些。它有三个重要的性质:封装继承和多态。封装是指将具体的实现逻辑不对外开放,对外暴露方法名能让外部调用即可。继承,继承父类的方法然后子类可以进行拓展。多态:父类的引用指向子类

2021-03-13 13:12:23 361

原创 2021-02-05

固定的字节流io书写方式//先创建输入和输出流 FileInputStream fis = new FileInputStream(); //来的文件路径 FileOutputStream fos = new FileOutputStream();//去的文件路径//读写数据 byte[] b=new byte[1024]; int len; while((len=fis.read(b))!=-1){ fos.write(b,0,le

2021-02-05 14:34:45 136

原创 通俗易懂的手写单例模式

这个是面试的时候经常会问到的,顺便让你手写一个单例模式单例模式:一个类只创建一个实例,并且系统都使用这一个实例。常用的单例模式有两种:1 饿汉式的// 饿汉式是 直接就只实例一个对象,你要用,我就返回给你//但是有个问题,因为是提前写好的,可能会浪费空间,因为你占用了空间,但是可能没有起作用。public class Hungry { //不使用就浪费 private byte[] data1 =new byte[1024*1024]; private byte[] d

2021-01-20 11:45:19 369

原创 redis实现存储帖子的点赞状态和数量

1 对redis进行配置并封装一个redis工具类@Configuration //编写redis的配置类public class RedisConfig { @Bean //参数声明了连接工厂 public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = n

2020-11-07 20:41:34 1734

原创 面向切面编程实例 统一日志管理

面向切面编程是对面向对象的一种补充,当我们在处理许多功能共有的需求时(系统需求),例如 日志管理,权限检查,事务管理的时候都可以使用aop.它简单方便而且耦合度极低。这里展示一下日志管理:我们需要在用户访问一些方法时,打印出日志@Component@Aspect //声明这是一个切面组件public class ServiceLogAspect { private static final Logger logger = LoggerFactory.getLogger(ServiceLog

2020-11-07 16:44:13 187

原创 统一异常处理

1新建一个类来统一处理2判断请求返回的类型3给出错误提示@ControllerAdvice(annotations = Controller.class) //只扫描带controller注解的类public class ExceptionAdvice { private static final Logger logger = LoggerFactory.getLogger(ExceptionAdvice.class); @ExceptionHandler({Exceptio

2020-11-07 15:40:33 85

原创 归并排序

归并排序用了分而治之的思想,将数组对半拆分,拆成一个数组只有一个元素,再将对应的数组合并(这时候进行排序),最终得到的数组就是有序的。//归并排序 参数 数组 左指针 右指针 public static void mergeSort(int[] arr,int left,int right){ if (left==right)return; //如果左指针等于右指针那么返回 int mid=left+(right-left)/2; //mid为左边数组的最后

2020-11-05 22:20:56 152

原创 交换排序 冒泡和快速排序

冒泡排序:元素与后面元素进行比较,如果后面的更小,就交换二者的值,依次比较下去,最后的值就会是最大的值。重复上述步骤最后数组就是有序的了 public static int[] dubbleSort(int[] arr) { for(int i=0;i<arr.length;i++){ int tem; for(int j=0;j<arr.length-i-1;j++){ if (arr[j]&gt

2020-11-04 22:25:05 101

原创 声明式事务和编程式事务的实现

声明式事务:通过注解或者xml声明某方法的事务特征,这里我们用注解 @Autowired private UserMapper userMapper;// REQUIRED: 支持当前事务(外部事务),如果不存在则创建新事务. // REQUIRES_NEW: 创建一个新事务,并且暂停当前事务(外部事务). // NESTED: 如果当前存在事务(外部事务),则嵌套在该事务中执行(独立的提交和回滚),否则就会REQUIRED一样. //@Transactional

2020-11-04 18:24:37 130

原创 网站 开发显示帖子详情

1发送查看请求2 controller调用service获取帖子数据赋给前端模板//帖子id@RequestMapping(path = "/detail/{discussPostId}", method = RequestMethod.GET) //@PathVariable 从路径中取一个动态的值 public String getDiscussPost(@PathVariable("discussPostId") int discussPostId, Model model, P

2020-11-04 17:43:52 266

原创 网站实现发送帖子的功能

1前端页面写好用post请求2cotroller层判断用户是否登录,调用service层将帖子存入数据库@RequestMapping(path = "/add", method = RequestMethod.POST) @ResponseBody public String addDiscussPost(String title, String content) { User user = hostHolder.getUser(); if (user

2020-11-04 17:02:35 893

原创 前缀树实现 敏感词过滤

1 将需要替换的敏感词写进一个文件(sensitive-words.txt)中2编写敏感词过滤工具类package com.nowcoder.community.util;import org.apache.commons.lang3.CharUtils;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springfram

2020-11-04 14:43:40 165

原创 自定义注解加拦截器实现网站权限管理

在这里我们不使用spring security权限控制,采用自定义注解+拦截器的方式来实现权限控制,防止用户直接通过url访问不能访问的资源1 自定义注解@Target(ElementType.METHOD) //作用于方法上@Retention(RetentionPolicy.RUNTIME)//运行时有效public @interface LoginRequired { //表示这个方法是否在登陆状态下才能访问}2 编写拦截器@Componentpublic class Log

2020-11-04 13:44:07 119

原创 网站开发上传头像的功能

1 service层 和dao层public int updateHeader(int userId, String headerUrl) { return userMapper.updateHeader(userId, headerUrl); }int updateHeader(int id, String headerUrl); <update id="updateHeader"> update user set header_url = #

2020-11-04 13:23:39 380

原创 直接选择排序和堆排序

直接选择排序:每次遍历选择最小的数依次放在第一 二 三 …位置public static void select(arr[]) { for(int i=0;i<arr.length-1;i++){ int small=i; for(int j=i+1;j<arr.length;j++){ if (arr[j]<arr[small]){ small=j;

2020-11-03 21:15:52 84

原创 网站开发 显示登录信息

需求:根据是否登录来调整要显示给用户的内容这里我们要使用spring的拦截器(它可以拦截来自浏览器的请求,然后在请求的开始和后面插入一些代码,解决多个请求共有的业务(耦合度低))1封装一个获取cookie值的工具类 ,方便以后复用public class CookieUtil { public static String getValue(HttpServletRequest request, String name) { if (request == null || nam

2020-11-03 16:27:22 163

原创 网站 登录和退出功能的开发

1 在数据库里面建一个登录信息表id:主键 userId:用户id ticket:登录凭证 status:登录状态expired:过期时间CREATE TABLE `login_ticket` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `ticket` varchar(45) NOT NULL, `status` int(11) DEFAULT '0' COMMENT

2020-11-03 15:08:31 217

原创 网站生成验证码功能实现

我们使用kaptcha工具来生成验证码//1 导入kaptcha包<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version></dependency>//2 写一个配置类 因为这个工具没有被spring管理,我们要自己写配置,然

2020-11-03 13:51:50 129

原创 创建cookie和session

创建cookie//创建cookie @RequestMapping(path = "/cookie/set", method = RequestMethod.GET) @ResponseBody public String setCookie(HttpServletResponse response) { // 创建cookie Cookie cookie = new Cookie("code", CommunityUtil.generateUUID()

2020-11-03 13:18:01 355

原创 分析插排和希尔排序

插排和希尔排序插入排序public static void insertSort(int[] a){ int i,j,temp; int n =a.length; //遍历得到每一个临时值 temp for( i=0;i<n-1;i++){ temp =a[i+1]; j =i; // 如果临时值(也就是目标值的下一个数)比目标值小 while(j>-1&& temp<=a[

2020-11-03 11:46:44 108

原创 网站开发注册功能

自己看的 里面前端页面 model类 数据库没有贴出来1 点击一个链接,打开注册页面<!-- 准备好写好的前端页面 给注册添加链接 --><a class="nav-link" th:href="@{/register}">注册</a>2 在注册页面填写表单并提交,服务端验证账号是否已经存在,服务器发送激活后的邮件。<!--这个包可以判断字符串,集合等的空值情况--><dependency> <groupId&gt

2020-11-02 18:39:40 180

原创 java实现发送邮件功能

1在邮箱中开启smtp服务2导入jar包(spring mail) 配置邮箱参数 使用javaMailSender发送邮件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.1.5.RELEASE</version>

2020-11-02 17:07:20 281

原创 基本正则表达式

1 元字符的概念以及元字符的反义. //匹配除了换行符以外的任意字符\w //匹配字母或数字或下划线或汉字 字母大写即反义 不匹配\s //匹配任意的空白符 字母大写即反义 不匹配\d //匹配数字 字母大写即反义 不匹配\b //匹配单词的开始或结束 字母大写即反义 不匹配 ^

2020-11-02 16:30:32 148

原创 基础数据结构与算法

第一章复杂度1.1 大O记法我们都知道大部分程序基本都在处理 获取 查询 操作和返回数据相关的逻辑,我们数据的结构和算法就是为了更快,更省的进行数据处理。更快(时间少):时间复杂度更省(内存少):空间复杂度为什么需要复杂度?如果只用开始时间和结束时间之间的差额和内存使用情况来看会有什么弊端?1 测试结果大大依赖硬件条件2 测试结果需要事后计算3 测试结果受到原始数据特性影响大所以我们需要一个不需要具体的测试环境就可以粗略估计算法执行效率的方法这就是复杂度又叫大0记法大O记法是算法的基石和

2020-11-02 16:29:47 166

原创 音乐评论分析

第一章 项目分析###1.1 项目介绍项目流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-236YV5rp-1604305644009)(https://style.youkeda.com/img/ham/course/j12/2.1-1.svg)]一 项目需求:我们在网易云听歌的时候,经常会被下面的评论所打动。那么我们怎么才能知道每个歌手的歌曲评论中出现最频繁的词语是什么?如图片示例从上面这些词语中,我们可以很迅速的了解歌曲评论的大概内容,实际上,统计这些

2020-11-02 16:28:40 1088

原创 前端项目2048小游戏

第一章 2048游戏介绍1.1 项目介绍相信大家都玩过2048这个游戏,这次我们就一步步地来完成2048的开发,这个项目它需要用到html css和js的知识。需求分析:1 游戏是一个4x4的方格,每一个方格我们称为Tile或者Cell2 游戏开始会随机出现2个方格,每个的值90%的可能性为2,10%的可能性为43 通过键盘的上下左右键可以控制方格按一个方向移动,直到不能移动为止。4 如果移动以后两个Tile 的内容值一样,则进行合并。5 每个 Tile 移动会有 100ms 的移动动画。

2020-11-01 16:59:45 3647

原创 spring 略介绍

第一章 Spring 入门1.1为什么要学springspring是java语言中必须要掌握的框架,它涵盖了java的各个领域,基本上是全能的。spring的核心是依赖注入(DI),spring所有的技术方案都是基于DI发展来的。1.2 maven入门(上)maven:一个项目管理和自动化工具[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mYGMOOXz-1604221023961)(https://style.youkeda.com/img/ham/cours

2020-11-01 16:58:28 451

原创 前端进阶

第一章 CSS伪类伪元素就是利用css代码在标签内部的前面,或者后面添加一个行内元素。/* before */选择器::before{ //选择器内部的前面添加一个行内元素 /* 使用空白符号占位 */ content: '';}/* after */ 选择器::after{ //选择器内部的后面添加一个行内元素 /* 使用空白符号占位 */ content: '';}清楚浮动:哪个盒子的子元素有浮动,就在哪个盒子上添加清除浮动

2020-11-01 16:57:00 319

原创 前端基础

第一章 认识前端开发前端开发是创建 Web 页面或 app 等前端界面呈现给用户的过程,通过 HTML,CSS 及 JavaScript 以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。前端技术包括 4 个部分:前端页面设计师、浏览器兼容、CSS、HTML“传统”技术与 Adobe AIR、Google Gears,以及概念性较强的交互式设计,艺术性较强的视觉设计等。HTML、CSS 和 JavaScript (前端的三板斧)一起被众多网站用于设计网页、网页应用程序以及移动

2020-11-01 16:55:58 421 1

原创 vuex解析

第一章Vuex入门1.1Vuex介绍什么是vuex?它是vue团队提供的状态管理模式,简单来说就是针对vue.js提供的数据驱动解决方案。vue是双向绑定,vuex是单向绑定的,一般来说单向绑定更安全vuex为什么非常重要?它可以使vue开发大型复杂的产品变得容易。安装vuexnpm install vuex --saveyarn add vuexcnpm install -save vuex配置vuex1 创建一个store文件夹,然后在里面创建一个index.js 内容如下i

2020-11-01 16:54:59 212

原创 vue 解析

第一章 vue介绍1.1Vue配置vue是构建用户界面的渐进式框架 特点是易用 灵活 性能优vue脚手架的安装 vue CLI安装 node.js 安装vue cli创建vue工程1.2 vue工程目录介绍工程介绍node_modules:存放npm命令下载的开发环境和生产环境的依赖包public:项目的入口文件src:存放项目源码和需要引用的资源的文件assets:存放项目中需要用到的资源文件 css js images 等componets:存放vue开发中的一些公共组件 例如项

2020-11-01 16:54:04 288 1

原创 mysql 数据库 常见命令和实例

第一章 为什么选择mysql1.1 什么是数据库将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合称为数据库 (DataBase,简称 DB)用来管理数据库的计算机系统称为数据库管理系统 (DataBase Management System,简称DBMS)。从事管理和维护数据库管理系统(DBMS)的相关工作人员称为数据库管理员(Database Administrator 简称DBA)为什么要使用数据库?因为数据库可以多人共享数据 应对多次修改数据 操作大量数据。1.2数据库

2020-11-01 16:52:55 435 1

原创 js基础

我们省略到最基本的语法内容,像数据类型,循环,函数,数组等,直接从对象开始。第一章 对象1.1 对象概述什么是对象(object)? 简单来说,对象就是一组键值对(key-value)的集合,是一种无序的复合数据集合。大括号:定义一个对象person:定义的对象被赋值给person,person指向这个对象name:henry 键值对(key:value)键值之间用:隔开一共对象中可以包含多个键值对,每个键值对之间用逗号隔开,最后一个键值对可以不加逗号注意这个person里面保存的是对象

2020-11-01 16:51:31 346

原创 网络编程实例

第一章 Http协议原理1.1 协议网络协议:通信计算机双方必须遵守的一组约定 http https端口 80 443数据传输 明文传输 加密传输真假网站识别 很容易被复制 使用证书,很难被复制浏览器显示区别 浏览器显示问号, 浏览器显示小锁,提示安全 提示不安

2020-11-01 16:49:13 1101

原创 java基础部分

第一章 创建对象1.1 java包管理器导入包的语句:import 包名+类名例如:在计算机磁盘内的路径java/time/LocalDate.javaimport java.time.LocalDate;我们来看一下 LocalDate这个日期类:日期时间和字符串的转化:import java.time.LocalDate; //日期类import java.time.format.DateTimeFormatter; //日期格式化类pu

2020-11-01 16:47:34 229

空空如也

空空如也

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

TA关注的人

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