自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 优先级队列(堆)

优先级队列底层默认是一个小根堆1、(建大堆)向下调整//建大堆public class HeapDemo { public int[] elem; public int usedSize; public HeapDemo(){ this.elem = new int[10]; } /* * */ public void adjustDown(int parent,int len){ int child = 2*

2022-08-26 15:01:49 199

原创 VCDC V

#mermaid-svg-DiiX3DWy6F3yDtpL .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-DiiX3DWy6F3yDtpL .label text{fill:#333}#mermaid-svg-DiiX3DWy6F3yDtpL .node rect,#mermaid-svg-DiiX3DWy6F

2022-01-07 01:24:32 540 1

原创 TCP连接问题

链接:https://www.nowcoder.com/questionTerminal/4048c3110222428d8fa3b66bba429345?toCommentId=77653来源:牛客网【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能

2021-08-21 01:26:23 367

原创 MySQL复习

文章目录MySQL1、数据库操作:2、表的操作:MySQL1、MySql使用2、索引(MySQL 高校最主要的手段)3、事务(MySQL 稳定的使用)4、其他 MySQL执行引擎 / MySQL日志myisam、(事务,快)InnoDB(默认引擎)1、数据库操作:查询所有数据库:show databases;删除数据库:drop database db_name;使用数据库:use db_name;创建数据库:create database db_name character

2021-08-20 19:36:44 107 1

原创 二叉树经典题目总结

二叉树经典题目1、二叉树的前序遍历2、二叉树的中序遍历3、二叉树的后序遍历4、二叉树的最大深度5、相同的树6、另一棵树的子树7、对称二叉树8、平衡二叉树9、二叉树的层序遍历10、根据字符串,构建二叉树(二叉树遍历)11、两个节点的最近公共祖先12、二叉搜索树与双向链表13、从前序与中序遍历序列构造二叉树14、从中序与后序遍历序列构造二叉树15、根据二叉树创建字符串1、二叉树的前序遍历力扣OJ链接给你二叉树的根节点 root ,返回它节点值的 前序 遍历。/** * Definition for a

2021-08-05 04:22:39 263

原创 个人博客测试用例

个人博客项目测试测试顺序:单元测试、集成测试、系统测试、验收测试等1、测试用例的编写测试用例分别从界面、功能、性能、易用性、安全性、兼容性等方面进行分析

2021-08-03 20:14:32 679

原创 双向链表的实现及简单操作

双向链表的实现以及简单操作节点类class ListNode{ private int val; private ListNode prev; private ListNode next; public ListNode(int val) { this.val = val; } public int getVal() { return val; } public void setVal(int

2021-07-06 01:50:32 59

原创 关于链表的题目总结

1、移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回新的头节点 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-linked-list-elements/** * Definition for singly-linked list. * public class ListNode { * int val; * Li

2021-07-05 20:23:43 176

原创 单链表实现和相关操作

一个无头单向非循环列表的实现:节点类class Node{ public int val; public Node next; public Node(int val){ this.val = val; } public Node(){ }}创建一个链表public Node head;//表示当前列表的头 public void creatLinked(){ this.head=new Node(

2021-07-03 01:00:04 76

原创 JUC底下的常用类和ConcurrentHashMap

JUC:1、ReentrantLocka)lock 写在try之前b)一定要记得在final里面进行unlock()。2、信号量(1)acquire()void:尝试获取锁,如果可以正常获取到,则执行后面的业务逻辑,如果获取失败,则阻塞等待。(2)release()void:释放锁。/** * 信号量演示程序 */public class ThreadDemo98 { public static void main(String[] args) { //创建信号

2021-06-03 00:54:09 153 2

原创 走进JVM

1、JVM组成的五部分2、类加载机制3、垃圾回收a):判断什么是垃圾?b):垃圾算法c):垃圾处理器(7种 -> CMS/GI)4、JMM(让JVM高速运行的一种技术)JVM布局(hotspot):JDK1.81、堆:(线程共享)new Object()的所有对象都是存在此区域,此区域也是JVM中最大的一块区域JVM的垃圾回收就是针对此区域的。2、JVM 栈 (Java虚拟机栈)(线程私有)a):局部变量:八大基础数据类型,对象的引用;b):操作栈:每个方法都会对应一个操作

2021-06-02 20:56:10 177 1

原创 常见的锁策略

乐观锁/悲观锁:一、乐观锁:它认为一般情况下不会发生并发冲突,所以只有在进行数据更新的时候,才会检测并发冲突,如果没有冲突则执行修改,如果有冲突则返回失败CAS(乐观锁):(Compare And Swap,比较并且交换)V(内存值) A(旧值) B(新值)乐观锁的实现:Atomic*:乐观锁性能比较高。问:CAS底层实现原理?答:Java层面cas的实现是Usafe类 Usafe类调用了c++的本地方法,通过调用操作系统的Atomic::cmpxchgCAS的缺

2021-05-29 23:28:50 175 1

原创 分析内存溢出问题和简单的单例模式

分析内存溢出:线程池是长生命周期,问:Hashmap和ThreadLocalMap处理哈希冲突的区别?答:Hashmap使用的链表发,而ThreadLocalMap使用的是开放寻址法。为什么要这样实现?答:开放寻址法它的特点和使用场景是数据量比较少的情况下性能更好;而HashMap里面存储的数据通常情况下是比较多的,这个时候使用开放寻址法效率就比较低了,这个时候最好使用链式法...

2021-05-27 12:52:05 114

原创 线程池

