自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【用docker部署一个Spring Boot + Thymeleaf + MySQL的项目到CentOS8中】

利用docker部署一个SpringBoot项目到CentOS8中

2023-05-23 15:11:48 142

原创 泛型的使用

泛型泛型是指在定义类、接口、方法时,不指定具体的数据类型,而是用一个标识符替代,实例化时或者调用方法时在指定具体的数据类型。泛型通配符<?>代表任意数据数据类型。public class Test { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(); ArrayList<Integer&gt

2022-03-03 15:53:57 96

原创 字符串常量池

字符串常量池在直接用=号为String赋值时,会先从字符串常量池中去检查有没有一样的字符串,如果有就返回该对象的地址,如果没有就在字符串常量池中新建一个对象,然后返回该对象的地址。...

2022-03-03 15:13:08 98

原创 Object类的equals方法和String类的equals方法

Objectpublic boolean equals(Object obj) { return (this == obj); }Stringpublic boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String

2022-03-03 15:09:57 161

原创 String、StringBuilder、StringBuffer

StringString实际上是字符数组,但是这个字符数组是私有的,String类并没有提供接口修改此属性。String对象在创建的时候,需要多大的地方就申请多大的空间。private final char value[];至于final只是限制了value不能指向其他字符数组。final char value[] = {'w','j','y'};value[0] = '?';//编译器直接报错:Cannot assign a value to final variable 'val

2022-03-03 15:03:58 68

原创 面向对象三大特性

封装封装就是把对象的属性私有化,然后提供方法让外界进行访问和修改。这样就可在方法中对外界的访问进行限制。继承继承就是使用已经定义的比较抽象类来建立新的更加具体类的技术。多态多态是基于继承的,具体表现是父类的引用指向子类的实例,就是在写一个方法的时候,可以将参数定义一个父类,实际传参的时候传入子类。或者返回值定义成父类,然后实际返回的时候返回子类。这样就可以完成对抽象的东西(父类)进行编程,然后实际使用时传入具体的东西(子类),从而完成不同的业务。...

2022-03-02 16:36:05 95

原创 成员变量与局部变量

成员变量定义在类中的变量,叫做成员变量。非静态成员变量,属于实例对象,对象存储在堆空间。静态成员变量,属于类,类存储在方法区。有默认值局部变量定义在方法中的变量,叫做局部变量。局部变量位于栈内存中。无默认值...

2022-03-02 16:00:53 96

原创 自动装箱与拆箱

装箱将基本数据类型转换成包装类Integer i = 10;实际上是在调用Integer.valueOf(10)方法拆箱将包装类转换成基本数据类型int n = i;实际上是在调用I.intValue()方法

2022-03-02 15:47:10 36

原创 包装类型的常量池

常量池Byte、Short、Integer、Long都默认创建了[-128,127]的常量池,Character创建了][0,127]的常量池在直接赋值或者调用valueOf赋值时,会优先返回常量池里的对象的引用。超过此范围再new对象。new出来的对象一定是不同的。...

2022-03-02 15:36:35 116

原创 基本数据类型

基本数据类型类型大小byte1Bshort2Bint4Blong8Bchar2Bfloat4Bdouble8Bboolean1b

2022-03-02 15:25:35 50

原创 HashCode方法与equals方法

HashCode方法返回对象的散列码。散列码可能会有冲突的情况,即不同的对象有相同的散列码。equals方法如果每个字段都相同则认为是同一个对象。在比较是否是同一个对象时,先用hashCode方法比较散列码是否相同,如果不同必然不是同一个对象,如果相同则不能确定,此时再调用equals方法进行判断。为啥要先用Hashcode方法呢? 因为此方法更快。...

2022-03-02 15:17:35 46

原创 == 与 equals() 的区别

==== 就是在比较栈空间里存的值是否相等。基础数据类型,栈空间里存的就是基础数据类型的值。引用类型,栈空间里存的就是指向堆空间的地址,堆空间存储对象。所以,基础类型比较值,引用类型比较的是地址。equals方法equals方法,是Object类的方法,Object类就直接用的==实现的equals方法。一般都会重写equals方法,自定义比较规则。// Object类中equal方法的实现public boolean equals(Object obj) { re

2022-03-02 15:05:16 58

原创 重写与重载

重写重写是基于继承的,子类对于从父类继承来的方法,不够满意,重写一个方法对父类方法进行覆盖。因为重写是要覆盖掉从父类继承过来的方法,所以,参数列表必须相同,而且返回值和声明抛出的异常,要比父类的方法更小或相同。访问权限更大或不变。重载重载,方法名相同但参数列表不同的多个方法,根据不同的参数列表,选择方法。因为重载是根据参数列表区别方法,所以参数列表必须不同,其他无所谓。...

2022-03-02 14:48:32 40

原创 静态字段与静态方法

