自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 206. 反转链表 两种解法

给你单链表的头节点head,请你反转链表,并返回反转后的链表头。解法一:头插法思路:head指针,指向原列表的头节点,后续用于操作的节点指针创建一个新的节点newHead,开始指向null,该节点始终用来指向新链表的头节点创建一个next指针,用来备份head指针在原链表中的下一个节点步骤1、创建next指针备份head的下一个节点步骤2、操纵head节点指向newHead节点的next(也就是指向新链表的头节点)步骤3、使得newHead指向head节点步骤4、

2021-04-25 19:14:38 166

原创 LeetCode 160.相交链表、找出两个链表的交点

编写一个程序,找到两个单链表相交的起始节点。要求时间复杂度为 O(N),空间复杂度为 O(1)。如果不存在交点则返回 null。思路:设 A 的长度为 a + c,B 的长度为 b + c,其中 c 为尾部公共部分长度,可知 a + c + b = b + c + a。当访问 A 链表的指针访问到链表尾部时,令它从链表 B 的头部开始访问链表 B;同样地,当访问 B 链表的指针访问到链表尾部时,令它从链表 A 的头部开始访问链表 A。这样就能控制访问 A 和 B 两个链表的指针能同时访问到交

2021-04-25 19:12:26 180

原创 SpringBoot项目Jar包部署至Linux上遇到的问题

1、打成Jar包后访问不到jar包外部的文件2、Linux端口开放及防火墙设置3、Jar包在Linux后台永久运行

2021-04-14 13:54:12 444

原创 Jar包部署在Linux后台永久运行

在Window中我们开启jar包后可以将命令行窗口最小化,让其在后台运行,不影响我们其他操作。Linux中使用 java -jar xxxx.jar 运行jar包后就不能再进行其他操作了,如果想让其像Window一样后台运行:nohup java -jar xxxx.jar >temp.txt &nohup :意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行>temp.txt:将command的输出重定向到temp.txt文件,即输出内容不打印到屏幕上,而是输出到te

2021-04-14 13:49:57 1867 2

原创 Linux防火墙及端口开放

# 查看firewall服务状态systemctl status firewalld-----------------------------------------------------------------------------# 开启、重启、关闭、firewalld.service服务# 开启service firewalld start# 重启service firewalld restart# 关闭service firewalld stop---------

2021-04-14 13:42:51 265

原创 SpringBoot以Jar包部署Linux后访问不到jar包外部的资源

由于项目涉及到了大量图片资源,即图片上传功能,总不能上传图片至Jar包内部吧,所以需要在jar包外设置资源路径来保存图片及其他资源。对于其他框架我们一般使用war包部署到tomcat下,很方便就可以设置资源路径。而SpringBoot项目自身集成tomcat,如果你真的向我一样作????,咱就想使用Jar包部署那就需要进行一些小小的配置。其实也无非就是添加一个静态资源映射addResourceHandlers,新建一个类继承自WebMvcConfigurer需要注意的是:Window上

2021-04-14 13:22:12 1811 2

原创 HotSpot虚拟机对象探秘

对象的创建对象的内存布局HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)包含以下三种数据: 对象自身运行时数据(Mark Word),如黄晓明、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。有着动态定义的数据机构。 类型指针:指向对象类型元数据的指针 如果对象是Java数组,还会有一块用来记录数组长度的数据。 示例数据(Instance Data) 是对象真正存储的有效信息。 对齐填充(Padding)

2021-04-10 23:54:57 70

原创 AQS源码流程图

2021-04-06 00:12:37 219

原创 GC四大垃圾回收算法

GC四大垃圾回收算法,图解算法过程,简单易懂

2021-04-06 00:04:30 355

原创 LockSupport 使用总结及注意事项

是什么?LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport类使用了一种名为Permit(许可)的概念来做到阻塞和唤醒线程的功能,每个线程都有一个许可(permit),permit只有两个值1和零,默认是零。可以把许可看成是一种(0,1)信号量(Semaphore),但与Semaphore不同的是,许可的累加上限是1。通过park()和unpark(thread)方法来实现阻塞和唤醒线程的操作使用:API:阻塞:pa..

2021-04-05 10:03:34 564 4

原创 算法经典题型 图解分析+代码不能再详细了!——用数组结构实现大小固定的队列

用数组结构实现大小固定的队列分析:数组队列这里的数组其实是逻辑上的头尾相连的循环数组,就是循环利用数组容量固定其实就是取的指针 start 追着存的指针end跑,可以不设置 size,但是有size判断更方便些,可以把start追着end的逻辑解耦掉。代码:package Ashier.arithmetic.my_exercise;/** * 用数组结构实现大小固定的队列 * * @author shierS * @date 2021/4/2 */cla.

2021-04-02 18:37:45 75

原创 算法经典题型 图解分析+代码不能再详细了!——给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序。