线程池的创建方式1.线程池的创建方式1:创建固定个数的线程池//创建固定个数的线程池 ExecutorService service = Executors.newFixedThreadPool(10); for (int i = 0; i < 2 ; i++) { //执行任务 service.execute(new Runnable() { @Override

2021-05-23 17:23:19 258 1

原创 线程安全问题

线程安全的概念想给出一个线程安全的确切定义是复杂的,但我们可以这样认为:如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该的结果,则说这个程序是线程安全的。线程不安全的五个因素:1、CPU抢占执行2、内存可见性问题 volatile3、指令重排序问题 volatile4、原子性问题5、多个线程同时修改同一个变量线程安全问题解决方案:1、锁(让多线程排队执行)2、每个线程使用自己的私有变量(可能可以解决问题)锁(分两种)1、synchrinized实现原理:

2021-05-22 15:15:49 463 1

原创 牛客:杨辉三角的变形

[编程题]杨辉三角的变形牛客链接:https://www.nowcoder.com/questionTerminal/8ef655edf42d4e08b44be4d777edbf43?answerType=1&f=discussion11 1 11 2 3 2 11 3 6 7 6 3 11 4 10 16 19 16 10 4 1以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数到右上角的数,3个数之和(如果不存

2021-05-07 20:11:33 152

原创 线程的简单操作

线程的休眠import java.util.Date;import java.util.concurrent.TimeUnit;public class ThreadDemo10 { public static void main(String[] args) throws InterruptedException { System.out.println("开始时间:" + new Date()); /*//休眠1s Thread.sleep

2021-04-27 00:39:49 161 1

原创 创建线程的三类方式

多线程的优势—增加运行速度多线程和单线程的比较:public class ThreadDemo3 { //执行循环的次数 private static final Long count = 5_0000_0000L; public static void main(String[] args) throws InterruptedException { //调用多线程的方法 concorrency(); //调用单线程的方法

2021-04-26 21:27:43 833

原创 牛客:求最近公共祖先

求最近公共祖先牛客链接:https://www.nowcoder.com/questionTerminal/70e00e490b454006976c1fdf47f155d9?toCommentId=171556题目描述: 将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身。测试样例:2,3返回:1解题思路:满二叉树的子节点与父节点之间的关系为root = child

2021-04-25 23:49:03 176

原创 TCP/IP协议

TCP/IP协议八大特性:a):确认应答:b) : 超时重传linux默认超时时间:500ms超时重传策略:1:消息重试时间以指数的形式增加的2:重试一定的次数如果还发送失败,就会强制关闭此连接c) :连接管理:三次握手: syn/syn+ack/ack四次挥手:fin/ack/fin/ack(三次挥手行不行?)答: 有可能可以 ,接收缓冲区如果没有任务就可以d) :滑动窗口【目的是提高传输性能】e) :流量控制【以接收缓冲区的结果大小为导向进行数据的传递】f)

2021-04-22 01:48:22 127

原创 牛客:删数

删数链接:https://www.nowcoder.com/questionTerminal/f9533a71aada4f35867008be22be5b6e来源:牛客网有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到

2021-04-22 00:51:04 134 2

原创 牛客网:连续最大和

连续最大和题目:一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3输入描述:输入为两行。 第一行一个整数n(1 <= n <= 100000),表示一共有n个元素 第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述:所有连续子数组中和最大的值源码:import java.util.Scanner;public class Main { public static void m

2021-04-18 01:05:20 89

原创 统计回文

统计回文链接:https://www.nowcoder.com/questionTerminal/9d1559511b3849deaa71b576fa7009dc来源:牛客网“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B

2021-04-18 00:56:48 66

原创 2021-04-17

零散知识点1、Math.round(11.5)等于多少? Math.round(-11.5)等于多少?round()方法可以这样理解:将括号内的数+0.5之后,向下取值,比如:round(3.4)就是3.4+0.5=3.9,向下取值是3,所以 round(3.4)=3;round(-10.5)就是-10.5+0.5=-10,向下取值就是-10,所以round(-10.5)=-10所以,Math.round(11.5)=12;2、全局变量可以不初始化 有默认值局部变

2021-04-17 19:43:20 79

原创 Java 删除公共字符

来源: 牛客网链接:删除公共字符串题目描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串示例1:解题思路:最简单的思路就是两层循环遍历,将需要删除的字符串成为称为str ,需要被检索的字符串称为str2 ,将str2利用charArray()方法转化为字符数组ch,在str中遍历ch中

2021-04-12 15:05:14 116

原创 实现完整的前后端交互的计算器

实现一个完整的前后端交互的计算器实现前后端交互分为两部分:一部分是前端页面的展示一部分是后端的处理大致如下这样1. 创建一个html文件 (clac.html)实现前端页面在创建的clac.html文件中写关于计算机前端页面的实现注意提交要是submit 而不是button button只是普通的按钮 如果要提交表单的话 必须是submit<!DOCTYPE html><html lang="en"><head> <met

2021-04-01 00:14:40 1137

原创 类和对象

类和对象一、 类和对象的基础认知Java是面向对象的,关注的是对象,将一件事情拆分成对象,靠对象之间的交互完成。类是一类对象的统称,对象就是这一类具体化的实例。简而言之,面对对象就是用代码(类)来描述客观世界的事物的一种方式。一个类主要包含一个事物的属性和行为。二、类和类的实例化类就是一类对象的统称。对象就是这一类具体化的一个实例。基本语法://创建类class {field;//成员属性method;//成员方法}//实例化对象<对象名> = new ();class

2020-12-29 14:39:21 213

空空如也

空空如也

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

TA关注的人

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