自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

墨柔千城的博客

Java爱好者

  • 博客(35)
  • 收藏
  • 关注

原创 JUC包下的常见类

JUC:可重入锁ReentrantLock:lock写在try之前使用完锁之后,一定要在finally进行unlock信号量Semaphore:用来控制锁的数量,实现限流acquire():尝试获取锁,获取到,执行后面的业务逻辑,获取不到,则进入阻塞等待状态release():释放锁,发布的意思计数器CountDownlatch:await():当线程数量不满足计数器的数量时,执行此方法就会阻塞等待,直到数量满足之后,才继续执行countDown:计数器操作-1

2021-08-15 17:13:34 368

原创 JVM常见知识点总结

1.概念1.1JVM概念JVM(Java Virtual Machine):Java虚拟机,JVM是一种用于计算设备的规范,他是一个虚构出来的计算机。问题:Java语言如何实现跨平台(与平台无关性)?答:引入JVM后,Java语言在不同平台上运行时不需要重新编译。Java语言使用JVM屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在JVM上运行的目标代码(字节码),这样每个平台应用其对应的JVM来执行字节码文件。特点:一次编译,多次运行。1.2常见虚拟机常见的虚拟机:JVM、VMw

2021-08-15 17:11:54 579

原创 2021-8-8百度面经(一二三面)

Java研发岗位,一天之内,三面全部过完,就是不知道结果如何。约的9点一面自我介绍。三道编程题(可用在线工具写或IDEA写)题目:快排、股票最大利润、两个数的和;快排和最大利润没啥说的,两个数的和会问你还有没有其他方法,例如:哈希值计算,主要想问你最优方法。操作系统的进程和线程的状态,进程和线程的区别。希尔排序的原理。MySQL事物的隔离级别,事物引发的问题,幻读与不可重复读的区别。MySQL解决事物问题的操作,MVCC添加版本号。MySQL读锁和写锁,功能。这里问道平常有没有使用过读写

2021-08-10 16:34:12 1059

原创 七大常见排序算法

排序算法1.直接插入排序1.1思路1.2代码实现1.3复杂度分析1.4稳定性2.希尔排序2.1思路2.2代码实现2.3复杂度分析2.4稳定性3.直接选择排序3.1思路3.2代码实现3.3复杂度分析3.4稳定性4.冒泡排序4.1思路4.2代码实现4.3复杂度4.4稳定性5.堆排序5.1思路5.2代码实现5.3复杂度分析5.4稳定性6.快速选择排序6.1思路6.2代码实现6.3复杂度分析6.4稳定性7.归并排序7.1代码实现1.直接插入排序1.1思路直接插入排序是以当前节点为起始点,向前遍历,并找到自己自

2021-06-20 18:48:12 465 1

原创 Java多线程高阶——锁的策略

目录1.死锁1.1造成死锁的4个条件(缺一不可)1.2死锁解决方案1.3死锁排除工具2.锁的策略2.1乐观锁2.1.1CAS(compare and swap,比较并且交换)2.1.2CAS实现原理2.1.3乐观锁的实现Atomic*2.1.4ABA问题叙述:转账(多线程并发引起的问题)2.2悲观锁2.3共享锁/非共享锁(独占锁)2.4公平锁2.5自旋锁2.6可重入锁3.面试题:你是怎么理解乐观锁/悲观锁的,具体怎么实现4.单例模型4.1饿汉模型4.2懒汉模型4.3单例模式注意问题5.自定义阻塞队列1.死

2021-06-07 17:15:55 191

原创 Java开发需知的网络知识

目录1.协议2.网络模型2.1OSI2.2TCP/IP2.3TCP/IP网络分层模型中,各层常见协议及端口号:3.UDP3.1特点3.2协议头内容3.3使用场景4.TCP4.1协议头内容4.2TCP十大特性4.2.1确认应答4.2.2超时重传4.2.3链接管理4.2.4滑动窗口4.2.5流量控制4.2.6拥塞控制4.2.7延迟应答4.2.8捎带应答4.2.9面向数据流4.2.10TCP异常处理机制5.IP6.MAC7.面试题:当输入一个URL之后,会发生什么?1.协议概念:用于保证网络传输双方能正常通讯

2021-06-07 16:52:04 254

原创 MySQL知识点总结

目录1.基础使用1.1数据库操作1.2表操作1.3新增数据1.4数据查询1.5数据查询(进阶)1.5.1.内联查询1.5.2.外联查询1.5.3.子查询2.索引2.1普通索引2.2主键索引2.3唯一索引2.4组合索引2.5查询索引2.6删除索引2.7索引注意事项2.8最左匹配原则3.事务3.1事务的特性(ACID)3.2并发事存在的问题3.3事物的隔离级别(四个)4.执行引擎/日志5.表的约束6.表的关系1.基础使用1.1数据库操作查询所有的数据库:show databases;删除数据库:dele

