自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 开启VR游戏创业之旅

我们是一家初创公司,我们希望汇聚一群充满热情和活力的人才,共同致力于打造领先、创新的VR游戏产品,成为VR游戏领域最受欢迎的公司之一。

2023-05-23 09:42:57 691

原创 Spring事务原理(特别建议)--转载

最近在在网上查看了一写Spring事务的原理。不过大多数文章都很杂乱,写的不是很好。网上查找好文章需要化时间,我把认为写的挺不错的文章推荐给大家。1.这篇文章把事务和事务的传播机制讲的很清楚,新手也能看懂,但只是讲了Spring的事务,没有深入讲解Mysql的事务,建议看了这篇文章之后,再去看看Mysql的事务原理,这样对Spring的事务就有个大概的了解咯。https://www.jianshu.com/p/4312162b1458...

2021-03-18 19:31:15 785

原创 剑指Offer———求数组里面的重复的数字

题目:找出数组中重复的数字要求:给定一个长度为N的数组中,数组里面存放的所有数字范围在0至N-1之间,但是不知道有几个数字重复了,也不知道重复了多少次,请找出数组中任意一个重复的数字。例如:{0,2,3,1,1,4,5},那么对应输出的重复数字就是1解答:第一种方法:我们可以把数组里面所有的数组按照一定的顺序排列,那么重复的数组肯定就是挨着的,于是,我们可以直接遍历数组,然后比较第x位和第x+1位数组,如果相同,则重复。这种方式比较简单,但我们需要先排序,然后再次遍历比较。但排序长度为N的数组,时间

2021-03-05 16:43:00 817 2

原创 SpringSecurity+oauth2+SpringCloud:解决使用Oauth2后swagger不显示的问题