静态字段与静态方法首先被static修饰的字段或方法就是静态字段、静态方法。静态就是公有的意思,公有就是此字段、方法不属于任何一个实例对象,而是属于类。在类加载的时候,静态的字段、方法就被分配了内存。类加载的时候是还没有实例对象的,没有实例对象,就没有实例属性、方法。-所以,静态方法不能调用非静态字段、方法。...

2022-03-02 14:35:05 123

原创 JVM、JDK、JRE的区别

JDKJDK:Java Development Kit(Java 开发工具包),编写Java程序的程序员使用的软件。JREJRE:Java Runtime Environment(Java 运行时环境),运行Java程序的用户所使用的软件。JVMJVM:Java Viirtual Machine(Java虚拟机),用来运行Java字节码文件(.class)的程序。Java在编译时,只需要生成字节码文件即可。不同操作系统同只需安装自己JVM,便可运行Java程序。...

2022-03-02 14:12:49 166

原创 Java Web-JS

JQueryJQuery是JS的程序库,对JS对象和函数进行了封装。js:document.getElementById("one");jQuery:$("#one");使用JQuery1、引入 jQuery 源文件<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>2、使用 jQuery<script type="text/javascript"&gt.

2022-02-16 16:18:24 155

原创 有效的完全平方数-二分

