01 2020 档案

摘要:又是来自我的好朋友 EvilSay 的投稿,以下是原文: 1、基本定义 二分搜索树的每个子节点最多有两个叶子节点 二分搜索树的每个节点最多有一个根节点 存储的元素必须具有可比较性 二分搜索树每个子节点的值 大于其左子节的所有节点的值 小于其右子节点的所有节点的值 二分搜索树不一定是满的 2、二分搜索 阅读全文
posted @ 2020-01-17 15:46 JavaFish 阅读(249) 评论(0) 推荐(0)
摘要:前言 来自我的好朋友 EvilSay 的投稿,以下是原文: 冒泡排序,相信大家听到这四个字都觉得很简单,我觉得也是,但能不能更简单呢?比如,用递归实现。 普通冒泡 请务必按照数字顺序阅读代码 6 7 null 1: 获取的节点为空时(当前节点为6)返回Null给上一层递归,如果有的。 2: (当前节 阅读全文
posted @ 2020-01-17 15:44 JavaFish 阅读(379) 评论(0) 推荐(0)
摘要:什么是递归? 维基百科给出了如下定义: 程序调用自身的编程技巧称为递归.递归作为一种算法在程序设计语言中广泛应用。 上面的说法略显官方。简而言之,递归就是自己调用自己,但是这个调用它是有一定条件的,比如: 子问题须与原始问题为同样的事,且更为简单。 调用自身的次数不能太多,否则会造成程序堆栈溢出。 阅读全文
posted @ 2020-01-17 15:43 JavaFish 阅读(399) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 来自不愿意透露姓名的小师弟的投稿。这篇主要讲了,项目中配置了多缓存遇到的坑,以及解决办法。 发现问题 在一次项目实践中有实现多级缓存其中有已经包括了 Shiro 的 Cache ,本以为开启 redis 的缓存是一件很简单的事 阅读全文
posted @ 2020-01-17 15:42 JavaFish 阅读(435) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 高产似母猪,废话少说,今天刚好读到一篇关于 MySQL 语句底层如何执行的文章,以下是我的理解,分享给你们。 简单的 SQL 语句 上面是一条非常简单的 SQL 查询语句,咋一看是不是觉得很简单,但却不懂它内部的执 阅读全文
posted @ 2020-01-17 15:40 JavaFish 阅读(242) 评论(0) 推荐(0)
摘要:1、Sping MVC 工作原理 旧文提过,不再赘述。请务必通读以下文章: https://mp.weixin.qq.com/s/z fhmDa9iBwSG6OJx1x5hw 2、 IDEA 创建 web 项目 项目配置: 详细配置见: "https://www.cnblogs.com/shuais 阅读全文
posted @ 2020-01-17 15:35 JavaFish 阅读(224) 评论(0) 推荐(0)
摘要:继续 Spring 复盘,今天看了下 Spring 的 Bean 生命周期。 1、典型的 Spring 生命周期 在传统的 Java 应用中,bean 的生命周期很简单,使用 Java 关键字 new 进行Bean 的实例化,然后该 Bean 就能够使用了。一旦 bean 不再被使用,则由 Java 阅读全文
posted @ 2020-01-17 15:33 JavaFish 阅读(370) 评论(0) 推荐(0)
摘要:Spring AOP 基础 Java 动态代理实现,阅读文章之前,你最好有以下基础: "java动态代理" 1、什么是 AOP ? AOP(Aspect Oriented Programming),即面向切面编程,它是 OOP(Object Oriented Programming,面向对象编程)的 阅读全文
posted @ 2020-01-17 15:32 JavaFish 阅读(274) 评论(0) 推荐(0)
摘要:全面进入复习模式,从 Spring 开始。 1、关于 Spring Spring 是一个轻量级的开源框架,是为解决企业应用开发的复杂性而创建的。我很不喜欢这种略显官方的说辞。千人千面,每个人对技术的理解都不一样。而在我的理解中,Spring 的主要就解决了两件事情(当然它还解决了数据访问、远程调用、 阅读全文
posted @ 2020-01-17 15:31 JavaFish 阅读(256) 评论(0) 推荐(0)
摘要:写之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: "https://www.open open.com/lib/view/open1350865116821.html" 阅读全文
posted @ 2020-01-17 15:30 JavaFish 阅读(425) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 很久不见,因为忙着泡妞,断更了一个月,实在是罪过。废话不多说,最近在工作中遇到了使用 quartz 实现定时任务的需求。写出来分享给大家,权当笔记。 Spring + quartz 实现定时任务 因为在开发中遇到的 阅读全文
posted @ 2020-01-17 15:28 JavaFish 阅读(310) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 许久不见,最近公众号多了很多在校的师弟师妹们。有很多同学都加了我微信问了一些诸如 [如何自学 Java ]的问题,我都一一解答了,这是大家对我的信任,我非常感谢。你们知道我现在的职业是 java web 开发,可你 阅读全文
posted @ 2020-01-17 15:20 JavaFish 阅读(458) 评论(0) 推荐(0)
摘要:Java 是一门面向对象的语言,在 Java 里面一切都可以看作是一个对象,而 Java 里面所有的对象都默认继承于 Object 类,所以狗哥今天就复习了一遍这个类。 上图看出 Object 一共有 12 个方法,其中 registerNatives() 是由 C 语言实现的,这个不在研究范围内。 阅读全文
posted @ 2020-01-17 15:17 JavaFish 阅读(278) 评论(0) 推荐(0)
摘要:​ 老读者都知道,我是自学转行到 java 的。那时迫于生存压力,学得比较快,很多知识点仅停留在会用的层面。最近,光会用不知道原理,没什么意思。每次使用时都是机械性的 "熟练使用"。加之一直有回归基础的想法,所以想在业余时间复盘 java 的基础知识。知其然知其所以然是技术人的追求。 说到复盘基础, 阅读全文
posted @ 2020-01-17 15:16 JavaFish 阅读(175) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 最近在复习 Java 相关,回顾了下代理模式。代理模式在 Java 领域很多地方都有应用,它分为静态代理和动态代理,其中 Spring AOP 就是动态代理的典型例子。动态代理又分为接口代理和 cglib (子类代理),结合我的理解 阅读全文
posted @ 2020-01-17 15:14 JavaFish 阅读(1206) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 这周身体不适请了两天病假,只上了三天班。本来不打算发文,但写文章这件事我很想做好。咬咬牙还是坚持下去。废话少说,今天给你们带来的是如何做好 Java 中的异常处理。 Exception和Error有什么区别? 要做 阅读全文
posted @ 2020-01-17 15:12 JavaFish 阅读(400) 评论(0) 推荐(0)
摘要:最近很多朋友通过我买了阿里云的服务器,大多是学生,啥也不懂也不知道怎么用。每天微信上一个个问我,浪费我时间。但又不能不帮,谁让我长得帅呢。于是就有了这篇文章。 一、配置服务器 如下图,点击用户中心 如下图,我的已使用过,你们还未使用的提货券,在操作那一列点击使用。 选择配置,地域选离你最近的地方,我 阅读全文
posted @ 2020-01-17 15:09 JavaFish 阅读(535) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 最近公司某个项目的架构越来越庞大,维护起来非常难受。我主动想领导提出要把这个项目重构在工作中需要把原来的项目重构成微服务架构,因此学习微服务相关知识,在这里记录下来,权当笔记的同时也希望能对你有启发。今天就来聊聊什 阅读全文
posted @ 2020-01-17 15:08 JavaFish 阅读(543) 评论(0) 推荐(1)
摘要:如上图,做公众号以来,每天都会有读者朋友问我?老哥。有没有 XXX 教程?被问了很多次,每次回答也是心累。所以就干脆写篇文章说下,我平时都上那些网站学习。 1. 极客时间 "https://time.geekbang.org/" 极客时间是一个付费的学习社区。我学习的主要阵地,它的课程质量肯定是没得 阅读全文
posted @ 2020-01-17 15:06 JavaFish 阅读(332) 评论(0) 推荐(0)
摘要:说到搜索引擎,大家第一时间肯定想到的是某度和 Google 。Google 的搜索质量没得说,但因为某些众所周知的原因, 一般人在国内都只能用某度。然而某度的搜索质量。。。不敢恭维,甚至于一些大 V 都直接怼。前段时间,作家六六就点名怒怼某度及其老板。 类似的新闻数不胜数,不用说,国内对某度早已是天 阅读全文
posted @ 2020-01-17 15:05 JavaFish 阅读(1342) 评论(0) 推荐(0)
摘要:哈喽,大家好。相信大家都知道金九银十,在人才市场上是指每年的 9 月和 10 月是企业的招聘高峰期。这个时候企业往往有大量招聘需求,求职者在这个时候就找工作无疑是最适合的。需求大,谈工资什么的就更容易达到你的心理预期。想拿高薪就意味着强实力,企业也不是善堂,也不是傻子,不会平白无故给你高薪的。当然这 阅读全文
posted @ 2020-01-17 15:04 JavaFish 阅读(2559) 评论(0) 推荐(1)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 最近更新比较佛系,一方面,工作确实有点忙,但是做的都特么旧项目。09 年的代码都出来了,贼特么恶心。感觉待不久了。另一方面,没想好最近有啥要跟大家分享。刚好今天打开 Chrome ,发现自己一直在用的几个很不错的 Chrome 阅读全文
posted @ 2020-01-17 15:03 JavaFish 阅读(517) 评论(0) 推荐(0)
摘要:一个读者,也是我的好朋友投稿的一篇关于 SpringBoot 启动原理的文章,才大二就如此优秀,未来可期。 我一直想了解一下 SpirngBoot 的是如何启动的,我想就来写一篇关于 SpirngBoot 启动分析吧。第一次写那么高深的技术话题理解不到位的话也请多多包涵。 源码版本 SpinrgBo 阅读全文
posted @ 2020-01-17 15:00 JavaFish 阅读(208) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 这个月过去两天了,这篇文章才跟大家见面,最近比较累,大家见谅下。下班后闲着无聊看了下 SpringBoot 中的自动配置,把我的理解跟大家说下。 配置文件能写什么? 相信接触过 SpringBoot 的朋友都知道 Spring 阅读全文
posted @ 2020-01-17 14:58 JavaFish 阅读(357) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 休息日闲着无聊看了下 SpringBoot 中的日志实现,把我的理解跟大家说下。 门面模式 说到日志框架不得不说门面模式。门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。用一张图来 阅读全文
posted @ 2020-01-17 14:57 JavaFish 阅读(562) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 最近有跳槽的想法,所以故意复习了下 SpringBoot 的相关知识,复习得比较细。其中有些,我感觉是以前忽略掉的东西,比如 @Value 和 @ConfigurationProperties 的区别 。 如何使用 定义两个对 阅读全文
posted @ 2020-01-17 14:56 JavaFish 阅读(410) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 如题,今天介绍下 SpringBoot 是如何整合 MongoDB 的。 MongoDB 简介 MongoDB 是由 C++ 编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,它将数据存储为一个文档,数据结构由键 阅读全文
posted @ 2020-01-17 11:51 JavaFish 阅读(774) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人。如有问题,请后台留言,反正我也不会听。 前言 昨天那篇介绍了 WebSocket 实现广播,也即服务器端有消息时,将消息发送给所有连接了当前 endpoint 的浏览器。但这无法解决消息由谁发送,又由谁接收的问题。所以,今天写一篇实现一对一的聊天室。 今天这一篇建立在昨天 阅读全文
posted @ 2020-01-17 11:48 JavaFish 阅读(732) 评论(0) 推荐(1)
摘要:前言 如题,今天介绍的是 SpringBoot 整合 WebSocket 实现广播消息。 什么是 WebSocket ? WebSocket 为浏览器和服务器提供了双工异步通信的功能,即浏览器可以向服务器发送信息,反之也成立。 WebSocket 是通过一个 socket 来实现双工异步通信能力的, 阅读全文
posted @ 2020-01-17 11:47 JavaFish 阅读(973) 评论(0) 推荐(0)
摘要:一、依赖原则 假设,在 模块中, 的版本是 ,在 模块中,它虽然继承于 模块,但是它排除了在 模块中继承 的版本,自己引入了 的 版本。 此时,相对于 而言, 的依赖路径是 ,长度是 3;而 的依赖路径是 长度是 2。 所以 继承的是 模块中的 log 版本,而不是 中的,这叫 路径优先原则(谁路径 阅读全文
posted @ 2020-01-17 11:26 JavaFish 阅读(722) 评论(0) 推荐(0)
摘要:一、什么是 Maven? 是一个项目管理工具,它的本质是一个 项目对象模型(POM) ,体现在配置中就是我们常见的 文件,而这个 文件就是 的核心,它管理了整个项目的生命周期。它主要做两件事: 项目构建:对项目进行编译、打包、测试、部署以及上传到私服仓库等 依赖管理: 诞生时就提出了一个仓库的概念, 阅读全文
posted @ 2020-01-17 11:24 JavaFish 阅读(697) 评论(0) 推荐(0)
摘要:为跳槽面试做准备,今天开始进入 Java 基础的复习。希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆。 一、什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中。那这个看似简单的过程,背后其实是数 阅读全文
posted @ 2020-01-17 11:23 JavaFish 阅读(509) 评论(0) 推荐(0)
摘要:为跳槽面试做准备,今天开始进入 Java 基础的复习。希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆。 一、什么是 File 类? java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 二、 阅读全文
posted @ 2020-01-17 11:22 JavaFish 阅读(267) 评论(0) 推荐(0)
摘要:前言 为跳槽面试做准备,今天开始进入 Java 基础的复习。希望基础不好的同学看完这篇文章,能掌握 lambda 表达式,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆。 一、什么是 lambda 表达式 Java8 是我们使用最广泛的稳定 Java 版本,lambda 就是其中最引 阅读全文
posted @ 2020-01-17 11:21 JavaFish 阅读(423) 评论(0) 推荐(1)
摘要:前言 为跳槽面试做准备,今天开始进入 Java 基础的复习。希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆。 一、什么是泛型 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解 阅读全文
posted @ 2020-01-17 11:19 JavaFish 阅读(565) 评论(0) 推荐(2)
摘要:估计很多朋友都认为参数校验是客户端的职责,不关服务端的事。其实这是错误的,学过 Web 安全的都知道,客户端的验证只是第一道关卡。它的参数验证并不是安全的,一旦被有心人抓到可乘之机,他就可以有各种方法来摸拟系统的 Http 请求,访问数据库的关键数据。轻则导致服务器宕机,重则泄露数据。所以,这时就需 阅读全文
posted @ 2020-01-04 17:38 JavaFish 阅读(414) 评论(0) 推荐(0)
摘要:如题,今天介绍 SpringBoot 是如何统一处理全局异常的。SpringBoot 中的全局异常处理主要起作用的两个注解是 @ControllerAdvice 和 @ExceptionHandler ,其中 @ControllerAdvice 是组件注解,添加了这个注解的类能够拦截 Control 阅读全文
posted @ 2020-01-04 17:36 JavaFish 阅读(527) 评论(0) 推荐(0)
摘要:前言 如题,今天介绍 SpringBoot 与 Mybatis 的整合以及 Mybatis 的使用,之前介绍过了 SpringBoot 整合MyBatis 注解版的使用,上一篇介绍过 MyBatis 的理论,今天这篇就不介绍 MyBatis 的理论了,有兴趣的跳转阅读: "SpringBoot 实战 阅读全文
posted @ 2020-01-04 17:34 JavaFish 阅读(432) 评论(0) 推荐(0)
摘要:前言 如题,今天介绍 Thymeleaf ,并整合 Thymeleaf 开发一个简陋版的学生信息管理系统。 SpringBoot 提供了大量模板引擎,包含 Freemarker、Groovy、Thymeleaf、Velocity 以及 Mustache,SpringBoot 中推荐使用 Thymel 阅读全文
posted @ 2020-01-04 17:32 JavaFish 阅读(393) 评论(0) 推荐(0)
摘要:如题,今天介绍 SpringBoot 的数据缓存。做过开发的都知道程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的,当需要重复获取相同数据时,一次又一次的请求数据库或者远程服务,导致大量时间耗费在数据库查询或远程方法调用上,导致性能的恶化,这便是数据缓存要解决的问题。 Spring 的缓存 阅读全文
posted @ 2020-01-04 17:27 JavaFish 阅读(746) 评论(0) 推荐(0)
摘要:前言 如题,今天介绍 SpringBoot 的 声明式事务。 Spring 的事务机制 所有的数据访问技术都有事务处理机制,这些技术提供了 API 用于开启事务、提交事务来完成数据操作,或者在发生错误时回滚数据。 而 Spring 的事务机制是用统一的机制来处理不同数据访问技术的事务处理,Sprin 阅读全文
posted @ 2020-01-04 17:20 JavaFish 阅读(767) 评论(0) 推荐(0)
摘要:前言 如题,今天介绍 SpringBoot 与 Mybatis 的整合以及 Mybatis 的使用,本文通过注解的形式实现。 什么是 Mybatis MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结 阅读全文
posted @ 2020-01-04 17:18 JavaFish 阅读(364) 评论(0) 推荐(0)
摘要:前言 如题,今天介绍 springboot 默认日志的配置。 默认日志 Logback 默认情况下,Spring Boot 用 Logback 来记录日志,并用 INFO 级别输出到控制台。如果你在平常项目中用过 Spring Boot,你应该已经注意到很多 INFO 级别的日志了。默认日志长这样: 阅读全文
posted @ 2020-01-04 17:14 JavaFish 阅读(731) 评论(0) 推荐(0)
摘要:前言 如题,今天介绍 Spring Data JPA 的使用。 什么是 Spring Data JPA 在介绍 Spring Data JPA 之前,首先介绍 Hibernate 。 Hibernate 使用 O/R 映射 (Object Relation Mapping) 技术实现数据访问, O/ 阅读全文
posted @ 2020-01-04 17:12 JavaFish 阅读(375) 评论(0) 推荐(0)
摘要:前言 如题,今天介绍 springboot 通过jdbc访问关系型mysql,通过 spring 的 JdbcTemplate 去访问。 准备工作 SpringBoot 2.x jdk 1.8 maven 3.0 idea mysql 构建 SpringBoot 项目,不会的朋友参考旧文章: "如何 阅读全文
posted @ 2020-01-04 17:08 JavaFish 阅读(404) 评论(0) 推荐(0)
摘要:自定义属性加载 首先构建 SpringBoot 项目,不会的看这篇旧文 "使用 IDEA 构建 Spring Boot 工程" 。 首先在项目根目录 src resource application.properties 文件下加入以下自定义属性: 使用 @value 注解读取配置文件属性: 之后新 阅读全文
posted @ 2020-01-04 17:00 JavaFish 阅读(699) 评论(0) 推荐(0)
摘要:前言 快过年了,不知道你们啥时候放年假,忙不忙。反正我是挺闲的,所以有时间写 blog。今天给你们带来 SpringBoot 集成 Swagger2 的教程。 什么是 Swagger2 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 为什 阅读全文
posted @ 2020-01-04 16:58 JavaFish 阅读(415) 评论(0) 推荐(0)
摘要:微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题。 前言 上周去了开年会,去的地方是温泉度假村。老实说,我是无感的,90% 是因为没中奖(老板太抠,两百人只抽三个奖),10 % 是因为从小泡温泉长大没啥感觉。 LomBok 是什么? LomBok 是一个插件,它能通过注解 阅读全文
posted @ 2020-01-04 16:56 JavaFish 阅读(747) 评论(0) 推荐(0)