自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法学习】LeetCode 18.四数之和

题目链接18. 四数之和题目描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。解题思路1. 双指针 + 多层循环在三数之和的基础上增加一层循环,nums[i]:代表当前元素;设置指针 j = i + 1 开始进行第二层循环,设置指针left = j + 1,指针right = num

2021-08-03 21:07:45 129

原创 【算法学习】LeetCode15.三数之和

题目链接15. 三数之和题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解题思路1. 双指针先排序,从 i = 0 开始遍历数组,如果nums[i] > 0,则已经不存在 三数之和为0 的组合情况利用双指针

2021-08-03 01:46:06 140

原创 记一道关于HashSet的踩坑题

题目已知 Person 类按照 id 和 name 重写了 hashCode 和 equals 方法,请问下面的代码输出什么?请尝试自己分析后再看答案噢!public class Work { public static void main(String[] args) { HashSet<Person> set = new HashSet<>(); Person p1 = new Person(1001, "AA");

2021-05-07 15:18:15 159

原创 图解演示并发事务产生的问题

脏读问题在读未提交的隔离级别下会发生脏读、不可重复读、幻读问题。从图中可以看到,一个事务读取到了另一个事务中还没有提交的数据,由于该事务可能会回滚,因此读取到的数据是不准确的,即脏数据。避免脏读问题-读已提交设置隔离级别为读已提交,即只允许事务读取到其他事务已经提交的数据所作出的修改。读已提交可以避免脏读问题,但无法避免不可重复读、幻读问题不可重复读问题仍然使用上图,从图中可以看出,连续执行了两次查询,查询结果却不相同。避免不可重复读问题-可重复读设置隔离级别为可重复读(REPEATA

2021-04-20 15:28:42 211

原创 Java IO流知识回顾,使用 BIO 实现简易的多线程版本客户端服务器聊天室

前言使用java.io包下的 API 加多线程实现的简易聊天室,由于属于阻塞式 IO,所以客户端发一条消息后就进入阻塞状态,必须等待服务器的回复,服务器也是同理。所以实用性为 0,全当是回顾一下 IO 流的知识点,也没什么难度,如果是第一次接触或者遇到了问题,建议想把思路想清楚在写代码(自己在写的时候也总被输入输出搞懵)代码实现服务器端代码public class ThreadServer { public static void main(String[] args) {

2021-04-14 21:20:38 127

原创 如何判断对象是否可被回收以及Java中的四种引用类型总结

前言垃圾收集器进行垃圾回收的依据是判断对象是否“存活”,判断对象是否存活有两种方法。引用计数法在对象中添加一个引用计数器,每当有一个地方引用该对象时,计数器值加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是已经“死亡”要被回收的。引用计数法存在一个问题:对象之间的循环引用public class ReferenceCountingTest { public Object instance = null; public static void main(String

2021-04-12 10:23:45 398

原创 方法区、Class文件常量池、运行时常量池、字符串常量池总结

方法区方法区是 JVM 规范中提出一个概念,不同的 Java 虚拟机都有自己的方法区,但是对方法区的具体实现细节不受《Java虚拟机规范》约束,所以不用的 Java 虚拟机都有各自实现方法区的方式在我们一直使用的 Java 虚拟机(HotSpot)中,在 JDK 6 及以前是通过永久代来实现方法区的,此时的方法区存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等数据。到了 JDK 7 开始逐步废弃永久代,首先将永久代中的常量、静态变量、字符串常量池移动到了 Java 堆中。到了

2021-03-26 16:10:46 557

原创 Java中基本数据类型存储在JVM中的存储位置

我们都知道虚拟机栈来存储通过栈帧的形式来存储每一个方法,堆来存储所有对象实例和数组。而对基本数据类型,即可能声明在方法的局部变量中,也可能声明在类的成员中,这就造成并没有明确的规定来说明基本数据类型到底是存储在堆中还是栈中。我在 SO 上寻找到了答案Simplistic answer: it depends on where the variable is declared, not on its type.Local variables are stored on the stack. Inst

2021-03-22 09:55:37 2592 6

原创 mooc-第八周编程练习- 单词长度(c语言)

题目内容:你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it’s”算一个单词,长度为4。注意,行中可能出现连续的空格。输入格式:输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。输出格式:在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有...

2018-11-04 20:02:40 733

原创 C语言递归实现n的阶乘(n!)

非负整数n的阶乘可以表示为n! (读作:n的阶乘),其定义如下:n! = n·(n - 1)• (n - 2)· …·1 (n大于或等于l),且n = 0时,n! = l例如,5 ! = 5·4·3·2·1 = 120。请编写一个程序,读入一个非负整数,计算并输出其阶乘。思路: 阶乘 就是每次用自己乘以自己-1,然后用自己-1在乘自己-1-1……利用递归的性质可以很好的实现这个过程。...

2018-10-09 20:45:08 29099 5

原创 如何用代码实现srtcat函数(C语言)

如何用代码实现srtcat函数(C语言)strcat函数:将第二个字符串链接到第一个字符串后面思路:利用自增运算符++将第一个字符串(dst)增至末位,然后将第二个字符串的首位与第一个字符串的末位+1相等即可。#include "stdio.h"char *mycat(char *dst,const char *str){ char *ret = dst; while...

2018-10-09 17:32:39 880 2

空空如也

空空如也

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

TA关注的人

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