自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 差分数组的一些问题

差分利用公式或者模板时候(原数组a[], 差分数组b[])1、如果初始定义时a[n+ 1],其中n是输入数组的长度,那么相当于a[0] = 0, 后面的n长度才是数组的数组。根据差分定义b[i] = a[i] - a[i - 1] 那么b[0]仍然是0, 后面才是差分数组原数组。之所以这样是为了方便处理边界情况,要不然如果定义a[n], 那么如果想要使用b[i] = a[i] - a[i -1], 就必须先初始化b[0]= a[0]这种特殊情况。2、这样的话就会牵涉出来另外一个问题:如果需要在输入数

2021-12-30 20:52:40 323

转载 【无标题】

常见面试问题下面代码中创建了几个对象?new String("abc");答案众说纷纭,有说创建了1个对象,也有说创建了2个对象。答案对,也不对,关键是要学到问题底层的原理。String的两种初始化形式是有本质区别的。String str1 = "abc"; // 在常量池中 String str2 = new String("abc"); // 在堆上当直接赋值时,字符串“abc”会被存储在常量池中,只有1份,此时的赋值操作等于是创建0个或1个对象。如果常量池中已经存在了“abc”,那

2021-12-11 18:10:47 358

原创 java深拷贝和浅拷贝

浅拷贝:只复制对象的引用,两个引用仍然指向同一个对象,在内存中占用同一块内存;(拷贝对象的值受原对象的影响)深拷贝:引用对象和原对象的引用类型指向不同对象。(拷贝对象的值不受原对象的影响)例子:748题中此处必须用深拷贝,不能使用tmp = hash;//如果这样写,每次都会被原来的对象所影响。=============================================也可以使用putall实现深拷贝,但是只能用hashmap,如果是map的话是浅拷贝HashMap<

2021-12-10 18:25:48 292

原创 解释型语言和编译型语言

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。解释性语言的定义:解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。现代解释性语言通常把源程序编译成中间代码,然后用解释器把中间代码一条条翻译成目标机器代码,一条条执行。编译性语言的定义:编译性语言写的程序在被执行之前,需

2021-12-09 21:47:24 117

原创 arm64使用docker 下载mysql系列问题

华为云使用服务器centosX.X with ARM时,在使用docker pull mysql时,会出现不适配的情况。[root@k3l ~]# docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysqlno matching manifest for linux/arm64/v8 in the manifest list entrie原因是因为dockerhub上没有liunx/arm64/v8版

2021-11-28 19:24:11 1445

原创 为什么握手三次,挥手需要四次?

1、在建立连接的时候,server处在LISTEN状态下,当收到client端的SYN连接请求时,可以把SYN+ACK放进一个报文中发送给client。2、在关闭连接时,由于是全双工的,server收到FIN关闭连接请求时,仅仅表示client不再发送数据,但是还能接收数据。此时server可以直接关闭不发送数据,也可以发送数据,之后再发送FIN报文同意现在关闭连接不再发送报文。因此server的FIN和ACK会分开发送,从而导致多了一次。...

2021-11-06 17:54:34 34

原创 四大函数式接口

一、Consumer—>消费性接口只有输入值,没有返回值。二、Supplier—>供给型接口只有返回值,没有输入值。三、Function—>函数型接口有输入值T,有返回值R四、Predicate–>断定型接口只有一个输入参数,但是返回值是布尔值。...

2021-11-03 17:07:41 71

原创 多线程condition

Condition介绍:关键字synchronize可以与wait()和nitify()方法相结合实现实现等待/通知模式,类ReentrantLock也可以实现同样的功能,但需要借助condition对象。condition类是在JDK5中出现的技术,使用他有更好的灵活性,比如可以实现多路通知功能,也就是在一个Lock对象里可以创建多个condition实例,线程对象可以注册在指定的condition中从而选择性的进行线程通知,在调度线程上更加灵活。而在使用notify()/notifuAll()方.

2021-11-02 20:12:09 136

原创 匿名内部类访问局部变量

