JAVA基础
文章平均质量分 69
后端开发学习之java基础
衍射
我看青山多妩媚,料青山看我应如是
展开
-
Java常用算法三:01背包问题
文章目录一、动态规划1、简介2、应用场景:背包问题二、01背包问题1.1 分析过程1.2 java实现01背包问题求解笔记来源:尚硅谷一、动态规划1、简介动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。(即下一个原创 2020-08-03 11:49:38 · 811 阅读 · 0 评论 -
Java常用算法二:分治法
文章目录一、分治算法的基本步骤二、分治算法解决汉诺塔问题2.1 汉诺塔的规则:2.2 使用分治算法笔记参考:尚硅谷分治法就是把很复杂的问题分而治之,把一个很大的问题分成几个很小的问题,再把这几个很小的问题分成很多个更小的问题。直到子问题可以简单地直接求解,那么原问题的解就是子问题解的集合。分治算法可以解决:二分搜索大整数乘法棋盘覆盖合并排序快速排序线性时间选择最接近点对问题循环赛日程表汉诺塔一、分治算法的基本步骤分治法在每一层递归上都有三个步骤:分解:将原问题分解为原创 2020-08-02 21:44:23 · 311 阅读 · 0 评论 -
JAVA常用算法一:二分查找【递归 or 非递归】
文章目录一、Java实现二分查找【递归】二、Java实现二分查找【非递归】三、测试一、Java实现二分查找【递归】 //递归使用二分查找 public static int binarySearchRecursion(int[] arr, int target, int left, int right) { if(left > right) return -1; int mid = (left + right) / 2; int midVal = arr[mid]; if(原创 2020-08-02 20:23:14 · 343 阅读 · 0 评论 -
java 反射机制及其应用
文章目录一、反射的概述二、关于Class类的理解并获取Class实例2.1 关于 java.lang.Class 类的理解2.2 获取Class实例的四种方式三、Class实例对应的结构说明四、理解类的加载过程与ClassLoader4.1 类的加载过程4.2 ClassLoader的理解笔记来源: 尚硅谷一、反射的概述Reflectlon (反射) 是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载原创 2020-07-31 12:06:18 · 433 阅读 · 0 评论 -
java Map及其实现类的底层原理
文章目录一、Map接口及其多个实现类的对比二、Map中存储的key-value特点三、HashMap在JDK7中的底层原理四、HashMap在JDK8中的底层原理五、HashMap在JDK7中的底层源码5.1 构造器5.2 put方法六、HashMap在JDK8的源码分析6.1 构造器6.2 put七、LinkedHashMap的底层实现笔记来源: 尚硅谷一、Map接口及其多个实现类的对比首先看下Map及其实现类的类图关系:Map:双列数据,存储key-value对的数据|实现类 |含义 |原创 2020-07-30 18:58:12 · 1235 阅读 · 0 评论 -
java实现数据结构-堆排序
文章目录一、堆排序的基本介绍二、堆排序的基本思想三、堆排序的实现3.1 堆排序的思路3.2 堆排序的java实现笔记来源: 尚硅谷一、堆排序的基本介绍堆排序是利用堆这种数据结构而设计的一种排序算法, 堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn), 它也是不稳定排序。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值, 称为大顶堆,注意: 没有要求结点的左孩子的值和右孩子的值的大小关系每个结点的值都小于或等于其左右孩子结点的值,称为小顶原创 2020-07-29 15:15:32 · 236 阅读 · 0 评论 -
Jexl表达式引擎-根据字符串动态执行JAVA
Table of Contents generated with DocToc一、使用场景二、市面上表达式引擎比较2.1 Aviator2.2 Jexl一、使用场景在做某些项目的时候,有时会遇到如下情景:用户需要传入某个JAVA 表达式,然后后台将这个表达式当作JAVA代码执行二、市面上表达式引擎比较我们有许多表达式引擎可供选择:JexlAviator2.1 Aviatoravitor具体使用技巧可以参考这篇博客:https://blog.csdn.ne..原创 2020-07-20 10:45:19 · 1201 阅读 · 0 评论 -
fastjson将json字符串转化为java对象
目录一、导入一个fastjson的jar包二、Json字符串格式三、根据json的格式创建Java类四、给java类的所有属性添加setter方法五、转换为java对象一、导入一个fastjson的jar包在pom.xml里加上这个依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.转载 2020-07-16 09:52:42 · 4456 阅读 · 1 评论 -
Springboot整合SpringSecurity--对静态文件进行权限管理
文章目录一、依赖管理二、配置config文件一、依赖管理springboot 2.2.5spring security 5.2.4pom.xml需要的依赖如下: <dependencies> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<原创 2020-06-20 16:34:38 · 2340 阅读 · 2 评论 -
springboot整合Redis
文章目录一、前言二、springboot+redis参考视频:快速上手Spring Boot整合Redis一、前言Redis 和 mongodb 是非关系型数据库的两个主要产品。随着互联网的快速发展和业务量的激增,传统的关系型数据库已经无法应对结构复杂以及规模很大的数据访问了,未来提高速度,我们采用非关系型数据库(结构灵活,访问快)。Redis基于内存进行存储,是支持key-value...原创 2019-11-15 10:59:21 · 146 阅读 · 0 评论 -
nginx的基础学习+实战
文章目录一、前言二、反向代理三、负载均衡四、动静分离五、高可用参考视频:尚硅谷Nginx教程(2019发布)一、前言Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,特点是占有内存少,并发能力强。在百度、腾讯、淘宝等网站广泛应用。有测试表明,nginx能支持高达50000个并发连接数。在官网下载nginx,直接下载zip解压我们打开conf/nginx...原创 2019-11-14 00:05:14 · 200 阅读 · 0 评论 -
springboot+junit测试
文章目录一、junit断言二、测试模块三、使用Mockito作为桩模块四、使用mockMvc测试web层参考视频:用Spring Boot编写RESTful API参考链接:Spring Boot构建RESTful API与单元测试一、junit断言函数作用TestCase.assertTrue判断条件是否为真TestCase.assertFalse判断条件...原创 2019-11-09 14:18:45 · 515 阅读 · 0 评论 -
swagger -- 前后端分离的API接口
文章目录一、背景二、swagger介绍三、在maven+springboot项目中使用swagger一、背景现在的网站大多都是前后端分离式的开发,前后端都衍生出了自己的框架。现在前后端交互的唯一方式就是API接口。曾经前后端交互都需要后端人员手动编写API接口文档,规定路径、请求方式、返回类型,这样效率很低。swagger就是更好地书写API文档的框架。二、swagger介绍sw...原创 2019-11-09 10:23:26 · 2130 阅读 · 0 评论 -
tomcat学习
文章目录前言一、tomcat解读server.xml文件二、虚拟主机前言tomcat的下载安装配置等简单操作就不在此多说了,本文看看tomcat的核心。一、tomcat解读server.xml文件tomcat的核心server.xml文件在conf目录下:打开server.xml后,其中有一段名为Catalina的Service代码: <Service name="Cata...原创 2019-10-27 12:16:31 · 237 阅读 · 0 评论 -
Maven原理学习
文章目录一、Maven概述二、maven依赖管理三、maven文件结构四、maven仓库的种类以及彼此联系参考链接:Maven基础篇(IDEA版)一、Maven概述Maven是一个项目管理工具,他包含了一个项目对象模型(POM),一组标准组合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期中插件目标的逻辑。Maven能解决什么问题?项目需要大量的jar包导入时,每次都要...原创 2019-10-25 20:35:44 · 432 阅读 · 0 评论 -
Spring框架零基础学习(一):IOC|DI、AOP
文章目录一、IDEA创建Spring项目二、Spring: IOC和DI参考链接:HOW2J.CNidea创建一个spring项目一、IDEA创建Spring项目创建方法:idea创建一个spring项目maven管理项目,生成项目结构如下:二、Spring: IOC和DIIOC:反转控制,将对象创建的过程交给SpringDI:依赖注入,拿到的对象,属性可以被注入了相关值,直...原创 2019-10-24 10:03:16 · 121 阅读 · 0 评论 -
JAVA 多线程
前言:我们通过几个示例对JAVA中线程的几个问题进行讲述:同步、死锁、交互//TODO 线程池java线程的同步问题示例背景为:火车站有一个系统,有票20000张,允许工作人员往里面加票,顾客从其中购票现在我们用JAVA来模拟一下这个场景:顾客从其中购票20000次,工作人员加票20000次,两者同时进行。这是Ticket类,保存有票的数量和对票的操作/* *...原创 2019-10-19 20:18:51 · 216 阅读 · 0 评论 -
JAVA集合四:比较器--类自定义排序
参考链接:HOW2J.CN前言对于JAVA集合,都能够用集合的工具类Collections 提供的方法:Collections.sort(List list)Collections.sort(List list, Comparator c)来进行排序。很多时候,集合中存储的不是基本的数据类型,而是我们自己定义的类的对象,我们希望用自己的排序方式对集合中的元素进行排序,我们可以通过让...原创 2019-10-17 19:07:32 · 430 阅读 · 0 评论 -
JAVA集合三:几种Set框架
参考链接:HOW2J.CNHashSet简单讲解HashSetHashSet与C++STL中Set基本类似,具有的特点便是:集合中元素不可重复集合中元素顺序 ≠ 插入顺序常用方法功能add向集合中添加元素clear清空集合remove删除集合中指定元素contains查看是否包含某个元素size集合中元素的数量pack...原创 2019-10-17 16:31:26 · 264 阅读 · 0 评论 -
JAVA集合二:HashMap和Hashtable
JAVA 集合二:HashMap和Hashtable参考链接:HOW2J.CNHashMapHashMap实现了JAVA的Map接口,类似于C++的STL框架的Map,是存储键值对的数据结构。键(key)是唯一的,但值(value)可以重复,如果向HashMap的对象中插入一个键值对,但键已经在HashMap对象中存在了,则会覆盖之前的键值对。package blog;import ...原创 2019-10-17 16:08:41 · 126 阅读 · 0 评论 -
JAVA集合一:ArrayList和LinkedList
JAVA集合一:ArrayList和LinkedList参考链接:HOW2J.CN前言这几篇博客重点记录JAVA的几个重要的集合框架:ArrayList、LinkedList、HashMap、HashTable和HashSet。主要从ArrayList和LinkedList、HashMap和HashTable的区别,以及各集合框架的使用等方面进行记录。本篇博客介绍ArrayList和Lin...原创 2019-10-17 15:32:58 · 189 阅读 · 0 评论 -
JAVA 反射应用
JAVA 反射的应用参考链接:Java高级特性——反射Java反射技术详解前言我们知道,JAVA类的使用需要JVM提前将类加载到内存中,之后才能使用。有时服务器突然需要用到某个类,但是我们的代码却没有将这个类加载到内存中,无法生成对应的对象,有没有办法根据服务器需要的类的名字动态地生成对象呢?有!JAVA的反射机制给我们提供了实现这种方法的可能性。目前spring等许多框架的底层原理都与...原创 2019-10-17 09:25:20 · 201 阅读 · 0 评论 -
JAVA I/O基本操作
JAVA I/O基本操作JAVA文件操作JAVA字节流JAVA字符流JAVA缓存流JAVA对象流JAVA数据流本文主要借鉴以下博客和网站:how2j.cn深入理解java中的I/OJAVA文件操作JAVA描述和管理文件的类是java.io.File类,通过File生成的对象file,可以通过以下指令对文件进行操作:file.exists() – 判断文件是否存在file.isDi...原创 2019-10-15 20:53:38 · 234 阅读 · 0 评论