当我们使用了oauth2之后,会对路径进行拦截。我们需要配置放行路径。首先要配置资源放行路径@Configuration@EnableResourceServerpublic class ResourceConfiguration extends ResourceServerConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { http.fo

2021-02-28 11:35:59 806

原创 Mybatis——字段为null的解决方法

今天在写项目的mapper.xml文件的时候,出现了个别字段查询结果为null的情况,但sql语句没有错误,仔细查看了一遍,才发现错误,现在记录下来先讲一讲sql语句和ResultMap的顺序:首先会执行sql语句,sql语句返回字段信息,然后才是ResultMap映射字段信息。实体类UserInfopackage com.school.oauth.endpoint.domain;import com.fasterxml.jackson.annotation.JsonFormat;import

2021-02-20 20:45:27 4150 2

原创 算法——二叉树的前序、中序、后序遍历算法 java实现

二叉树,大家都很熟悉,这里我就不解释咯。今天记录一下二叉树的三种遍历方法(递归实现和非递归实现)首先我们先定一个棵树代码如下:public class Node { private String date; private Node left; private Node right; private int level = 0; //层数 public int getLevel() { return level; }

2021-02-02 15:38:14 189

原创 设计模式——代理模式

代理模式还是比较容易理解,类比我们生活,电视机厂家生成电视,然后电视机厂家把电视剧买给老百姓。但是老百姓一般是从代理商家那儿买电视剧。其中电视剧厂家就是真正拥有货源的,被叫做真实角色。代理商家其实是没有货源的,不过代理商家在卖电视剧的时候,可以搞很多活动以增加销量,代理商家就是代理角色。代理模式分为静态代理和动态代理两种。静态代理:静态代理一般分为三个角色:1.抽象角色:一般是接口或者抽象类,里面定义了方法2.真实角色:需要被代理的类3.代理对象:代理真实角色,扩展更多的功能。代码:抽象角色

2021-01-29 14:59:12 86

原创 算法——java实现快速排序

1.介绍快速排序是建立在冒泡算法思想上面的,其核心思想是:在数组中随机取出一个值,这个值叫做基准值。然后把小于基准值的数都放在左边,把大于基准值的数放在右边,然后再按照相同的步骤遍历左数组和右数组。2.算法步骤1.取基准值,一般是去数组的首位2.添加首指针(left),首指针指向数组的第一个数。3.添加尾指针(right),尾指针指向数组的最后一个数。4.从尾部开始开始遍历(尾指针从右往左移动),遇到大于或者等于基准数的值都跳过,直到找到比基准数小的数(left < right)。然后把尾

2021-01-29 10:28:27 78

原创 JAVA笔记——内部类详解

感想:现在越发的觉得自己的基础知识薄弱,java基础没学好。打好基础,才是迈向成功的第一步。内部类种类内部类分为四种:普通内部类、局部内部类、静态内部类、匿名内部类。现在仔细的讲一讲。1.普通内部类第一种,普通内部类,可以访问外部类的所有成员变量以及方法。而外部类想要访问内部类的方法或者变量,需要先创建内部类对象,然后才能访问,值得注意的是,外部类获得内部类对象后,可以通过 “.” 直接访问内部类的私有成员。修饰符可以实private\protected\public\默认案例:public c

2021-01-24 14:12:21 89 1

原创 笔试题——用java实现股票交易日的判断

今天记录一道笔试题1.原题:需求:股票交易或者分析会涉及到交易日的查询,为了分析高效快速,通常会把交易日放到内存中。要求实现下面的接口。interface TradingDayService { //判断是否为交易日 boolean isTradingDay(LocalDate date); //查询下一个交易日 Optional<LocalDate> queryNextTradingDay(LocalDate date); //查询一段时间范围的交易

2021-01-23 15:35:09 3915 4

原创 面试题——讲述一下线程和进程

1.进程是一个程序运行和资源分配的基本单位,一个程序至少有一个进程、一个进程至少有一个线程。进程占有独立的内存空间,而线程是共享资源变量。2.线程是进程的一个实体,是cup调度和分派的基本单位。同一进程中,线程之间可以并发的执行。一个进程可以拥有多个线程...

2021-01-22 16:50:41 118

原创 面试题——说一说索引的分类

mysql的所有大致可以分为4类(1)普通索引和唯一索引。普通索引是mysql的基本索引类型,它运行出现重复值和空值。唯一索引,索引值必须唯一,但可以有空值。(2)单例索引和组合索引单例索引,只包含一个数据表的一列。一个表中可以存在多个单例索引组合索引,建立在表的多个字段的组合上,在查询条件中,只有使用了该组合字段的最左字段,索引才会被使用,组合索引遵从最左前缀集合。(3)全文索引。全文索引的类型为FULLTEXT,建立在可以被全文查找的字段上,例如char,varchar或者text类型字

2021-01-22 16:26:25 194

原创 面试题——讲一讲乐观锁与悲观锁?

实习生面试,锁方面的知识,其实小公司面试的不是很深入,不过大公司应该会问的比较仔细,遇到便记录下来1.悲观锁悲观锁,就是认为在最坏的情况下,每次读取数据的时候,该数据都会被他人修改,所以每次取数据之前,都要加锁。只有拥有该锁的人,才可以对该数据进行操作。其他人要操作该数据的话,必须等到持有锁,才能进行操作。悲观锁适用于“写”操作比较多的情况,在java中,syschronized(重量级锁)和ReentrantLock(重入锁)都是悲观锁,每次只能有一个线程访问。2.乐观锁乐观锁,就是认为在最好的情

2021-01-22 16:00:00 265

原创 面试题——说一说Runnable与Callable的区别

这道题目是在讲解多线程的时候,顺带问到的。1.执行方法名称不同Runnable的执行方法是run(),而Callable的执行方法是call()2.有无返回值Runnable的run方法是没有返回值的,而Callable的call方法是可以有返回值。3.有无泛型Runnable是没有携带泛型的,而Callable是可以携带泛型的如:public class CallableThread implements Callable{}4.开始的版本不一样Runnable是JDK1.0开始采用的

2021-01-22 13:46:42 183

原创 面试题——多线程有哪几种实现方式?

这个问题不是很难,这是我面试一个小公司的时候问到的,今天记录下来。1.第一种,继承Thread类,重写run方法,然后调用start()函数。案例public class ExtendsThred extends Thread{ @Override public void run() { while (true) { System.out.println("当前线程名称:" + this.currentThread().getName());

2021-01-22 13:39:09 199

原创 程序员的自我学习方法——费曼学习法

学习方法很重要,特别是对于我们编程专业的大学生而言。 自己在这几个月编程基本没什么进步。学习效率低下,于是上网搜了一些学习方法,坚持了几天,感觉确实有用,现在便记录下来分享给大家。1. 什么是费曼学习法:费曼学习法是由若贝尔奖主——费曼,总结出来的一种学习方法。能够帮助人们在短时间内牢记住新学的知识。2. 费曼学习的流程,如下图从图中我们可以知道学习新知识的步骤:(1) 学习某样知识(2) 脱离知识材料,独自讲解一遍(3) 若讲解途中出现卡壳,记不清楚的情况,就去回顾学习材料,然后重新开始讲

2021-01-07 11:33:40 531 2

原创 @Lazy注解学习

今天在看代码的时候,发现了一个新的注解----@Lazy,于是记录下了。1.顾名思义,Lazy就是延迟加载的意思。@Lazy注解用于类上面,表示该类在需要用到的时候,才会创建,不需要的时候,不会创建出来。看下列代码 private AuthenticationManager authenticationManager; private WebSecurityProperties webSecurityProperties; private CaptchaService captc

2020-12-20 17:24:45 282 1

原创 Error creating bean with name ‘org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfigurati

出现这种报错的情况,最有可能的是两种原因。1.数据源版本太低。可以提高数据源的版本,例如druid的版本,提升到1.1.10 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</ve

2020-12-20 10:24:02 2108 1

原创 Springboot工程导入依赖失败:Cannot resolve org.xxx.xxx

在springboot项目导入依赖的时候,我们会导入失败,出现:Cannot resolve org.xxx.xxx的报错。这是因为在下载依赖的时候,可能网络等各种原因下载不完全,所以报错。例如:Cannot resolve org.codehaus.jackson:jackson-mapper-asl:1.9.13,下面我以fastjson为例。1.打开当前maven仓库存放jar包的地址,也就是repository目录。如下图2.进入repository,找到对应的jar包下载位置,例如fas

2020-12-19 19:07:28 21567 5

原创 分布式锁详解--springboot+Redisson

现在的大多数应用是分布式结构,所有分布式锁我们经常会用到。现在就记录一下分布式锁。1.先简单说一下什么是锁应用程序中的锁,大家可以理解为现实生活中的锁(门锁,车锁等)。举一个例子,我现在用一把锁,锁住了一个皮箱,那么,只有持有该钥匙的人,才可以打开皮箱,得到皮箱里面的东西,而且,在同一时间,只能有一个人能够开锁,因为锁孔只有一个,当一个人在开锁的时候,其他人就无法开锁。对于应用程序来说,当多个线程同时访问一个共享资源的时候,能够保证同一时间,只能有一个线程访问到数据,保证数据的一致性。2.现在我们来说

2020-12-13 17:23:10 181

原创 Java笔记------HashSet原理详解以及HashMap

Set数据结构是我们在开发中经常用到的,其存储思想其实和HashMap很类似。今天记录一下Set的详细知识。(一)Set接口有两个实现类,一个是HashSet,另外一个是LinkedHashSet。HashSet是无序的,LinkedHashSet是有序的。(二)在JDK1.8之前,HashSet的底层是由数组+链表==》(哈希表),在JDK1.8及其之后,HashSet的底层是由数组+链表 或者数组+红黑树,在哈希值相同,存储的数据不超过8个的时候,是采用数组+链表,哈希值相同,超过8个数据的时候,就

2020-11-23 16:47:17 180

原创 Java校园淘项目实战(三)————Springboot+fastDFS实现文件上传

上一章节,我们讲了如何在CentOS 8 系统中安装好fastDFS,这一章节,我们就来写上传图片的功能,并且拿到自动生成的缩略图。(1)在pom.xml中引入相关依赖,我这里的版本是1.26.2 <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> &l

2020-10-21 16:11:22 108

原创 Java校园淘项目实战(三)————在CentOS 8 上面安装FastDFS 6.X

在上一章节,我们完成了token的生成,把token放入cooike中,现在我们通过fastDFS实现文件上传功能,先简单的说一下fastDFS。fastDFS是阿里巴巴的一位大佬开发出来的分布式文件存储系统,是使用c语言编写出来的,所有运行效率高。fastDFS主要是两个部分,一个是tracker(踪迹)、另外一个是storage(存储)。我们上传的图片,会被存放在storage,当我们通过url访问图片的时候,我们首先不是去storage找图片,而且先访问tracker,tracker会去找stora

2020-10-21 10:13:06 108

原创 Java校园淘项目实战(二)————实现登录拦截功能

在上一章博客中,写了如何生成token,现在我们来讲一下如何实现登录拦截功能,意思就是必须使用用户名和密码登录之后,才能调用其他接口,这是项目的基础功能之一。现在我们来看一下代码。(1)因为项目是springcloud项目,所以一切的请求都会先经过网关,然后再通过负载均衡,分发到相应的微服务上。所以我们的拦截就是是网关处实现。主要思想就是在网关处写一个网关过滤器。判断是否传送过来的请求是否携带token,并且这个token能否被解析成用户信息。如果能,则放行,反之拦截。代码如下(主要体现思想,代码并不完

2020-10-14 19:04:28 181

原创 Java校园淘项目实战(1)————JWT+RSA非对称加密生成token

springCloud环境配置好了,接下来就是先把工具类写好,因为接下来要写用户接口微服务,所有打算先把密钥工具类和生成token的工具类写好。(1)yml配置,里面声明了公钥和私钥存放的地方。server: port: 10021spring: application: name: commons-serviceeureka: client: service-url: defaultZone: http://127.0.0.1:10086/eureka/

2020-10-12 15:52:35 1338 2

原创 Java校园淘实战项目(引言)

引言最近学习完了springcloud,打算做一个网站,让知识融汇贯通。从大二下册半期过后,才开始学习java,大目前大三上册开学,终于快速的把java方面的知识学了不少,但我写代码的能力很弱,所以要实战,才能增强自己的真正本领。好了,话不多说。1.项目介绍校园淘网站,主要针对的是各个大学的闲置物品的交易,有点类似于某鱼,不过针对的范围是校园。校园的学生打开网站,就会开看自己学校范围内的闲置物品,不会看到其他学校学生发布的闲置物品。这样大三、大四的学长学姐们,就有很好的途径把闲置的书籍和其他物品卖给本

2020-09-24 09:46:28 254

转载 Mybatis之通用Mappper

Mybatis之通用Mappper通用 Mapper 介绍通用 Mapper 是一个辅助 MyBatis 单表开发的组件,它使我们能极其方便的使用 MyBatis 单表的增删改查。快速入门2.1 搭建环境创建数据库 mapper,和 table_user 表DROP TABLE IF EXISTS table_user;CREATE TABLE table_user (user_id int(11) NOT NULL AUTO_INCREMENT,user_name varch

2020-08-31 13:22:36 339

原创 maven运行tomcat:run,系统找不到指定的文件

不要使用tomcat:run 命令,应该使用 mvn tomcat:run, 这样就可以运行咯

2020-06-30 16:47:45 527

原创 如何把javaweb项目部署到服务器上

最近在学习java web项目,于是直接在网上copy了一个项目放到服务器上,自己才接触这方面的东西,到处都是坑。现在记下来,希望能帮助到更多的人。1.首先,想把项目部署到服务器上,你必须要搭建java环境。我用的服务器是阿里云的,购买了服务器之后千万要记得把8080端口打开.我在这儿就不详细的说了。又很多博客都讲了如何搭建java环境的服务器。2.搭建好之后,一定要打开tomcat服务!!!...

2020-04-30 10:17:29 1379

原创 解决:”ssh-keygen 不是内部或外部命令“ 的问题

我在获取密钥的时候,在命令行里使用ssh-keygen -t rsa -C “xxxxx@xxxxx.com” 显示ssh-keygen不是内部命令。查看了很多博客说是在系统环境里面添加变量,结果都没有解决,后来自己弄了会儿,才解决的。1.首先,你要下载git,如果没有下载git,去官网下载。2.在到git的安装路径,在bin目录下面有个sh.exe的执行文件,双击打开sh.exe。 然后使...

2020-04-27 12:17:39 1844 3

原创 Java中static和final的区别

staticstatic变量只被分配一次内存,static方法可以直接通过类名调用,任何的实例也都可以调用。static的数据或方法,属于整个类的而不是属于某个对象的,是不会和类的任何对象实例联系到一起。final在Java中声明属性、方法和类时,可使用关键字final来修饰。final变量即为常量,只能赋值一次;final方法不能被子类重写;final类不能被继承。...

2020-03-18 09:18:30 125

原创 python之温度转换

代码如下:#温度转换TemperStr = input(“请输入带有符号的温度值:”)if TemperStr[-1] in [‘F’, ‘f’]:c = (eval(TemperStr[0:1]) - 32) / 1.8print(“转换后的温度是{:.2fC}.format©”)elif TemperStr[-1] in[‘C’,‘c’]:F = 1.8*eval_r(Te...

2020-03-02 11:46:48 1314

原创 android权威编程第三版——Criminalintenty

最近再学习android,刚开始遇到不少问题,所以记载下来以防忘记搞股了几天的recyclerView,发现报错的原因xml文件写错了,没有编译器没有检查出来,xml开头应该是androidx.recyclerview.widget.RecyclerView而不是android开头...

2020-02-16 10:21:41 102

空空如也

空空如也

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

TA关注的人

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