自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进击の小浩

记录学习的点点滴滴

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

转载 Cookie深入理解

问题什么是Cookie?Cookie的作用Cookie的工作机制,即Cookie的运作流程Cookie的基本属性(4)个以及我们如何使用Cookie什么是Cookie        HTTP协议本身是无状态的(无状态是指Web浏览器与Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(Response),连接就被关闭了,在服务器端不保留连接的有关信息。也就是说,HTT

2021-06-14 15:12:32 174

原创 内部类知识总结

内部类定义:内部类时值在一个外部类中的内部定义一个类。java中常见的内部类主要包括成员内部类、局部内部类、静态内部类和匿名内部类成员内部类成员内部类主要客源看作是属性、方法、构造器和初始化相似的类成员。成员内部类(这里的内部类是非静态内部类)中不允许定义静态变量(java虚拟机要求所有静态变量都得在对象创建之前完成)成员内部类自己的变量可以与外部类定义的变量名字相同成员内部类访问内部类自己的变量有两种方式①直接使用变量名②this.变量名成员内部类可以访问外部类的所有成员,成员内部类访

2021-06-05 16:31:02 120

原创 数组练习题21--移动0

题意:给定一个数组,编写一个函数将所有0移动到数组的末尾,同时保持非非0元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]class Solution{ public void moveZeros(int[] nums){ int slow=0,fast=slow+1; while(fast<nums.length){ if(nums[slow]!=0){ slow++;fast++; } else{ if(nu

2021-05-21 14:32:33 133

原创 数组练习题20--加一

题意:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]思路:加一的所有可能只有两

2021-05-21 14:01:43 91

转载 Java线程和锁知识总结

转自:https://blog.csdn.net/qq_24095055/article/details/88552539Java线程和锁知识总结进程和线程:进程时操作系统分配资源的最小单元,线程是操作系统调度的最小单元。一个进行一般包括多个线程,这些线程共享进程中内存和资源。线程的状态:新建(new):创建后尚未启动的线程状态运行(Runnable):包含Running和Ready无期等待(Waiting):不会被分配CPU执行时间,需要被显示的唤醒①没有设置TimeOut参数的O

2021-05-21 10:57:30 89

原创 数组练习题19--递增的三元子序列

题意:给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j < k 的三元组都满足题意示例 2:输入:nums = [5,4,3,2,1]输出:false解释:

2021-05-21 09:01:44 375

原创 数组练习题18--把数组排成最小的数

题意:输入一个非负数组,把数组中所有数字拼接成一个数,打印能拼接处的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例 2:输入: [3,30,34,5,9]输出: "3033459"public class Solution { public static void main(String[] args) { Integer[] num=new Integer[nums.length]; int index=0; f

2021-05-20 09:48:43 62

原创 数组练习题17--扑克牌中的顺子

题意:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。思路:判断五张牌是否为顺子的充分条件如下:除大小王外,所有牌无重复;设此5张牌中最大牌为max,最小牌为min(大小王除外),则需要满足:max-min<5因此,可将问题转化为:此5张牌是否满足以上两个条件?方法1:集合Set+遍历遍历五张牌,遇到大小王(即0),直接跳过。判断重复:利用Set实现

2021-05-18 14:36:22 158

原创 数组练习题16--调整数组顺序使奇数位于偶数前面

题意:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。方法1:双指针(首尾指针)class Solution { public int[] exchange(int[] nums) { int low=0,high=nums.length-1; while(low<hi

2021-05-18 14:01:37 68

原创 数组练习题15--构建乘积数组

题意:给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。思路:这个题目主要我们如何巧妙的利用数组A的下标i以外的元素构建B[i],如何利用下标i左边所有元素乘以右边所有元素!!!示例:输入: [1,2,3,4,5]输出: [120,60,40,30,24]以示例为例子:b[0]=a[1]*a[2]*a

2021-05-18 10:34:57 104

原创 数组练习题14--汇总区间

题意:      给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x。列表中每个区间[a,b]应该按以下个数输出:“a->b” ,如果 a != b“a” ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7]输出:["0->2","4

2021-05-18 10:17:57 62

原创 数组练习题13--两个数的交集II

题意:      给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]方法1:哈希表思路:由于同一个数字在两个数组中都可能出现多次,因此需要用哈希表存储每个数字出现的次数。对于一个数字,其在交集中出现的次数等于该数字在两个数组中出现的次数

2021-05-18 09:23:00 143

原创 数组练习题12--两个数组的交集

给定两个数组,编写一个函数来计算它们的交集 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]方法1:哈希表class Solution { public int[] intersection(int[] nums1, int[] nums2) { HashSet<Integer>set1=new Hash

2021-05-17 12:37:09 66

原创 数组练习题11--找出和为指定值的下标对

给你两个整数数组nums1和nums2,请你支持实现一个下述两类查询的数据结构:累加,将一个正整数加到nums2中的指定下标对应的元素上。计数,统计满足nums[i]+nums[j]等于指定值的下标对(i,j)数目(0<=i<nums1.length)且 0 <= j < nums2.length)。实现FindSumPairs 类:FindSumPairs(int[] nums1, int[] nums2) 使用整数数组 nums1 和 nums2 初始化 FindS

2021-05-17 08:22:01 195

原创 数组练习题10--在排序数组中查找数字I

题意:统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0方法1:哈希表思路:统计出现次数,直接返回次数即可class Solution { public int search(int[] nums, int target) { Map<Integer,Integer> record=

2021-05-16 20:26:50 59

原创 Java二分算法解析--基本框架及寻找左右端点

二分算法是一种分而治之的思想,这个算法的思想是挺简单的,但是细节部分,比如二分的边界问题十分让人头疼,在处理具体问题时候并不是单纯套一下模板。正如KMP算法发明者说的一句话:Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky...这句话的理解就是:思路很简单,细节是魔鬼。算法介绍下面为百度百科的介绍,写的很严谨:&nbs

2021-05-16 19:54:01 230 1

原创 数组练习题09--数组中出现次数超过一半的数字

题意:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2方法1:哈希表class Solution { public int majorityElement(int[] nums) { Map<Integer,Integer> record=new HashMap<>(); for(

2021-05-16 14:56:09 67 1

原创 数组练习题08--删除数组中的重复数

题意:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,1,2,2,3]输出:5, nums = [1,1,2,2,3]解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。 不需要考虑数组中超出新长度后面的元素。示例 2:输入:nums

2021-05-16 10:23:35 340

原创 String、StringBuilder、StringBuffer之间的区别和转换

       今天遇到一个问题,因为String是不可变,当字符串要常改变,这用使用"+"的话会产生很多的内存对象,很不友好,所以有了对String类三兄弟:String、StringBuffer、StringBuilder的详解介绍并加深理解。String类三兄弟简介StringStringBufferStringBuilderString是一个不可变类,所以它的值不可变的,这就导致一个问题,当字符串需要改变的

2021-05-14 16:56:03 543 4

原创 数组练习题07--删除有序数组中的重复项

题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。示例 2:输入:nums = [0,0,1,1,1,2,2,3,3,4]

2021-05-14 10:50:08 219

原创 数组练习题06--寻找重复数

题目:      给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。示例1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3示例 3:输入:nums = [1,1]输出:1示例 4:输入:nums = [1,1,2]

2021-05-13 09:49:27 187

原创 Floyd判圈算法(龟兔赛跑算法)

问题:如何检测一个链表是否有环呢?如果有,那么怎么确定环的起点?如何确定环的长度?时间复杂度:O(n)空间复杂度:O(1)好比两个人在赛跑,A速度快,B速度慢,经过一定时间后,A总会和B相遇,且相遇时,A跑过的总距离减B跑过的总距离一定是圈长的n倍。Floyd使用两个指针,一个慢(龟)指针每次前进一步,一个快指针(兔)每次前进两步(两步或多步效果是等价的,只要一个比另一个快就行。但是随着移动步数的增加,算法的复杂度可能增加)。如果两者在链表头以外(不包含开始情况)的某一点相遇(即相等),那么说明

2021-05-13 09:37:30 307

原创 数组练习题05--四数之和

题目:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例 1:输入:nums = [1,0,-1,0,-2,2], target = 0输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]示例 2:输入:nums = [], target = 0输出:[]

2021-05-12 17:07:24 120

原创 ArrayList详解

简介ArrayList 是 java 集合框架中比较常用的数据结构了。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。成员变量:从上图我们可以看到,ArrayList的初始长度为10,我们要注意下ArrayList真实结构上的这段注释/** * The array buffer in

2021-05-12 16:08:25 264 2

原创 数组练习题04--存在重复元素II

题目:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false方法1:哈希表class Solution { public boolean containsDuplicate(int[] nums) { HashSet<Integer>record=new

2021-05-12 10:15:37 54

原创 数组练习题03--和为s的两个数字

题目:输入与一个递增的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]方法1:双指针思路,对于一个递增的数组,如果数组长度小于2或者,最小的两个数都大于target,直接返回空数组,否则将

2021-05-12 10:04:16 95

原创 数组练习练习题02--三数之和

三数之和:     给你一个包含n个整数的数组nums,判断是否存在三个元素a,b,c,使得a+b+c=0?请你找出所有和为0且不重复的三元组。注意,答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]方法1:排序加双指针思路:题目要求找到所有的不重复且

2021-05-11 10:35:24 329

原创 Java二维数组排序以及接口Comparator的使用

刚学习Java一个月,对于没东西不是很熟悉,今天在刷题时候时候,需要对多维数组中的一维进行升序/降序排列,思考到这个问题,开始百度学习如何解决!!!常用类Arrays中有个sort()方法,可以对数组进行默认的升序排列:import java.util.Arrays;public class Solution { public static void main(String[] args) { int[] nums=new int[]{6,7,8,9,1,0,24,6,7};

2021-05-10 16:12:15 1334 1

原创 数组练习题01--两数之和

百度百科数组的定义:       数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。练习1:两数之和...

2021-05-10 13:15:34 78

转载 Java外部类不能用private和protected修饰

原文链接:https://blog.csdn.net/qq_34178628/article/details/104984810定义private(私有的)无法访问:使用private关键字,就意味着被声明的成员或方法,除了本类,其他任何类都无法访问。public(公共的)接口访问权限:使用public关键字,就意味着被声明的成员或方法对所有类都是可以访问的。protected(受保护的)继承访问权限:使用protected关键字,就意味着被声明的成员或方法,在子类以及相同包内的其他类都可以访

2021-05-06 15:53:32 1616

原创 Java中abstract关键字是否可以和static同时修饰方法

首先,提出这个疑问,是因为Java疯狂讲义这本书的一句话,让我疑惑:书上P112内容(难道我买到了盗版):abstract和final最多只能出现其中一个,他们可以与static组合起来修饰方法;当时我就在想abstract和static可以在一起修饰方法吗?我想了一下,应该是不能的,我觉得有下面几点原因。被abstract关键字修饰的方法是没有方法体的,类似如下:public abstract void setXxx();但是static关键字修饰的方法是类方法,在类加载阶段加载,并且可以通

2021-05-06 14:42:54 4363 1

原创 JavaSE基础--尚硅谷视频笔记04

Day19测试Thread中常用的方法start():启动当前线程;调用当前线程的run()run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中currentThread():静态方法,返回执行当前代码的线程getName():获取当前线程的名字setName():设置当前线程的名字yield():释放当前cpu的执行权join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。stop

2021-05-03 13:31:45 101 1

转载 JavaSE基础--尚硅谷笔记03

Day11面向对象的特征:继承性继承性的好处①减少代码的冗余、提高了代码的复用性②便于功能的扩展③为之后多态的使用,提供了前提继承性的格式:class A extends B{}其中A为B的子类,B为父类①体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只有因为封装性的影响,使得子类不能直接调用父类的结构而已。②子类继承父类以后,还可以声明自己特

2021-05-02 22:13:03 132

原创 JavaSE基础--尚硅谷视频笔记02

Day06数组的概述数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。数组相关的概念: 数组名 元素 角标、下标、索引 数组的长度:元素的个数数组的特点:①数组是有序排列的②数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型③创建数组对象会在内存中开辟一整块连续的空间 4)数组的长度一旦确定,就不能修改数组的分类: ① 按照维数:一维数组、

2021-05-01 22:47:56 201

原创 JavaSE基础--尚硅谷视频笔记01

Day01注释Java规范中三种规范注释方式:单行注释: //多行注释: /**/文档注释: /***/单行注释的多行注释的作用:对所写的程序进行解释说明,增强可读性,方便自己和他人;方便调试代码特点:单行注释和多行注释,注释部分不参与编译。换句话说,编译以后生成的.class文件结尾的字节码文件不包含注释掉的信息。文档注释:注释内容可以被JDK提供的工具Javadoc所解析,生成一套网页文件形式体现该程序的说明文档。对第一个java程序进行总结java程序编写-编译-运行

2021-05-01 20:03:44 218

转载 mysql基础--基础查询、条件查询、排序查询

下面是我们在B站尚硅谷学习mysql基础知识的笔迹ps:不积跬步无以至千里,加油!使用的是sqlyog软件和employees表练习,用来学习mysql语言还是很听好用的!练习表employees的链接在下面:https://pan.baidu.com/s/1lkgNVvY6TnaX_Jz8Yxm7Qg提取码:9cv9基础查询语法:select 查询列表 from 表名特点:查询的结果集是一个虚拟表select 类似与System.out.println(打印内容);sel

2021-04-20 20:09:37 110

原创 Java基础--Arrays类多个常见方法

Java中Arrays的常用方法Arrays类位于java.untils包中import java.util.Arrays主要包含了操作数组的各种方法,提供了二分搜索、排序、复制、比较、填充,输出数组内容、截取数组等静态方法二分查找:首先我们来查看一下源码:下面这段代码截取于源码public static int binarySearch(long[] a, long key) { return binarySearch0(a, 0, a.length, key);//

2021-04-19 22:29:27 160

原创 MySQl踩坑记录:ERROR 1064 (42000): You have an error in your SQL syntax;

使用 MYSQL建表出现了错误错误提示的主要意思为,使用的mysql的语法出现了问题,原来我是把create写成了creat,造成了错误,还有一种可能就是错用了中英文的逗号。上图中逗号都要用英文逗号。刚开始学,一切都要耐心!...

2021-04-18 09:56:06 4962

原创 JavaSE基础--面向对象下

第六章:面向对象下包装类基本数据类型包装类byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean上表可以看出,除了int和char之外,其他的基本数据类型的包装类都是将其首字母进行大写。在JDK1.5之前使用valueOf方法可将基本数据类型变量包装成包装类,反之可以使用xxxValue方法。这些方法已经过

2021-04-17 22:01:38 103

原创 JavaSE基础--面向对象上

第五章:面向对象上面向对象的三大特征:封装继承多态Java提供了private、protected、public三个访问控制符来实现良好的封装,使用extends关键字让子类继承父类.类和对象定义类概念:类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体。定义一个类时,一个类中包含了三种最常见的成员:构造器、成员变量(属性)和方法。其中成员变量用于定义该类或该类的实例所包含的状态数据,方法则用来定义该类或该类实例所具有的行为特征或功能,构造器用于构造该类实例。定

2021-04-16 15:52:32 78

空空如也

空空如也

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

TA关注的人

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