2021-06-06 13:01:36 206

原创 Java线程池看懂这一篇就够了!

线程池1.概念2.为什么要使用线程池?2.1线程的缺点2.2使用线程池的原因3.线程池的创建方法3.1创建固定个数的线程3.2创建带缓存的线程池3.3创建能执行定时任务的线程池3.4创建单个执行定时任务的线程池3.5创建单个线程的线程池3.6根据当前工作环境(CPU核心数、任务量)异步线程4.Executors创建线程池的问题5.开发中使用的线程池技术6.线程池特征1.概念概念:使用池化技术来管理和使用线程的技术,就叫做线程池。线程池里面包含的重要内容:线程任务队列2.为什么要使用线程池?

2021-06-05 11:22:02 329

原创 Java必备知识——多线程

进程与线程一、进程1.什么是进程?2.进程ID3.并发与并行4.进程与线程概念区分4.1进程可以共享的资源:4.2进程不可共享的资源:5.进程管理模块PCB结构体5.1何为PCB6.进程调度及进程状态6.1进程状态6.2进程调度二、线程1.线程概念2.线程的创建方式2.1继承Thread类实现线程创建(2种)2.2实现Runnable接口的方式(3种)2.3实现Callable接口的方式(一种)3.线程的休眠3.1线程的通讯机制3.2wait和sleep区别4.线程的属性4.1线程构造方法4.2线程的常用属

2021-06-02 17:45:42 119 1

原创 使用git绿色、红色图标不显示的问题

安装好Git之后建立本地仓库,然后发现没有图标,其实也可以用。修改了电脑属性-高级系统设置-性能里面,还是没图标,然后找到这个解决方法:解决过程:1.win+r,regedit.exe,打开注册表 按照文件的层次关系依次找到HKEY_LOCAL_MACHINE\Software\Microsoft\windows\CurrentVersion\Explorer;修改键名 Max Cached Icons (最大缓存图标) 的值为 2000 (没有这个键,可以新建)重启电脑-----------

2021-05-20 22:09:08 327

原创 maven项目部署至阿里云服务器

项目部署一、云服务器二、使用XShell连接服务器三、配置服务器四、使用XFTP来将maven项目生成的war包上传最近做了一个《个人博客》的项目,并且将其部署到了直接的服务器上,下面我总结一下,项目部署到服务器的基本操作。一、云服务器我的服务器是阿里云的,给大家看一下相关的配置这里要注意一定要是centos 7.5的服务器,其他版本的情况不清楚,并且给自己的服务器快速添加一个安全组。并且需要记住自己的公网IP,后面我们需要用到二、使用XShell连接服务器1.创建连接打开xshell,

2021-04-16 18:41:43 558

原创 Scanner类中next()和nextLine()方法的区别

目录Scanner中next()的用法Scanner中nextLine()的用法值得一提的是!最近做牛客的题,根据题目要求,我们需要自己准备IO接口,这时候我们需要使用Scanner类来进行实现,但是在做题中发现同样的代码,使用next()方法可能会造成一部分的测试用例不通过,而nextLine()方法则可以完美通过,今天研究了一下,找到了答案。Scanner中next()的用法 Scanner sc = new Scanner(System.in); System.out.pr

2021-04-11 22:34:41 205

原创 MySQL安装教程

MySQL安装教程一、打开MySQL官网进行安装包的下载二、本地安装三、运行MySQL一、打开MySQL官网进行安装包的下载在搜索的时候找到有官方字样的链接然后打开链接:MySQL官网进入官网后,找到download页面将页面下拉找到如下链接接着找到适用于windows的版本此时,如果你想下载最新版本–8.0则直接点击下载即可如果你想下载5.7版本,则需点击右上角链接进行版本切换进入如下页面下载即可注意进行后端开发我们选择下面的community版本!!!二、本地安装

2021-03-28 20:51:55 153355 36

原创 关于CMD打不开MySQL服务的问题

使用CMD直接访问MySQL服务今天遇到了cmd不能访问mysql的问题,在cmd中输入mysql字样,显示不能识别此命令,查询了一些资料,最后发现是环境变量配置的问题。下面说一下具体操作:1.右键我的电脑,点击属性,找到高级系统设置2. 点击环境变量进行配置3. 在系统变量中找到Path变量,点击编辑4. 新建环境变量,将mysql安装路径下的bin路径添加至此(路径可以参考下图路径去查找),点击确认即可5.效果展示在cmd中输入如下命令,即可直接访问mysql服务mysql -

