- 博客(42)
- 收藏
- 关注
原创 秒杀系统之jmeter压测
2000个线程压测此时已经报错了修改cookie的代码private String getCookieValue(HttpServletRequest request, String cookiName) { Cookie[] cookies = request.getCookies(); //防止空指针异常 if(cookies == null || cookies.le...
2019-11-26 01:39:26
262
原创 Redis异常报错:redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool
如果spring.redis.pool.max_idle参数没有传入,便会发生这个错误
2019-11-23 19:11:07
320
原创 Springboot整合Mybatis时遇到的问题
java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password’.xml文件mysql版本添加8.0.11Public Key Retrieval is not allowedurl中,加上allowPublicKeyRetrieval=true参数java.sql.SQLExcepti...
2019-11-19 00:58:05
215
原创 Maven项目pom.xml文件不报错却有红叉的问题
用maven配置springboot 2.2.1时出现了错误,pol.xml第一行显示红叉,却没有报错。网上找了一圈都说update项目,然而并不能解决问题。https://stackoverflow.com/questions/56142369/why-am-i-getting-unknown-error-in-line-1-of-pom-xml在stackoverflow上终于找到了答案...
2019-11-17 15:33:23
658
原创 java并发之集合不安全
集合不安全ArrayList不安全ArrayList的方法没加synchronized关键字,多线程下是不安全的java.util.concurrentModificationError解决方案1 new Vector();2 Collections.synchronizedList(new ArrayList<>());3 new CopyOnWriteArrayLis...
2019-11-12 15:34:04
140
原创 java并发之工具类
CountDownLantch允许一个或多个线程等待其他线程完成操作# 读写锁 独占锁读写分离:写一次一个,读可以一起读写操作:必须是原子操作,不能被打断```javaclass Mycache{ ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(); private volati...
2019-11-12 15:33:28
124
转载 补码与位运算
补码与位运算1、补码计算机中的数据按补码形式存储,因此在进行位运算时,直接操作的是补码。正数的原码、反码和补码是其本身。对于负数而言,原码转补码:符号位不变,其他位按位取反;反码转原码:同原码转反码,即反码的反码等于原码;原码转补码:符号位不变,其他位按位取反然后加1;补码转原码:同原码转补码,即补码的补码等于原码。2、按位与(&)相应位都是1时取1,否则为0。用途:判...
2019-11-12 15:30:29
439
原创 JVM之G1垃圾收集器
以前收集器的特点年轻代和老年代是各自独立且连续的内存块年轻代收集器使用 eden + S0 + S1 进行复制算法老年代收集必须扫描整个老年代区域都是以尽可能的少而快速地执行 GC 为设计原则G1 是什么G1 是一种面向服务端的垃圾收集器,应用在多核处理器和大容量内存环境中,在实现高吞吐量的同时,尽可能的满足垃圾收集器的暂停时间要求。特性:像CMS收集器一样,能与应用程序并发执行。...
2019-11-10 00:50:48
183
原创 JVM之GC垃圾回收器4+4+7
GC算法四种 (思想)引用计数 废弃复制拷贝 新生代标记清除 老年代标记整理 老年代GC 算法是内存回收的方法论,垃圾收集其就是算法的落实的实现。目前为止还没有完美的收集器的出现,更加没有万能的收集器,只是针对具体应用最适合的收集器,进行分代收集。Gc垃圾回收器 (落地实现)串行垃圾回收器(Serial)它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线...
2019-11-09 23:46:00
214
原创 JVM之oom
请谈谈你对 OOM 的认识?java.lang.StackOverflowError比如递归出口没写对,一直调用自己就会出现这个错误。java.lang.OutOfMemoryError : Java heap spacenew 一个很大对象java.lang.OutOfMemoryError : GC overhead limit exceeded98%的时间用来做GC,回收了不到2...
2019-11-08 23:46:59
205
原创 java四种引用,WeakHashMap和引用队列
强引用、软引用、弱引用和虚引用分别是什么?在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。强引用特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(...
2019-11-08 18:30:31
199
原创 JVM参数与调优
JVM 的参数类型标配参数-version-helpX 参数(了解)-Xint:解释执行-Xcomp:第一次使用就编译成本地代码-Xmixed:混合模式XX 参数Boolean 类型:-XX:+ 或者 - 某个属性值(+ 表示开启,- 表示关闭)-XX:+PrintGCDetails:打印 GC 收集细节-XX:-PrintGCDetails:不打印 GC 收集细节-XX:...
2019-11-08 14:40:09
178
原创 判断一个对象是否可被回收
1. 引用计数算法为对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。在两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。正是因为循环引用的存在,因此 Java 虚拟机不使用引用计数算法。public class Test {public Object instance = null;pub...
2019-11-08 14:33:12
142
原创 openstack kolla 方式配置octavia
在kolla方式部署完octavia之后,还有一些信息需要配置amphora下载amphora-x64-haproxy.raw 镜像openstack image create --container-format bare --disk-format raw --private --file amphora-x64-haproxy.raw --tag amphora amphoraoc...
2019-11-08 10:28:36
1426
原创 大数据处理面试常见问题
作者:清风如橘链接:https://www.nowcoder.com/discuss/331574?type=0&order=0&pos=9&page=2来源:牛客网大数据处理技巧这个其实是面试中经常会询问的一类问题,例如:海量数据下,TOP K出现次数的数据的筛选 海量数据下的数据去重 如何对短时间内的大量请求访问进行限流 海量数据排序 等等其主...
2019-11-06 23:14:12
424
原创 pdd笔试题种树
import java.util.Scanner;public class Main { private static boolean flag = false; public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nex...
2019-11-05 16:28:08
402
原创 java集合之hashmap
HashMap的数据结构考察HashMap几乎是每个公司都会涉及到的。回答时建议多说一点,把知道的内容全部讲出来,主动表现自己的知识面。我给出我自己的思路,仅供参考:1.HashMap是一种非线程安全的集合类。利用空间换时间的思想+哈希来实现。2.本质是数组+链表的结构。强烈建议在纸上面画出来。3.put的大致过程。涉及到resize操作4.新版JDK中,链表长度到8,转为红黑树5.线...
2019-11-05 13:02:06
88
原创 二分法
leetcode4 引申给定两个有序数组,请在logn时间内找出第k大的数public double findMedianSortedArrays(int[] nums1, int[] nums2) { if((nums1.length +nums2.length)%2 == 0) { return (Find_Kth(nums1, nums2, 0, 0, ...
2019-11-04 23:33:17
156
1
原创 java并发之死锁
死锁编码以及定位分析产生死锁的原因死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果无外力的干涉那它们都将无法推进下去,如果系统的资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。代码public class DeadLockDemo { public static void main(String...
2019-11-04 17:01:22
159
原创 java并发之线程池
线程池使用过吗?谈谈对 ThreadPoolExector 的理解?为什使用线程池,线程池的优势?线程池用于多线程处理中,它可以根据系统的情况,可以有效控制线程执行的数量,优化运行效果。线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,那么超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。主要特点...
2019-11-04 17:00:17
109
原创 java多线程创建之实现callable接口
callable使用场景:一千个线程,第996个出错,需要返回错误原因。thread接口不能传callable,为什么?找到一个即实现callable,又和runnable相关的类,传这个类。Futuretask类。class Mythread2 implements Callable<Integer>{ @Override public Integer call() th...
2019-11-04 01:01:01
125
原创 java并发之手写生产者消费者模型
1 lock await signal方式class ShareData{ private volatile int number = 0; private int MAX_VALUE = 3; private int MIN_VALUE = 0; Lock lock = new ReentrantLock(); Condition condition = lock.newCondit...
2019-11-03 14:58:37
276
原创 java并发之synchronized和lock的比较
1 原始结构synchronized 是关键字属于 JVM 层面,反应在字节码上是 monitorenter 和 monitorexit,其底层是通过 monitor 对象来完成,其实 wait/notify 等方法也是依赖 monitor 对象只有在同步快或方法中才能调用 wait/notify 等方法。Lock 是具体类(java.util.concurrent.locks.Lock)是 ...
2019-10-31 22:02:57
91
原创 java并发之阻塞队列
阻塞队列消息中间件底层原理。队列是空时,获取元素操作被阻塞。队列满时,插入元素操作被阻塞。因此,程序员不需要关心何时阻塞或者唤醒线程。阻塞队列共有七种,其中常用的是ArrayBlockingQueue 数组组成的有界阻塞队列LinkedBlockingQueue 链表组成的有界阻塞队列(Integer.MAX_VALUE)SynchronousQueue 单个元素的阻塞队列(生产...
2019-10-31 22:00:38
120
原创 java并发之工具类
countdownlanch秦灭六国,阻塞public class CountDownLatchDemo { public static void main(String[] args) { CountDownLatch countDownLatch = new CountDownLatch(6); for(int i = 1; i <= 6; i++) { new Th...
2019-10-30 22:34:12
77
原创 CAS之ABA问题
cas之ABA问题AtomicIntegercas–>unsafe–>cas底层思想–>ABA–>原子引用更新–>如何规避ABA问题。CAS最大问题;ABA问题。CAS算法提取出内存中某个时刻的数据,并在当下时刻比较并替换,这个时间差可能会产生数据的变化。public class ABAdemo { static AtomicReference<In...
2019-10-20 11:02:57
124
原创 Unsafe类学习
Unsafe类学习(了解)介绍java 不能直接访问操作系统底层,而是通过native方法来访问。Unsafe 类提供了硬件级别的原子操作。Unsafe 类在 sun.misc 包下,不属于 Java 标准。很多 Java 的基础类库,包括一些被广泛使用的高性能开发库都是基于 Unsafe 类开发,比如 Netty、Hadoop、Kafka 等。Unsafe 是用于在实质上扩展 Java ...
2019-10-20 10:31:42
68
原创 CAS学习
CAS是什么?CAS是compare and swap。其代码主要位于juc的atomic包下,是用于实现是用于实现多线程同步的原子指令。synchronized是悲观锁,这种线程一旦得到锁,其他需要锁的线程就挂起的情况就是悲观锁。CAS是c语言实现的cpu锁,机制相当于一个乐观锁,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。原理juc的atomic...
2019-10-19 20:08:36
188
1
原创 volatile关键字学习
volatile## 标题volatile 是 Java 虚拟机提供的轻量级的同步机制,具有三大特性保证可见性禁止指令排序不保证原子性(synchronized可以保证原子性,但效率低)#1 JMM(Java 内存模型)基本概念JMM 本身是一种抽象的概念并不是真实存在,它描述的是一组规定或则规范,通过这组规范定义了程序中的访问方式。要求 可见性 原子性 有序性线程解锁前,必须把...
2019-10-19 16:32:38
91
原创 Leetcode 198 213 337 打家劫舍
198你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,...
2019-10-06 17:13:58
108
原创 leetcode 121 股票问题
给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...
2019-10-06 15:07:39
72
原创 leetcode33 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn) 级别。二分法非递归·```class Soluti...
2019-10-05 16:08:12
51
原创 eclipse安装spring时出现的错误
错误:No repository found containing: osgi.bundle,org.jsoup,1.8.3.v20181012-1713解决方案:打开Window->Preferences->Install/Update->Available software Sites,除了自己下载包的那个源留着,其他全部disable,装完再改回去。...
2019-10-01 17:06:59
719
原创 leetcode 655 最大二叉树
给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。class Solution { public TreeNode constructMaximumBinaryTree(...
2019-09-25 23:05:13
345
原创 leetcode 16 最接近的三数之和
class Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int start = 0; int left = 1; int right = nums.length - 1; int min =...
2019-09-25 23:03:38
64
原创 leetcode 9 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数三种解法1 字符串法。 知识点 x+""可转化成字符串2 得到首尾数字3 反转一半 此法最优...
2019-09-22 18:44:11
139
原创 leetcode 8 字符串转换整数 (atoi)
class Solution { public int myAtoi(String str) { char[] c1 = str.toCharArray(); int i = 0; int sum = 0; boolean flag = true; if (c1.length == 0)return 0;...
2019-09-22 17:25:40
80
原创 leetcode 7 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class Sol...
2019-09-19 11:30:23
59
原创 leetcode 2 两数之和
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...
2019-09-15 15:51:51
96
原创 leetcode 15 三数之和
给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]class So...
2019-09-14 20:00:00
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人