自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Java面试】——常见面试题汇总

JDK 是 Java 开发工具包,是 Java 开发环境的核心组件,并提供编译、调试和运行一个 Java 程序所需要的所有工具,可执行文件和二进制文件,是一个平台特定的软件。JRE 是 Java 运行时环境,是 JVM 的实施实现,提供了运行 Java 程序的平台。JRE 包含了 JVM,但是不包含 Java 编译器 / 调试器之类的开发工具。JVM 是 Java 虚拟机,当我们运行一个程序时,JVM 负责将字节码转换为特定机器代码,JVM 提供了内存管理 / 垃圾回收和安全机制等。这种独立于硬

2020-07-13 09:40:55 323

转载 扫码登录过程解析

网页端+服务器接下来就是对于这个服务的详细实现。首先,大概说一下原理:用户打开网站的登录页面的时候,向浏览器的服务器发送获取登录二维码的请求。服务器收到请求后,随机生成一个uuid,将这个id作为key值存入redis服务器,同时设置一个过期时间,再过期后,用户登录二维码需要进行刷新重新获取。同时,将这个key值和本公司的验证字符串合在一起,通过二维码生成接口,生成一个二维码的图片(二维码生成,网上有很多现成的接口和源码,这里不再介绍。)然后,将二维码图片和uuid一起返回给用户浏览器。浏览器拿

2021-05-06 09:43:09 5

转载 java 获取当前时间并转化为yyyy-MM-dd HH:mm:ss格式

方法一(线程不安全, 不建议使用)private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 Date now = new Date(); String time = sdf.format(now);方法二(线程安全,建议使用)import java.time.LocalDateTime;import java.time.format.DateTimeFormatter; p

2021-05-05 14:51:16 3

原创 SpringMVC文件上传:MultipartFile.transferTo()

https://blog.csdn.net/lcczpp/article/details/88887045https://blog.csdn.net/qq_35564978/article/details/81701518<!-- 定义文件上传解析器 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

2021-05-05 14:46:19 8

原创 SpringMVC @PathVariable设置为空,设置默认值(required=false)

@PathVariable设置为空的问题(required=false)参考了:http://www.imooc.com/qadetail/268268最近学习springMVC的时候,学到@PathVariable后,发现@PathVariable有个required属性,于是将其设置为false,发现访问请求时报错。刚开始我的代码是这样的: 1 2 3 4 5 6 @RequestMapping(value={"/.

2021-05-03 16:23:50 14

原创 基于SSM的网上书店、电子书城、二手书城系统

网上书店、电子书城、online bookstore、bookshop、可用于毕设、课设。项目介绍基于SSM框架搭建的电子书城平台,静态资源储存可使用OSS(七牛云-对象存储),也可以使用本地文件 服务器,支付渠道采用微信、支付宝支付。技术介绍语言 Java 1.7+ 数据库 Mysql 5.6+ 服务容器 Tomcat 7.0+ 技术要点 核心框架 Spring 3.x SpringMVC 3.x ORM Mybatis 3.x ..

2021-05-02 11:14:10 11

原创 基于协同过滤算法的商品推荐购物电商系统

一、介绍商品推荐是针对用户面对海量的商品信息而不知从何下手的一种解决方案,它可以根据用户的喜好,年龄,点击量,购买量以及各种购买行为来为用户推荐合适的商品。在本项目中采用的是基于用户的协同过滤的推荐算法来实现商品的推荐并在前台页面进行展示,我将会使用余弦相似度的度量方法来计算用户与用户之间相似性,最终将相似度较高的用户浏览的商品推荐给用户。协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐

2021-05-02 09:47:31 89

原创 IDEA更改项目名

1、Project Settings下 1.1、更改project的Project name和Project compiler output。 1.2、更改Modules的Name 1.3、删除Artifacts下的两个打包配置(稍后会再自动生成) 2、更改pom.xml的artifactId 3、退出idea,找到项目路径,更改项目文件名 然后idea再open项目 ...

2021-05-02 07:35:04 42

原创 spring Junit Test 单元测试教程

<!-- https://mvnrepository.com/artifact/org.springframework/spring-test --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.18.RELEASE</version&.

2021-05-01 08:22:20 36