给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序。​代码​package Ashier.arithmetic.my_exercise;import java.util.Arrays;/** * 给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序 * * @author shierS * @date 2021/4/2 */public class MaxGap {

2021-04-02 17:58:30 127

原创 常用正则表达式模板

package Ashier.javaclass;import jdk.nashorn.internal.runtime.regexp.joni.Regex;import java.text.ParseException;import java.text.SimpleDateFormat;/** * Demo class * * @author shier * @date 2021/3/27 */public class My_Regex { public static .

2021-03-27 22:45:06 123

原创 参透java多线程——从开始到操作方法到同步与死锁到线程池

1、线程和进程 2、多线程 3、多线程操作方法 4、同步与死锁 5、代码练习 6、线程池

2021-03-26 16:28:55 96

原创 ArrayList add()及扩容机制源码分析

更多内容欢迎访问语雀空间https://www.yuque.com/shier-dba4uArrayList最复杂的是就是无参构造第一次添加元素,涉及到了添加过程中的全部流程,这段源码也并不复杂,一次就能看懂,之后的有参构造,非第一次添加元素就都懂了。结论• ArrayList中维护了一个Object类型的数组elementDatatransient Object[] elementData; transient 表示瞬间,短暂的,表示该属性不会被序列化• 当创建ArrayList对象时,如

2021-03-25 00:41:28 183

原创 图解 迭代器 ListIterator

2021-03-22 22:22:54 68

原创 图解 LinkedList 方法

2021-03-22 18:55:03 89

原创 图解List 归纳文档、方法

2021-03-22 18:53:11 95

原创 图解迭代器Iterator

2021-03-22 18:51:40 103

原创 This关键字

This关键字学习自李兴华老师《Java面向对象开发 》this关键字在使用中可以做三件事:• 调用本类属性• 调用本类方法(普通、构造)• 表示当前对象1、调用本类属性对于我们类中方法体内,可能出现属性于参数同名的情况,这种情况下如果不指定,程序自动取就近的元素,如class Person{ private String name; private int age; person(String name,int age){ name = n

2021-03-19 16:49:23 90

原创 String字符串类及有关内存分析

String字符串类及有关内存分析学习自李兴华老师《Java面向对象开发 》要点:实验引出对象池 比较String创建的俩种方式 String有关方法String 在 java.lang包下String不是Java的基本类型,是一个类!!!字符串一旦定义不可变更,字符串的变更实际上是引用关系(引用地址)的变更所有的字符串底层实现都是字符数组!是类就会有构造方法和方法对于字符串 equals() 方法的使用,要将比较的字符串写到前面,引用对象写到括号里例如..

2021-03-19 16:39:15 247

原创 JAVA基础之反射(非常重要)入门示例——查询某一类包含的所有方法及变量

创建查询类GetObjClassMessage.java编写查询package mainClass;import java.lang.reflect.Field;import java.lang.reflect.Method;/** * @Title:GetObjClassMessage.java * @Description:获取传入数据 obj 该对象类型的所属类的信息 ...

2020-03-13 19:34:14 121

原创 Java 基础之包装类(非常重要)—— wrapper

包装类(wrapper)首先知道基本数据类型 :byte、short、int、long、float、double、char、boolean 。这些基本数据类型也称java的内置数据,一共六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。基本数据类型是不具备对象的特性的,没有属性方法不能被调用方法且功能简单,而我们为了让基本数据类型也具备对象的特性,在使用时可以更加方便的操...

2020-03-11 18:12:13 231

原创 JAVA基础之集合(非常重要)

集合就是数学中的集合的概念:所有的元素都具有唯一的值,元素在其中没有顺序。集合是无序的,但其实还是存在有序集合的,比如LinkedHashSet,但是LinkedHashSet并没有提供get方法。对于集合(Set)来说,有序无序并不是最关键的,最关键的是不能有重复的元素。public static void main(String[] args) { ArrayList<Strin...

2020-03-10 22:44:00 134

原创 java基础之数据结构 (必考 非常重要) array与ArrayList的不同

“ArrayList是会自动扩容array”最显著的区别就是array是静态的对象引用,而ArrayList是动态类。1.implementation (实现)ArrayList是一个基于array来自Java集合类的类,一个接口 (API,Application programming interface)。 Array 本身是对象的reference(对象引用),它可直接做为函数返回值。...

2020-03-09 23:47:44 181

原创 JAVA基础之访问属性(private)(非常重要)

对象交互之访问属性private 私有只有这个类内部可以访问类内部指的是成员函数和定义初始化这个限制是对类的而不是对对象的对于下面这个例子,一个Fraction的对象在另一个Fraction对象里直接访问其private对象(r.b)是否可以直接访问?public class Fraction{ private int a; private int b; ... ... ...

2020-03-09 23:43:42 601

空空如也

空空如也

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

TA关注的人

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