2021-03-28 20:23:43 10359 10

原创 浏览器输入一个http协议的url,如何定位服务资源?(一次完整的HTTP请求过程)

执行过程介绍URL请求流程一、域名解析二、TCP三次握手三、建立TCP连接后发起http请求四、服务器收到请求并响应HTTP请求五、浏览器解析htm代码,并请求htm代码中的资源(如js、css图片等)六、断开TCP连接介绍URL由图片可知URL的组成成分,首先判断是那种协议HTTP或者HTTPS等,接着会进行登录信息的判断,这里根据使用的GET或POST方法,来决定是否在URL上显示用户相关信息,接着是服务器地址加端口号,服务器地址必须得是正确的,端口号可以不写,如果不写代表着使用默认的端口号,接着

2021-03-25 15:46:17 407

原创 github和gitee同步上传的方法

Gitee与GitHub关于gitee的一些配置gitee添加SSHKey设置TortoiseGit最近github网页是越来越难登录了,于是想转战Gitee但是又舍不得自己的仓库,也舍不得之前积攒的绿点,所以今天将git仓库全部转移到了gitee里面,并且通过配置TortoiseGit实现本地操作同时上传两个平台。关于gitee的一些配置首先就是注册了,这没什么好说的,正常注册或者直接用github账号登录推荐使用github账号直接登录,因为登陆完后,网页会提示你,是否克隆仓库,之后按照网页

2021-03-22 13:30:46 469

原创 Java——String字符串总结(下)

StringBuilder和StringBuffer总结一、如何创建StringBuilder和StringBuffer对象(1) StringBuilder构造方法(2) StringBuffer构造方法二、String,StringBuilder和StringBuffer的区别一、如何创建StringBuilder和StringBuffer对象(1) StringBuilder构造方法根据JDK手册查看2.代码示例StringBuilder sb = new StringBuilder("

2021-02-18 17:22:37 109 1

原创 Java——String字符串总结(上)

String字符串总结一、什么是字符串二、字符串的创建1.第一种创建方式2.第二种创建方式3.第三种创建方式三、字符串的比较四、字符串的转换及拼接1. 转换2.拼接五、String指向的内容不可修改!一、什么是字符串百度百科是这样介绍的字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字

2021-02-12 21:35:00 224

原创 JDK安装教程(超详细,超简单!)

一、JDK简介JDK : Java SE Development Kit Java开发工具JRE : Java Runtime Environment Java运行环境如果要进行编程则需要安装JDK,如果是运行Java程序则只需要安装JRE就可以满足需求。注意:JDK本身就内置有JRE!二、JDK的下载JDK下载地址:JDK下载地址在oracle官网进行下载。进入官网后,在右上角找到如下图标,进行点击。点击图标后,进入如下页面进行操作。如果想安装其他版本,只需要将页面下滑,在该

2020-12-03 13:55:22 16439 1

原创 LeetCode——删除排序数组中的重复项(Java实现)

文章目录一、题目描述二、题目分析方法一:“投机取巧”方法二:双指针三、代码分析方法一方法二四、完整代码方法一方法二一、题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。

2020-11-05 10:43:57 277

原创 LeetCode之最长公共前缀(Java实现)

文章目录一、题目描述二、题目分析三、代码实现四、完整代码一、题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。二、题目分析看到题目后,首先要想到字符数组为空的情况,这时无需判断,直接返回" “就好。还有一种情

2020-11-03 16:04:46 297

原创 LeetCode之罗马数字转整数(Java实现)

文章目录一、题目描述二、题目分析三、具体代码实现四、完整代码一、题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X

2020-11-03 10:41:40 249

原创 课堂小结(结构体、枚举、联合、位段)

文章目录一、结构体1. 结构体的声明及定义2. 结构体的作用3.结构体的大小和内存对齐4. 使用代码修改默认对齐数5. 位段相关知识二、枚举1. 枚举的定义三、联合(共用体)1. 联合的定义2. 联合大小的计算四、宏定义的注意事项一、结构体结构体是由一批数据组合而成的一种新的数据类型。组成结构型数据的每个数据称为结构型数据的“成员”。结构体是C语言中一种重要的数据类型,该数据类型由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型。结构体通常用来表示类型不同但是又相

2020-10-28 22:48:11 155

原创 指针和数组小结

一、指针的大小指针在32位程序中占4个字节,在64位程序中占8个字节。注意是在32/64位程序中而不是32/64系统!是环境决定了指针的大小。二、数组指针和指针数组数组指针是指针,是专门指向数组的指针。//数组指针int (*p)[10]指针数组是数组,是存储指针的数组。//指针数组int* a[10]三、数组名与&数组名的区别(1)一维数组int a[4] = {1,2,3,4};如上面的数组a,a为数组名,代表数组首元素的地址,其本质是地址,所以可以

2020-10-14 17:45:24 149

原创 课程总结

目录Debug和Release的区别一、Debug二、Release三、Debug和Release编译方式的本质区别原码、反码、补码字节序(大小端)一、概念二、分类三、高低字节Debug和Release的区别一、DebugDebug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息 。

2020-09-26 20:35:51 126

原创 LeetCode——回文数(Java)

文章目录回文数一、题目及要求二、题目分析三、代码分析四、完整代码回文数一、题目及要求判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。从右向左读, 为 121- 。因此它不是一个回文数。示例3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来

2020-08-19 16:29:55 215

原创 LeetCode——字符串转换整数(Java)

文章目录字符串转换整数一、题目及要求二、题目分析三、代码分析四、完整代码五、总结字符串转换整数一、题目及要求请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在

2020-08-18 20:29:27 397

原创 LeetCode——整数反转(Java)

文章目录整数反转一、题目及要求二、题目分析三、代码分析四、完整代码五、总结整数反转一、题目及要求给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 −1]。请根据这个假设,如果反转后整数溢出那么就返回 0。二、题目分析本题的难点不在于数字

