
java
文章平均质量分 83
三郎君
写文章勤分享:巩固自己,帮助他人,何乐而不为!
展开
-
Java的版本区别
1:Java的版本区别 常用的 java 程序分为 Java SE、java EE、Java ME三个版本,介绍如下:1. Java SE(Java Platform,Standard Edition)java se 以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE是基础包,但是也包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。2. ja原创 2021-03-22 17:20:31 · 642 阅读 · 0 评论 -
传统的JDBC 编程的分析(入门必会)
传统的JDBC 编程的分析步骤://加载数据库驱动//通过驱动管理类获取数据库链接//定义 sql 语句 ?表示占位符//获取预处理 statement//设置参数,第一个参数为 sql 语句中参数的序号(从 1 开始),第二个参数为设置的参数值//向数据库发出 sql 执行查询,查询出结果集//遍历查询结果集//释放资源代码:public static void main(String[] args) {Connection connection = null;PreparedS原创 2020-12-30 20:32:30 · 343 阅读 · 0 评论 -
简述一下什么是Nginx,它有什么优势和功能?
简述一下什么是Nginx,它有什么优势和功能?NginxNginx---Ngine X优点:(1)更快(2)高扩展性,跨平台(3)高可靠性:用于反向代理,宕机的概率微乎其微(4)低内存消耗(5)单机支持10万以上的并发连接(6)热部署(7)最自由的BSD许可协议Nginx是一个web服务器和方向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx—Ngine X是一款免费的、自由的、开源的、高性能HT原创 2020-12-16 16:20:06 · 2285 阅读 · 0 评论 -
RPC 的实现原理
RPC 的实现原理首先需要有处理网络连接通讯的模块,负责连接建立、管理和消息的传输。其次需要有编解码的模块,因为网络通讯都是传输的字节码,需要将我们使用的对象序列化和反序列化。剩下的就是客户端和服务器端的部分,服务器端暴露要开放的服务接口,客户调用服务接口的一个代理实现,这个代理实现负责收集数据、编码并传输给服务器然后等待结果返回...原创 2020-12-16 16:15:52 · 153 阅读 · 0 评论 -
操作系统原理课程设计:模拟文件管理系统简单介绍和全部源代码
操作系统原理课程设计:模拟文件管理系统简单介绍和全部源代码零、前面的话一、项目需求二、具体技术细节三、开发工具四、文件系统管理方案4.1 存储空间概述4.2 存储空间管理方式4.3 空闲空间管理方式4.4 文件目录结构4.5 FCB4.5.1 概述4.5.2 内容五、程序操作指南5.1 特殊文件说明5.1.1 BitMap&&Fat.txt5.1.2 recover.txt5.2 程序概述5.2.1 界面构成5.2.1.1 搜索框5.2.1.2 算法5.2.1.3 文件树5.2.1.4 显示原创 2020-12-16 16:05:56 · 3451 阅读 · 11 评论 -
解释更多 Staters 的内容?
能否举一个例子来解释更多 Staters 的内容?让我们来思考一个 Stater 的例子 -Spring Boot Stater Web。如果你想开发一个 web 应用程序或者是公开 REST 服务的应用程序。Spring Boot Start Web 是首选。让我们使用 Spring Initializr 创建一个 Spring Boot Start Web 的快速项目。Spring Boot Start Web 的依赖项下面的截图是添加进我们应用程序的不同的依赖项依赖项可以被分为:S原创 2020-12-10 14:02:27 · 463 阅读 · 0 评论 -
Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
Spring Boot 的核心配置文件有哪几个?它们的区别是什么?Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。bootstrap 配置文件有以下几个应用场景。使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;一些固定的不能被覆盖的属性原创 2020-12-10 13:50:46 · 2086 阅读 · 1 评论 -
三郎前端特效学习源代码:魔法旋转粒子动态渐变特效
三郎前端特效学习源代码:魔法旋转粒子动态渐变特效简单介绍效果图源代码html部分js部分第二个js部分简单介绍类似电影里的魔法效果轨迹次数速度都可以自己改改效果图源代码html部分<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, ini原创 2020-12-10 13:35:17 · 782 阅读 · 0 评论 -
SpringBoot 实现热部署有哪几种方式?
SpringBoot 实现热部署有哪几种方式?主要有两种方式:1 Spring Loaded2 Spring-boot-devtools原创 2020-12-10 09:37:07 · 623 阅读 · 1 评论 -
Spring Boot中的监视器是什么?
Spring Boot中的监视器是什么?Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为HTTP URL访问的REST端点来检查状态。...原创 2020-12-09 16:18:32 · 1679 阅读 · 0 评论 -
如何理解 Spring Boot 中的 Starters?
如何理解 Spring Boot 中的 Starters?Starters是什么:Starters命名:Starters分类:Starters是什么:Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要加入springboot-starter-data-jpa启动器依赖就能使用了。Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一原创 2020-12-09 16:14:13 · 3865 阅读 · 0 评论 -
运行Spring Boot有哪几种方式?
运行Spring Boot有哪几种方式?1 打包用命令或者放到容器中运行2 用 Maven/Gradle 插件运行3 直接执行 main 方法运行原创 2020-12-09 16:10:23 · 2238 阅读 · 0 评论 -
什么是SpringBoot?为什么要用SpringBoot?
什么是SpringBoot?为什么要用SpringBoot?用来简化spring应用的初始搭建以及开发过程使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序 main方法运行嵌入的Tomcat 无需部署war文件简化maven配置自动配置spring添加对应功能starter自动化配置spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用Spring Boot 优点非常多,如:一、原创 2020-12-09 16:07:11 · 510 阅读 · 0 评论 -
Mybatis的一级、二级缓存是什么?
Mybatis的一级、二级缓存:(1)一级缓存:基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session进行flush 或 close 之后,该 Session 中的所有 Cache 就将清空,默认打开一级缓存。(2)二级缓存:与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap 存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如 Ehcache。默认不打开二级缓存,要原创 2020-12-09 16:04:29 · 698 阅读 · 2 评论 -
三郎数据结构算法学习笔记:如何根据序列构建平衡二叉搜索树?
如何根据序列构建平衡二叉搜索树?什么是平衡二叉搜索树(AVL)?1、AVL树的定义2、AVL树的特点什么是右单旋转?什么是左单旋转?什么是双旋转?RR RL LR什么意思?实例题目过程什么是平衡二叉搜索树(AVL)?1、AVL树的定义AVL树又称平衡二叉搜索树,它能保证二叉树高度相对平衡,尽量降低二叉树的高度,提高搜索效率2、AVL树的特点(1)AVL的左右子树高度之差的绝对值不超过1(2)树中的每个左子树和右子树都是AVL树(3)每个节点都有一个平衡因子,任一节点的平衡因子只能是(-1、0原创 2020-12-08 09:37:58 · 3167 阅读 · 5 评论 -
什么是MyBatis?
什么是MyBatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)通过xml 文件或注解的方式将要执行的各种 statem原创 2020-12-07 15:54:04 · 1455 阅读 · 0 评论 -
spring bean的生命周期
spring bean的生命周期(1)实例化Bean:(2)设置对象属性(依赖注入):(3)处理Aware接口:(4)BeanPostProcessor:(5)InitializingBean 与 init-method:(6)如果这个Bean实现了BeanPostProcessor接口,(7)DisposableBean:(8)destroy-method:首先说一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy;Spring上下文中的Bean生命周期也类原创 2020-11-27 11:46:21 · 109 阅读 · 0 评论 -
SpringMVC常用的注解有哪些?
SpringMVC常用的注解有哪些?@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。...原创 2020-11-27 11:41:46 · 550 阅读 · 0 评论 -
SpringMVC怎么样设定重定向和转发的?
SpringMVC怎么样设定重定向和转发的?(1)转发: 在返回值前面加"forward:""forward:user.do?name=method4"(2)重定向: 在返回值前面加"redirect:""redirect:http://www.baidu.com"原创 2020-11-27 11:40:17 · 681 阅读 · 0 评论 -
Spring依赖注入的方式有几种,各是什么?
一、构造器注入将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。优点:对象初始化完成后便可获得可使用的对象。缺点:当需要注入的对象很多时,构造器参数列表将会很长;不够灵活。若有多种注入方式,每种方式只需注入指定几个依赖,那么就需要提供多个重载的构造函数,麻烦。二、setter方法注入IoC Service Provider通过调用成员变量提供的setter函数将被依赖对象注入给依赖类。优点:灵活。可以选择性地注入需要的对象。缺点:依赖对象初始化完成后由于尚未注原创 2020-11-27 11:36:28 · 2803 阅读 · 1 评论 -
Java中八种基本数据类型的大小,以及他们的封装类
Java中八种基本数据类型的大小,以及他们的封装类1.int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null,所以Integer能区分出0和null的情况。一旦java看到null,就知道这个引用还没有指向某个对象,再任何引用使用前,必须为其指定一个对象,否则会报错。2.基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间之后才可以赋值。数组对象也是一个引用对象,将一个数组原创 2020-11-27 11:33:31 · 2452 阅读 · 0 评论 -
Java中标识符的命名规则是什么?硬性要求和非硬性要求
Java中标识符的命名规则是什么?标识符的含义:命名规则:(硬性要求)命名规范:(非硬性要求)标识符的含义:是指在程序中,我们自己定义的内容,譬如,类的名字,方法名称以及变量名称等等,都是标识符。命名规则:(硬性要求)标识符可以包含英文字母,0-9的数字,$以及_标识符不能以数字开头标识符不是关键字命名规范:(非硬性要求)类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。方法名规范:同变量名...原创 2020-11-27 11:29:23 · 997 阅读 · 0 评论 -
三郎数据结构算法学习笔记:斐波那契(黄金分割法)查找算法
三郎数据结构算法学习笔记:斐波那契[黄金分割法]查找算法算法介绍原理运行结果源代码算法介绍斐波那契(黄金分割法)查找基本介绍:黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是 0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神奇的数字,会带来意向不大的效果。斐波那契数列 {1, 1, 2, 3, 5, 8, 13, 21, 34, 55 }发现斐波那契数列的两个相邻数 的比例,无限接近 黄金分原创 2020-11-25 16:42:57 · 187 阅读 · 1 评论 -
三郎数据结构算法学习笔记:插值查找算法
三郎数据结构算法学习笔记:插值查找算法算法介绍图示运行结果源代码算法介绍插值查找算法插值查找原理介绍: 插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid 处开始查找。将折半查找中的求 mid 索引的公式 , low 表示左边索引 left, high 表示右边索引;right. key 就是前面我们讲的 findVal插值索引:int mid = low + (high - low) * (key - arr[low]) / (arr[high] - arr[low]) ;对原创 2020-11-24 19:59:56 · 221 阅读 · 1 评论 -
三郎数据结构算法学习笔记:二分法查找
三郎数据结构算法学习笔记:二分法查找查找算法介绍图示运行结果源代码查找算法介绍前提:一组数据已经是有序的分成俩部分,索引与midvalue进行比较进入部分中,减少了查找次数图示运行结果源代码package com.atguigu.search;import java.util.ArrayList;import java.util.List;//注意:使用二分查找的前提是 该数组是有序的.public class BinarySearch { public static v原创 2020-11-24 19:54:39 · 201 阅读 · 0 评论 -
三郎数据结构算法学习笔记:顺序查找算法
三郎数据结构算法学习笔记:顺序查找算法查找算法介绍运行结果源代码查找算法介绍根据下表等索引按照先后顺序查找的算法如果找到了,就提示找到,并给出下标值运行结果源代码package com.atguigu.search;public class SeqSearch { public static void main(String[] args) { int arr[] = { 1, 9, 11, -1, 34, 89 };// 没有顺序的数组 int index = seqSear原创 2020-11-24 19:45:59 · 209 阅读 · 0 评论 -
三郎数据结构算法学习笔记:各种排序算法时间复杂度比较
各种排序算法时间复杂度比较如下图:相关术语解释:稳定:如果 a 原本在 b 前面,而 a=b,排序之后 a 仍然在 b 的前面;不稳定:如果 a 原本在 b 的前面,而 a=b,排序之后 a 可能会出现在 b 的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度:运行完一个程序所需内存的大小。n: 数据规模k: “桶”的个数In-place:不占用额外内存O原创 2020-11-24 19:41:32 · 215 阅读 · 0 评论 -
三郎数据结构算法学习笔记:基数排序
三郎数据结构算法学习笔记:基数排序排序介绍思想图示运行结果源代码排序介绍基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法基数排序(Radix Sort)是桶排序的扩展基数排序是 1887 年赫尔曼·何乐礼发明的。它是这样实现的:将整数按位数切割成不原创 2020-11-24 19:37:56 · 201 阅读 · 1 评论 -
三郎数据结构算法学习笔记:快速排序
三郎数据结构算法学习笔记:快速排序快速排序法介绍基本思想:图解运行结果源代码快速排序法介绍快速排序(Quicksort)是对冒泡排序的一种改进。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列图解运行结果不愧是快速排序:排序前和排序后一秒内完成源代码package com.atguigu.sort;import ja原创 2020-11-24 13:40:04 · 237 阅读 · 5 评论 -
三郎数据结构算法学习笔记:希尔排序
三郎数据结构算法学习笔记:希尔排序排序介绍图示运行结果源代码排序介绍希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序图示运行结果源代码package com.atguigu.sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public c原创 2020-11-24 13:22:02 · 159 阅读 · 0 评论 -
三郎数据结构算法学习笔记:插入排序
三郎数据结构算法学习笔记:插入排序排序介绍插入排序法介绍:插入排序法思想:图示运行结果源代码排序介绍插入排序法介绍:插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序法思想:插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将原创 2020-11-24 13:16:03 · 146 阅读 · 0 评论 -
三郎数据结构算法学习笔记:选择排序
三郎数据结构算法学习笔记:选择排序基本介绍算法思想图示:运行结果:源代码:基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。算法思想选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值,arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2]原创 2020-11-24 13:08:33 · 109 阅读 · 0 评论 -
JDK环境变量配置及其作用
点击右键我的电脑 -> 属性 -> 高级系统设置,选择环境变量在系统环境变量中新建环境变量变量名:JAVA_HOME变量值:C:\Program Files\Java\jdk1.8.0_181(JDK的安装路径)作用:jdk所在的路径新建环境变量变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib作用:引用自定义类库和系统类库时,类库所在的路径编辑环境变量PATH增加变量值:%JAVA_HOME%\bin作用:编译和运行JAVA文件时需要的命令...原创 2020-11-21 13:39:34 · 282 阅读 · 0 评论 -
三郎数据结构学习笔记:归并排序
归并排序思想图解参考源代码思想分治 + 递归图解这里下面操作就是两个有序数列的合并了参考源代码import java.text.SimpleDateFormat; import java.util.Arrays;import java.util.Date;public class MergetSort {public static void main(String[] args) { //int arr[] = { 8, 4, 5, 7, 1, 3, 6, 2 }; ////测原创 2020-11-16 19:35:19 · 209 阅读 · 4 评论 -
三郎数据结构学习笔记:栈实现表达式计算
栈实现表达式计算一:思路二: java实现源代码栈实现表达式计算一:思路二: java实现源代码public class Calculator {public static void main(String[] args) { //根据前面老师思路,完成表达式的运算String expression = "7*2*2-5+1-5+3-4"; // 15//如何处理多位数的问题?//创建两个栈,数栈,一个符号栈ArrayStack2 numStack = new ArrayStack2(原创 2020-11-15 10:26:51 · 117 阅读 · 1 评论 -
三郎数据结构学习笔记:双向循环链表(判断是否对称)附源码
双向循环链表题目思想实验结果完整源代码题目建立一个带头结点的双向循环链表,赋值,判断是否对称,写出算法计算时间复杂度思想travel the Link ;遍历链表put values into a array ;赋值给一个数组compare the array to know whether it belong to symmetry 比较数组是否对称采用问题转化的思想将链表问题转换成数组问题,大大降低了思考难度时间复杂度O(n^2)因为有两个for循环实验结果比较次数本来可以更原创 2020-11-05 20:09:53 · 436 阅读 · 7 评论 -
InnoDB与MyISAM的区别
InnoDB与MyISAM的区别1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;3. InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应原创 2020-10-29 22:34:37 · 155 阅读 · 0 评论 -
Spring中依赖注入的方式有几种,各是什么?
依赖注入的方式有几种,各是什么?一、构造器注入将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。优点:对象初始化完成后便可获得可使用的对象。缺点:当需要注入的对象很多时,构造器参数列表将会很长;不够灵活。若有多种注入方式,每种方式只需注入指定几个依赖,那么就需要提供多个重载的构造函数,麻烦。二、setter方法注入IoC Service Provider通过调用成员变量提供的setter函数将被依赖对象注入给依赖类。优点:灵活。可以选择性地注入需要的对象。缺原创 2020-10-23 07:05:08 · 2445 阅读 · 0 评论 -
Spring MVC流程
1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet调用HandlerAdapter处理器适配器。5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制原创 2020-10-22 09:47:55 · 123 阅读 · 0 评论 -
讲一下什么是Spring?
Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:Spring Core:核心类库,提供IOC服务;Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);Spring AOP:AOP服务;Spring DAO:对JDBC的抽象,简化了数据访原创 2020-10-22 09:45:29 · 742 阅读 · 0 评论