题目给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。示例输入:num = 16输出:true算法二分代码class Solution { public boolean isPerfectSquare(int num) { int left = 0; int right = num; while (left <= right) { .

2022-02-16 11:53:06 174

原创 搜索二维矩阵-二分

题目编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true算法将一维坐标转换为二维坐标,然后二分代码class Solution { public boolean searchMatrix(int[][] .

2022-02-16 11:47:20 430

原创 长度最小的子数组-双指针

题目给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例输入:target = 7, nums = [2,3,1,2,4,3]输出:2算法随着i变大,j的取值是单调的,不用每次从0开始。代码class Solution { public int mi.

2022-02-16 11:37:13 198

原创 搜索二维矩阵II

题目编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true算法每次检查右上角的元素如果右上角元素更大,去掉右边一列的元素如果右上角元素更小.

2022-02-16 10:47:21 493

原创 搜索插入位置-二分

题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。示例输入: nums = [1,3,5,6], target = 5输出: 2算法左边都满足小于targget,右边都不满足。找第一个不满足条件的点。代码class Solution { public int searchInsert(int[] nums, int target) { int left = 0; .

2022-02-16 10:17:48 413

原创 x的平方根-二分

题目给你一个非负整数 x ,计算并返回 x 的 算术平方根 。示例输入:x = 4输出:2算法注释代码class Solution { public int mySqrt(int x) { int left = 1; int right = x; while (left <= right) { int mid = left + (right - left) / 2; .

2022-02-16 10:12:18 197

原创 Java Web-CSS

CSS样式层叠表,定义如何显示HTML元素。CSS的使用方式行内样式<div style="width:600px;height:600px;background-color:red"></div>2.内部样式,在 head 中定义 style 代码块<style> div{ width:600px; height:600px; background-color:red; .

2022-02-15 21:27:52 50

原创 Java Web-HTML

正文<h1>Hello World</h1>段落<p> 超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表</p>换行<br>字体加粗<strong>超文本标记语言</strong>删除线<del>通过</del>下划线<ins>网络</ins>上浮、下浮O<sub>2</s.

2022-02-15 19:48:54 119

原创 在排序数组中查找元素的第一个和最后一个位置-二分

题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。示例输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]算法注释代码class Solution { // 寻找左边界 public int findLeft(int[] nums, int target) { int.

2022-02-15 16:18:50 121

原创 寻找峰值-二分

题目给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例输入:nums = [1,2,3,1]输出:2算法注意:此题不会出现nums[i] == nums[i+1]的情况如果nums[mid] < nums[mid+1],说明,处在上升阶段,只要处在上升阶段,就让l.

2022-02-15 14:46:51 257

原创 数组中的逆序对-归并

题目在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数示例输入: [7,5,6,4]输出: 5算法求逆序对,就是求每个数前面有几个数比他大。在归并排序时,当左组中的nums[i]>右组中的nums[j]时,共有mid-i+1个数比nums[j]大所以可以利用归并排序解决代码class Solution { public int merge(int[] nums, int le.

2022-02-15 11:07:00 129

原创 旋转数组的最小数字-二分

题目给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为1。示例输入:[3,4,5,1,2]输出:1算法先考虑无重复数字且可定反转了的情况,以nums[0]为分界点,左边的数组全部满足nums[i]>=nums[0],右边的数组都不满足nums[i]>=nums[0].因此可以使用二分.

2022-02-15 10:43:12 192

原创 字符串的排列-回溯

题目输入一个字符串,打印出该字符串中字符的所有排列。示例输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]代码class Solution { List<String> res = new ArrayList<>(); StringBuilder cur = new StringBuilder(); // 用于判重 HashSet<Integer> set.

2022-02-14 09:51:33 112

原创 Java基础-网络编程

B/S、C/S架构B/S: 浏览器/服务器,基于浏览器程序,与服务器进行交互C/S: 客户端/服务器,基于客户端程序,与服务器进行交互Java写服务器程序1.满足业务需求2.处理高并发3.大数据处理网络协议语法:数据的结构语义:描述请求、响应同步:动作的实现顺序TCP/IP协议应用层传输层网际层网络接口层InetAddress| 方法 .

2022-02-14 09:51:20 213

原创 Java Web-会话

会话会话用来识别不同的客户端,客户端和服务器之间发生的一系列连续的请求和响应的过程,打开浏览器进行操作到关闭浏览器的过程,就是一次会话。会话状态是服务器和浏览器在会话过程中产生的状态信息,借助于会话状态,服务器能够把属于同一会话的一系列请求和响应过程关联起来。实现会话的两种方式1.Session2.CookieSession常用方法String getId()void setAttribute(String key,Object value)void getAttri.

2022-02-14 09:50:49 188

原创 Java Web-Filter

Filter1、过滤器是服务器端代码,Servlet 之前的组件(请求先进 Filter,再进 Servlet),用于拦截传入的请求响应,对请求进行某些统一处理(设置编码解决中文乱码问题)2、监视、修改处理正在客户端和服务器之间传输的数据流。过滤器就是处于客户端和 Servlet 之间的一个组件,对客户端和 Servlet 之间的数据传输进行处理。Filter源码@WebFilter("/student")public class CharacterFilter implements.

2022-02-14 09:50:35 39

原创 JavaWeb-JSP

JSP提供了一套模板,在模板中可以直接开发 HTML 代码,并且将 Java 代码进行结合,可以在 HTML 代码中加入 Java 代码。因为 JSP 底层就是一个 Servlet,每一个 JSP 最终都会转换成 Servlet在JSP中添加java代码:<% 代码 %> 完整的 Java 代码<%=数据%> Java 数据进行展示JSP和Servlet的分工Servlet 和 JSP 本质是一样的,都是 Servlet,Servlet 用来处理业.

2022-02-14 09:50:15 104

原创 JavaWeb-Servlet

ServletSerlvet 是 Java Web 的基石,与平台无关的服务器组件,运行在 Web 容器(Tomcat)中,负责与客户端进行通信。Servlet功能1、创建并返回基于客户端请求的动态 HTML 页面2、与数据库进行通信public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); .

2022-02-14 09:50:05 53

原创 Java Web-Tomcat

Java Web的实质客户端和服务器的交互出于安全性的考虑,浏览器不能直接访问服务器中的资源。但是服务器上的程序是允许被访问的,所以就服务器可以将这些允许的资源开放出来,供客户端访问。Web 容器是安装在服务器上的一个服务产品,可以在 Web 容器上放置允许客户端访问的资源,然后启动 Web 容器,那么客户端浏览器就可以访问这些资源了。Tomcat的各个文件夹bin:存放各个平台下启动和停止 操作 Tomcat 服务的脚本文件conf:存放各种 Tomcat 服务器配置文件li.

2022-02-14 09:49:44 136

原创 供暖期-分治

题目在加热器的加热半径范围内的每个房屋都可以获得供暖。现在,给出位于一条水平线上的房屋 houses 和供暖器 heaters 的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。示例输入: houses = [1,2,3,4], heaters = [1,4]输出: 1算法二分搜索合适的半径:半径最小值为0,最大值为供暖器和房子的最远位置小于最优解的半径一定不能供暖所有房子大于最优解的半径一定可以供暖所有房子所以可以二分查找到最优解二分查找时,当满足供暖要求.

2022-02-13 16:51:30 189

原创 IPO-贪心

题目给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。总而言之,从给定项目中选择 最多 k 个不同项目的列表,以 最大化最终资本 ,并输出最终可获得的最多资本。示例输入:k = 2, w = 0, profits = [1,2,3], capital = [0,1,1]输出:4算法在可以做的前提下,优.

2022-02-13 15:22:59 128

原创 把数组排成最小的数

题目输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个示例输入: [3,30,34,5,9]输出: “3033459”算法先转换成字符串数组,然后排序。代码class Solution { public String minNumber(int[] nums) { int n = nums.length; String[] str = new String[n]; f.

2022-02-13 14:48:24 94

原创 分发饼干-贪心

题目对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例输入: g = [1,2], s = [1,2,3]输出: 2算法先排序优先用最低的代价满足胃口最低的小朋友代码class Solution { public int .

2022-02-13 14:41:37 123

原创 有效三角形的个数-贪心、二分

题目给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。示例输入: nums = [4,2,3,4]输出: 4算法先排序对于每一个确定的nums[i]点,从它的前面找出能组成三角形的两个点left = 0, right = i - 1;如果此时可以组成三角形(nums[left] + num[right] > nums[i]),则nums[left] ~num[right-1]都可以与num[right]和nums[i]组成三角形.

2022-02-13 12:07:57 579 1

空空如也

空空如也

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

TA关注的人

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