2020-08-17 15:18:33 221

原创 LeetCode——Z字形变换(java)

文章目录Z字形变换一、题目及要求二、题目分析三、代码解析(1)初始化(2)编写算法四、完整代码五、总结Z字形变换一、题目及要求将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I IGE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指

2020-08-17 14:00:43 496

原创 无重复字符串经典解法

文章目录无重复字符串经典解法---滑动窗口一、相关资料二、题目及要求三、方法介绍及实现1.创建存储空间2.具体算法实现四、完整代码五、总结无重复字符串经典解法—滑动窗口一、相关资料本篇专门解析滑动窗口法,如喜欢暴力解决法的可以看看我的另一篇博客:暴力解决法(注意:此方法遇到过长字符串时会超时)参考leetcode的相关资料:LeetCode二、题目及要求给定一个字符串,请你找出其中不含有重复字符的最长子串 的长度。示例 1:输入: “abcabcbb” 输出: 3解释: 因为无重

2020-08-15 22:06:47 863

原创 LeetCode之最长回文子串

文章目录最长回文子串一、题目及要求二、具体分析(1)暴力解决法(2)中心位置算法三、结果展示四、完整代码(1)暴力解决代码(2)中心位置代码五、总结最长回文子串一、题目及要求给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”二、具体分析(1)暴力解决法暴力解决法是先将所有的子串求出,再从中筛选出是回文的

2020-08-11 11:50:58 137

原创 LeetCode之寻找两个正序数组的中位数

文章目录寻找两个正序数组的中位数一、题目及要求二、题目分析(1)理解题意(2)具体操作三、完整代码四、代码缺陷寻找两个正序数组的中位数一、题目及要求给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3] nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2] n

2020-08-10 17:04:45 193

原创 LeetCode之两数之和

文章目录LeetCode之两数之和一、题目及要求二、题目分析(1)实现方法:(2)细节注意:三、完整代码LeetCode之两数之和一、题目及要求给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [

2020-08-10 14:26:21 141

原创 小白挑战Java面试题!!!

Java面试题题外话一、题目二、具体要求三、题目分析四、编程及代码五、结果展示六、完整代码七、总结题外话这个题目有很多大佬去写了,用的方法也比我的要简单,但是因为我目前的水平还达不到,很多东西思维不理解,所以我就准备自己写一个较为基础的分析,如有错误,欢迎大家指正!这里附上大佬们的链接:求无重复字符的最长子串一、题目求无重复字符的最长子串。二、具体要求给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最

2020-08-09 17:47:06 313

原创 First Try

初试锋芒自我介绍Hello,在这里是的一名即将大三的计算机学生,身为一名计算机学子怎么能没有属于自己的博客呢,这不我就来了,为了将来能成为能力出众的程序员,我也开始写博客了。兴趣爱好当然只介绍上面那一点肯定是不行的,第一篇博客该有的纪念意义驱使着我再来介绍一下自己的爱好,我嘛,爱好挺统一的像唱歌呀,吉他呀什么关乎音乐的我都挺喜欢的。但最主要的肯定还是要有编程啊,面对众多的编程语言,我独爱Java!真的是一名“Java吹”。个人能力接着我介绍一下自己关于编程方面小技,将他写在这里也是起到督促的作用

2020-08-07 22:59:09 1072

空空如也

空空如也

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

TA关注的人

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