局部变量的作用域:局部变量是在某个方法中定义,当该方法执行完成后,局部变量也就消失了。【局部变量分配在JVM的虚拟机栈中,这部分内存空间随着程序的执行自动回收】,也即:局部变量的作用域是在 “方法的范围内”。但是,当(局部)内部类访问 局部变量 时,会扩大局部变量的作用域。看下面一个示例: 1 public class Test { 2 3 public static void main(String[] args) { 4 final String str = "hap

2021-11-02 17:51:31 603

原创 线程上下文切换

上下文切换1.在单处理器时期,操作系统就能处理多线程并发任务,处理器给每个线程分配CPU时间片,线程在CPU时间片内执行任务CPU时间片是CPU分配给每个线程执行的时间段,一般为几十毫秒2.时间片决定了一个线程可以连续占用处理器运行的时长当一个线程的时间片用完,或者因自身原因被迫暂停运行,此时另一个线程会被操作系统选中来占用处理器上下文切换(Context Switch):一个线程被暂停剥夺使用权,另一个线程被选中开始或者继续运行的过程切出:一个线程被剥夺处理器的使用权而被暂停运行切入:一个线

2021-10-30 17:34:57 2844

原创 hash&(n-1)

取余运算符%如3除以2取余数int a = 3a = a%2;结果为1上面是传统的方式进行求余运算。需要先将10进制转成2进制到内存中进行计算,然后再把结果转换成10进制而位运算是直接在内存中进行,不需要经过这些转换但是位运算只能用于除数是2的n次方的数的求余也就是说,B%C,要满足C=2n比如:14%4 等价于 14&(22-1)结果都是等于2计算过程14 11103 111110 & 11=10 = 2但是14%6 不等价于

2021-10-27 10:18:55 113

原创 关于HashMap的加载因子相关理解

HashMap在JDK1.7是以数组加链表的形式组成,JDK1.8后新增了红黑树结构,当链表大于8并且容量大于64时,链表结构会转成红黑树结构。JDK1.8 之所以会加入红黑树是因为当链表过长是会严重影响HashMap的性能,而红黑树具有快速增删改查的特点。关于加载因子加载因子也叫作扩容因子,用来判断什么时候进行扩容,假设加载因子为0.75,HashMap的初始容量为16,当HashMap中有16 * 0.75 = 12个容量时,HashMap就会进行扩容。如果加载因子越大,扩容发生的频率就会比较低

2021-10-27 10:17:09 402

原创 Java虚拟机内存分析

栈、堆、方法区1、栈:1.1栈是描述方法执行的内存模型,由系统自动分配,速度快,是一个连续的内存空间。每个方法被调用时都会创建一个栈帧用来存储(局部变量、操作数、方法出口)等。1.2JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)。栈属于线程私有,不能实现线程之间的共享2、堆2.1用于存储创建好的对象和数组;new后的2.2JVM只有一个堆,被所有线程共享,是一个不连续的内存空间,分配灵活速度慢。3、方法区(静态区)3.1方法区实际也是堆,只有一个方法区,线程

2021-10-25 11:44:36 51

原创 smbms项目时间及相关页面乱码问题

讲相关页面的js文件,使用notepad++修改编码方式,修改为UTF-8-BOM保存即可,记得清理缓存。

2021-10-18 19:26:44 265

原创 按位或|特性

集合所有元素按位或>=子集元素按位或

2021-10-17 13:24:02 122

原创 【Java】 子字符串的比较(substring的==与equal()使用)

public class Test { public static void main(String[] args) { String str1="good"; System.out.println(str1=="good"); System.out.println(str1.equals("good")); //============================== String str2="

2021-10-17 10:00:01 249

原创 property中ref、value、name的区别

property中ref、value、name的区别转载:版权声明:本文为CSDN博主「qq_36098284」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_36098284/article/details/80678466一、property中ref和value的区别1.ref引用一个已经存在的对象value创建一个新的对象2.value可以赋一些简单类型的值和对象的值ref可以引用其他的b

2021-07-13 20:18:27 1219

原创 2021-07-11

三层架构和MVC的区别1、MVC(模型Model-视图View-控制器Controller)是一种架构模式,可以用它来创建在域对象和UI表示层对象之间的区分。同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。在三层架构中没有定义Controller的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“

2021-07-11 17:17:03 34

原创 2021-03-08

网络编程一、概述1、计算机网络:地理位置不同、通过通信线路、在网络操作系统、网络管理软件和网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统2、网络编程的目的:3、想要达到的效果:1、如何确定网络上的一台主机:IP地址、端口、定位某个资源2、找到主机如何确定传输数据:网络编程主要针对传输层的应用协议:TCP、UDP二、网络通信的要素如何实现网络通信?1、通信双方的地址:ip、端口号。2、规则:网络通信的协议;TCP/IP模型三、IP地址1、ip地址:InetAddre

2021-03-08 10:20:52 59

原创 2021-03-08

一、多线程一、概述1、在程序执行时,即使没有自己创建线程,后台会有主线程、gc线程2、在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统密切相关的,先后顺序是不能人为干预。3、对同一份资源进行操作时,会存在资源抢夺问题,需要加入并发控制。4、线程会带来额外开销,如CPU调度时间,并发控制开销。二、线程创建:Thread、Runnable、CallableThread:1、继承Thread类 2、重写run方法 3、调用start方法Runnable接口: 1

2021-03-08 10:18:38 55

原创 2021-03-04

一、多线程一、概述1、在程序执行时,即使没有自己创建线程,后台会有主线程、gc线程2、在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统密切相关的,先后顺序是不能人为干预。3、对同一份资源进行操作时,会存在资源抢夺问题,需要加入并发控制。4、线程会带来额外开销,如CPU调度时间,并发控制开销。二、线程创建:Thread、Runnable、CallableThread:1、继承Thread类 2、重写run方法 3、调用start方法Runnable接口: 1

2021-03-04 09:37:18 95 2

原创 2021-02-06

**Sliding Window 滑窗 LC**标准模板int l=0,r=0;//codewhile(r<len){ //维护窗口的数据 while(l<=r&&check()==false){//缩小窗口 //维护数据,通常是对窗口左端进行操作 l++; } if(check()==true&&XX) ans= //更新结果 r++;}return 常见题目方向一、给出一个数组或字符串→返回连续子数组的最大值、最小值、固

2021-02-06 20:55:52 35

原创 LeedCode

链表#21、合并两个有序链表[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WNJo0W87-1607674930007)(C:\Users\Newer\AppData\Roaming\Typora\typora-user-images\image-20200829153342202.png)]思路1:取小值尾插class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2)

2020-12-11 16:24:39 371

空空如也

空空如也

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

TA关注的人

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