原创 Springboot测试

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency>在当前类下,ctrl+shift+t 生成测试类 @RunWith(SpringRunner...

2021-04-29 11:21:05 5

转载 @Mapper、@MapperScan和@ComponentScan的区别

@ComponentScan是组件扫描注解,用来扫描@Controller @Service @Repository这类 @MapperScan 是扫描mapper类的注解,在需要扫描的mapper类上加@Mapper注:@Repository为spring包下的,@MapperScan为ibatis包下的,如果使用mybatis,建议使用@Mapper首先,@ComponentScan是组件扫描注解,用来扫描@Controller @Service @Repository这类,主要就是定义...

2021-04-29 08:38:51 31

转载 Java——String类的substring()方法

截取字符串,在java语言中的用法1、 public String substring(int beginIndex)返回一个新字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。参数:beginIndex - 开始处的索引(包括),返回:指定的子字符串,异常:如果 beginIndex 为负或大于此 String 对象的长度,则抛出IndexOutOfBoundsException例 :"unhappy".substring(2) ...

2021-04-26 08:49:59 7

转载 Java生成随机数的方法

一.使用Math.random()方法直接使用Math.random()这个静态的方法,random()方法返回一个[0,1)的随机数;Math.random() 产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机int ran = Math.random()*100//1-10的随机数int random=(int)(Math.random()*10+1);//1-50的随机数new Random().nextInt

2021-04-25 22:53:42 13

原创 Collections.sort的使用

1.对于String或Integer这些已经实现Comparable接口的类来说,可以直接使用Collections.sort方法传入list参数来实现默认方式(正序)排序;2.如果不想使用默认方式(正序)排序,可以通过Collections.sort传入第二个参数类型为Comparator来自定义排序规则;3.自定义的类也可以通过实现Comparable接口的compareTo方法来进行;package com.java.demo.CollectionsUtils;import..

2021-04-25 10:32:48 20

原创 springboot项目导入resource目录下的配置文件

第一种方式application.yml或application.properties配置文件ymlspring: redis: cache.clusterNodes: 127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384 cache.commandTimeout: 5000properties:#------------.

2021-04-22 11:08:35 21

原创 解决前后台URL传递中文参数乱码问题

参考链接:https://blog.csdn.net/seagal890/article/details/53982202https://blog.csdn.net/weixin_38023579/article/details/846351401、在web.xml中添加全局的字符过滤器 <!-- 解决post乱码 --> <filter> <filter-name>CharacterEncodingFilter</.

2021-04-20 16:12:27 22

转载 后端开发:新入职一家公司如何快速进入团队?

转自:https://www.cnblogs.com/hunternet/p/14675348.html

2021-04-20 09:26:59 7

原创 redis数据类型的使用场景

参考文章:https://segmentfault.com/a/1190000012212663

2021-04-07 09:15:18 17

原创 Spring Data Jpa实践案例

https://www.cnblogs.com/chenglc/p/11226693.html

2021-04-06 08:46:57 17

转载 Java中字符串有长度限制吗?

字符串有长度限制吗?是多少?首先字符串的内容是由一个字符数组char[] 来存储的,由于数组的长度及索引是整数,且String类中返回字符串长度的方法length() 的返回值也是int ,所以通过查看java源码中的类Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大长度可以使【0~2^31-1】通过计算是大概4GB。但是通过翻阅java虚拟机手册对class文件格式的定义以及常量池中对String类型的结构体定义我们可以知道对于索引定义了.

2021-04-02 13:45:26 57 1

原创 Mysql中replace与replace into的用法讲解

转:https://www.cnblogs.com/c-961900940/p/6197878.htmlhttps://www.jb51.net/article/158125.htmreplace into 主要作用类似insert插入操作。主要的区别是replace会根据主键或者唯一索引检查数据是否存在,如果存在就先删除在更新。1. 尝试把新行插入到表中2. 当因为对于主键或唯一关键字出现重复关键字错误而造成插入失败时:a. 从表中删除含有重复关键字值的冲突行 b. 再次尝试把

2021-03-27 15:39:40 15

原创 Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度

ArrayList 是线性表(数组)get() 直接读取第几个下标,复杂度 O(1)add(E) 添加元素,直接在后面添加,复杂度O(1)add(index, E) 添加元素,在第几个元素后面插入,后面的元素需要向后移动,复杂度O(n)remove()删除元素,后面的元素需要逐个移动,复杂度O(n)LinkedList 是链表的操作get() 获取第几个元素,依次遍历,复杂度O(n)add(E) 添加到末尾,复杂度O(1)add(index, E) 添加第几个元素后,需要先查找到第几个元素

2021-03-24 09:13:53 44

原创 spring拦截器的使用demo

https://cloud.tencent.com/developer/article/1527054

2021-03-21 20:56:22 12

转载 mybatis的association以及collection的用法

https://www.jianshu.com/p/018c0f083501

2021-03-21 15:47:41 17

转载 spring @Transactional注解参数详解

https://www.cnblogs.com/caoyc/p/5632963.html事物注解方式: @Transactional当标于类前时, 标示类中所有方法都进行事物处理,例子:1 @Transactional public class TestServiceBean implements TestService {}当类中某些方法不需要事物时: 1 @Transactional 2 public class TestServiceBean implements..

2021-03-21 14:18:29 70

转载 如何实现“三高”——高并发 高可用 高性能

https://www.cnblogs.com/hxz-nl/p/11799780.html

2021-03-16 22:44:06 31

原创 MVCC

https://baijiahao.baidu.com/s?id=1629409989970483292&wfr=spider&for=pchttps://www.jianshu.com/p/8845ddca3b23

2021-03-11 10:26:45 9

转载 聚簇索引和非聚簇索引的区别(转)

https://www.cnblogs.com/jiawen010/p/11805241.html总结:InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分;  一般建表会用一个自增主键做聚簇索引,没有的话MySQL会默认创建,但是这个主键如果更改代价较高,故建表时要考虑自增ID不能频繁update这点。  .

2021-03-11 09:48:16 25

原创 RocketMQ面试题

你们为什么使用mq?具体的使用场景是什么?mq的作用很简单,削峰填谷。以电商交易下单的场景来说,正向交易的过程可能涉及到创建订单、扣减库存、扣减活动预算、扣减积分等等。每个接口的耗时如果是100ms,那么理论上整个下单的链路就需要耗费400ms,这个时间显然是太长了。如果这些操作全部同步处理的话,首先调用链路太长影响接口性能,其次分布式事务的问题很难处理,这时候像扣减预算和积分这种对实时一致性要求没有那么高的请求,完全就可以通过mq异步的方式去处理了。同时,考虑到异步带来的不一致的问题,我们可以

2021-03-10 11:16:36 4002 4

原创 @ModelAttribute 的使用

https://www.cnblogs.com/lemon-coke-pudding/p/12740365.htmlhttps://www.cnblogs.com/cobcmw/p/12092591.html

2021-03-02 16:18:48 69

原创 MySQL的YEARWEEK函数以及查询本周数据(转)

https://www.cnblogs.com/ganymede/p/3811873.html

2021-03-01 15:17:29 15 1

原创 Spring统一异常处理@ExceptionHandler

Spring异常处理@ExceptionHandlerhttps://www.cnblogs.com/shuimuzhushui/p/6791600.html

2021-02-24 20:20:30 46

转载 SpringCloud 和SpringBoot 的区别与相互依赖关系

SpringCloud 和SpringBoot 的区别与相互依赖关系一 . SpringBoot1.简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。Spri...

2021-02-10 10:08:01 334

原创 策略模式

https://www.cnblogs.com/adamjwh/p/11011095.html

2021-02-07 10:45:49 14

转载 redis快速和支持高并发的原因

一.Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。二.为什么Redis是单线程的1.官方答案因为Redis是基于内存的操作,CPU不是Redis的瓶颈,.

2021-02-03 14:55:13 59

原创 Can‘t read from server. It may not have the appropriate access-control-origin settings.

swagger2打开报错,解决办法如下,只要将localhost改成127.0.0.1就可以了。

2020-12-22 17:57:29 131

原创 Mysql 的varchar能存几个字符?

utf8编码的varchar  Mysql记录行数据是有限的。大小为64k,即65535个字节,而varchar要用1-2字节来存储字段长度,小于255的1字节,大于255的2字节。  Mysql 5.0后,英文字符固定都是一个字节,汉字字符根据编码方式占不同字节,Utf-8占3个字节,gbk占了2个字节。  第一,当编码方式为utf-8时,varchar存到21845就存不下了.也就是最大长度是21844.根据上面信息可以推算出 ( 65535-2 )/3=21844余1  例子如下:  

2020-11-30 17:48:50 547

原创 SpringBoot整合Redis及Redis工具类撰写(RedisTemplate)

https://www.cnblogs.com/zeng1994/p/03303c805731afc9aa9c60dbbd32a323.html

2020-11-10 11:05:24 52

原创 redis的过期策略

1、设置过期时间expire key time(以秒为单位)--这是最常用的方式 setex(String key, int seconds, String value)--字符串独有的方式具体的使用方式:查看"java企业项目开发实践"的第九章 企业项目开发--分布式缓存Redis(1)和第十章 企业项目开发--分布式缓存Redis(2)注意:除了字符串自己独有设置过期时间的方法外,其他方法都需要依靠expire方法来设置时间 如果没有设置时间,那缓存就是永不过期 如果设置了过期时间,

2020-11-09 17:58:10 29

原创 Java自定义注解

https://blog.csdn.net/zt15732625878/article/details/100061528https://www.cnblogs.com/liangweiping/p/3837332.html

2020-11-08 10:36:02 15

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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