![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 67
Information_learning
这个作者很懒,什么都没留下…
展开
-
JVM相关知识记录
如果对象在 Eden 出生并经过第一次 Minor GC 后仍然能够存活,并且能被 Survivor 容纳的话,将被移动到 Survivor 空间(s0 或者 s1)中,并将对象年龄设为 1(Eden 区->Survivor 区后对象的初始年龄变为 1)。(Eden,s0 ->s1,Eden s1->s0....)原创 2023-02-22 11:22:02 · 111 阅读 · 0 评论 -
Concurrent
ConcurrentLinkedHashMap 是google团队提供的一个容器。其实它本身是对ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,淘汰掉最不经常使用的数据。原创 2023-02-16 11:32:47 · 127 阅读 · 0 评论 -
设计模式-学习笔记
设计模式学习笔记原创 2022-09-26 01:23:50 · 191 阅读 · 0 评论 -
LeetCode hot100(复习用)
题目 通过率 难度 1. 两数之和 51.8% 简单 2. 两数相加 40.7% 中等 3. 无重复字符的最长子串 37.8% 中等 1、hashMap储存位置+滑动窗口left=Math.max(left,map.get(s.cha...原创 2021-08-20 01:19:25 · 398 阅读 · 0 评论 -
JVM大图
原创 2021-08-02 22:33:47 · 158 阅读 · 0 评论 -
重写equals和hashcode
1.equals()的所属以及内部原理(即Object中equals方法的实现原理)说起equals方法,我们都知道是超类Object中的一个基本方法,用于检测一个对象是否与另外一个对象相等。而在Object类中这个方法实际上是判断两个对象是否具有相同的引用,如果有,它们就一定相等。其源码如下:public boolean equals(Object obj) { return (this == obj); }package com.company;import j...原创 2021-07-23 20:31:10 · 103 阅读 · 0 评论 -
三个线程轮流打印ABC
1、多线程if和where的区别:就是用if判断的话,唤醒后线程会从wait之后的代码开始运行,但是不会重新判断if条件,直接继续运行if代码块之后的代码,而如果使用while的话,也会从wait之后的代码运行,但是唤醒后会重新判断循环条件,如果不成立再执行while代码块之后的代码块,成立的话继续wait。2、一.概述wait()方法可以使线程进入等待状态,而notify()可以使等待的状态唤醒wait,notify和notifyAll方法是Object类的成员函数,所以Java的任何一个.原创 2021-07-14 13:36:17 · 6751 阅读 · 1 评论 -
JAVA多线程基础
多线程中join、yield、wait、sleep的区别Thread类的方法:sleep(),yield()等 Object的方法:wait()和notify()等由于sleep()方法是Thread 类的方法,因此它不能改变对象的机锁。所以当在一个Synchronized方法中调用sleep()时,线程虽然休眠了,但是对象的机锁没有被释放,其他线程仍然无法访问这个对象。而wait()方法则会在线程休眠的同时释放掉机锁,其他线程可以访问该对象。Yield()方法是停止当前线程,让同等优先权的线程运行原创 2021-07-12 21:15:08 · 74 阅读 · 0 评论 -
IDEA 快捷键
常用快捷键 说明 Ctrl+Shift+Z 取消、撤销 Ctrl +D 快速复制一行 Ctrl +Y 删除某行 Ctrl+X 剪切当前行或选择的内容 Alt+Enter 导包,提示添加变量、自动修正等等 Ctrl+Alt+L 快速格式化代码 Shift+Enter 开始换行 Shift+F6 快速重命名:变量、类名、方法等重命名,按两下弹出命名框 F6 移动路径,如移动类到某个包,移动类中成分到其他类等...原创 2021-06-21 19:25:00 · 241 阅读 · 0 评论 -
面试常见问题:LRU、多线程死锁、单例
1、LRU设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数原创 2021-04-06 19:13:34 · 176 阅读 · 0 评论 -
Java多线程实现的四种方式
Java多线程实现的方式有四种 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3.通过Callable和FutureTask创建线程 4.通过线程池创建线程 .........原创 2021-03-16 14:47:03 · 3967 阅读 · 0 评论 -
二叉树遍历方式 总结
1、二叉树前序遍历 递归与迭代方式。根左右,遍历把根push进stack,然后push 右子树,左子树。由于根在(根左右)前面,每次子遍历根都在前面,压进去就出来了,可忽略根的属性。由于栈的特性。左右子树压进去的顺序相反。可参考图 。 public static void preOrderRecur(TreeNode head) { if (head == null) { return; } System.out....原创 2020-12-18 21:53:36 · 122 阅读 · 1 评论 -
BFS、DFS相关
广度优先搜索(BFS):主要用于树的层序遍历或图的最短路径寻找,主要使用队列queue来完成。深度优先搜索(DFS):一直往深处走,直到找到解或者走不下去为止,主要用于树的遍历(前序遍历,中序遍历,后序遍历)或者图的搜索问题或者回溯算法问题。参考:BFS和DFS总结请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵...原创 2020-12-15 22:12:47 · 128 阅读 · 0 评论 -
LeetCode TOP k
215. 数组中的第K个最大元素难度中等705在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。方法一:快速排序快排每一趟会确定枢纽的位置,当partion 的位置为 nums.legth-k 的时候就是我们要查找的倒数第K大的元素public class TopK_215 { public int findKthLargest(int[] nums, int k){ if (nums.length =...原创 2020-09-26 17:28:59 · 170 阅读 · 0 评论 -
Java 栈和队列
为什么不推荐使用Stack?因为Vector是当初JAVA曾经写得不太行的类,所以Stack也不太行。Vector不行是因为效率不太行,很多方法都用了synchronized修饰,虽然线程安全,但是像ArrayDeque,LinkedList这些线程不安全的,在需要安全的时候也可以用Collections.synchronizedCollection()转化成线程安全的,所以Vector就没什么用处了再根据仿生学Stack只能上进上出,有点像刺胞动物(腔肠动物),就是那种从哪里吃进去就哪里拉出原创 2020-09-24 10:58:00 · 287 阅读 · 0 评论 -
常用算法
1、二分查找public static int binSearch(int key, int[] array) { int low = 0; //第一个下标 int high = array.length - 1;//最后一个下标 int middle = 0; //防越界 if (key < array[low] || key > array[high] || low > high) {原创 2020-09-21 12:45:01 · 100 阅读 · 0 评论 -
完全背包问题
518. 零钱兑换 II难度中等238给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。我们可以把这个问题转化为背包问题的描述形式:有一个背包,最大容量为 amount,有一系列物品 coins,每个物品的重量为 coins[i],每个物品的数量无限。请问有多少种方法,能够把背包恰好装满若只使用 coins 中的前 i 个硬币的面值,若想凑出金额 j,有 dp[i][j] 种凑法。dp[0][..] = 0, dp...原创 2020-09-19 10:16:33 · 102 阅读 · 0 评论 -
01背包问题
题目 :N件物品放入容量大小为W的背包里,N件物品的重量分别为w1,w2...wn, 各自的价值分别为v1,v2...vn。每件物品有且仅有一件,要么放入背包,要么不放入。求在背包容量范围内,使放入的物品价值总和最大的解法。动态规划的应用场景 适用动态规划的问题必须满足最优化原理、无后效性和重叠性。 a.最优化原理(最优子结构性质)最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最...原创 2020-09-01 01:05:12 · 438 阅读 · 0 评论 -
java thread
静态方法 sleep yield函数抛中断异常废弃函数 stop、suspend()joinSetPrioritynewFixedThreadPool(numberOfThreads:int): ExecutorService创建n个线程,线程可以重复使用+newCachedThreadPool():ExecutorService空闲的线程超时了,会回收线程(适...原创 2019-11-29 10:29:37 · 152 阅读 · 0 评论