JVM 核心知识点

想要提高程序员自身的内功心法无非就是: 数据结构跟算法 + 操作系统 + 网络 ,而所有的Java代码都是在JVM上运行的,了解了JVM好处就是:写出更好更健壮的代码。提高Java的性能,排除问题。面试必问 ,要对知识有一定的深度 。1、简述JVM 内存模型从宏观上来说JVM 内存区域 分为三部分 线程共享区域 、 线程私有区域 、 直接内存区域 。1.1、线程共享区域1....
分类: 其他 发布时间: 03-23 10:27 阅读次数: 0

蓝桥杯入门训练 Fibonacci数列(注意数值过大会溢出)(不能因为题目里有F1、F2……Fn就忽略n可取1)

蓝桥杯入门训练 Fibonacci数列问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需...
分类: 其他 发布时间: 03-23 10:27 阅读次数: 0

HDOJ 1237 简单计算器

核心部分伪代码:stark 符栈,数栈;c=getchar()while(c!='\n' || !符栈.empty()){ if(c是操作数) 数栈.push();c=getchar(); else if(符栈.empty()) 符栈.push(c);c=getchar(); else switch(precede(符栈.top(),c)){//比较栈运算符和当前运算符的优先级 case '<': 符栈.push(c); c=getchar();break; case '
分类: 其他 发布时间: 03-23 10:27 阅读次数: 0

图文详解 Java线程池

1、线程池的优势(1)降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;(2)提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;(3)方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场...
分类: 其他 发布时间: 03-23 10:27 阅读次数: 0

凭借这72份PDF,3170页文件,成功帮助我“吊打了”大厂面试官

前言最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧。我也一样,我在网上找了很多面试题来看,最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,索性,我就把我看过的和我面试中的真题,及答案都整理好,整理了《互联网大厂面试题》并分类72份PDF,累计 3170页!我在持续更新中,涵盖大厂算法会更多!题库非常全面包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo..
分类: 其他 发布时间: 03-23 10:27 阅读次数: 0

蓝桥杯基础练习 特殊回文数 (原来暴力破解这么直接……)

蓝桥杯基础练习 特殊回文数(如果直接去拆n可以由哪些数相加得到,再去考虑这些数摆放的位置,以及0的不能放在首位,问题会极其复杂,但是如果直接把10000-999999的数去判断是否为满足要求的数,会把问题简单化。)问题描述  123321是一个非常特殊的数,它从左边读和从右边读是一样的。  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式  输...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

神了!看了阿里、字节等大佬手写的这份Netty核心原理手册,把我多年的痛楚,全部搞定了

讲到这里,你可能要问了:如果我的工作中涉及网络编程的内容并不多,那我是否还有必要花精力学习 Netty 呢?其实在互联网大厂(阿里、腾讯、美团等)的中高级 Java 开发面试中,经常会问到涉及到 Netty 核心技术原理的问题,比如:Netty 的高性能表现在哪些方面?对你平时的项目开发有何启发? Netty 中有哪些重要组件,它们之间有什么联系? Netty 的内存池、对象池是如何设计的? 针对 Netty 你有哪些印象比较深刻的系统调优案例?这些看似简单,但如果对 Netty 掌握不够深入,
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

蓝桥杯官网练习系统 基础练习 字母图形(需注意多尝试除样例数据外的其他情况)(应注意 数据规模与约定)(Java)

蓝桥杯 基础练习 字母图形问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。样例输入5 7样例输出...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

nettyTCP 粘包拆包

一 什么是TCP 粘包拆包TCP 协议是流数据,流数据的特点就是没有分界线;TCP 会将数据流 缓冲进 缓冲池,缓冲池对数据流进行推送;缓冲池对数据发送有可能完整的2个包回黏在一起发送,称为粘包缓冲池中有可能会对数据流进行拆包 发送数据,有可能数据包1中包含数据包2, 数据包2中包含数据包1;二 粘包拆包产生的原因发送的数据大于TCP发送缓冲区剩余空间大小,TCP会发生拆包。 发送数据大于MSS(最大报文长度),TCP会在传输前进行拆包。 发送数据远小于TCP缓冲区的大小
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

浅析 HTTPS 和 SSL/TLS 协议

名词说明1.ssl协议:通过认证、数字签名确保完整性;使用加密确保私密性;确保客户端和服务器之间的通讯安全2.tls协议:在SSL的基础上新增了诸多的功能,它们之间协议工作方式一样3.https协议:https over tls,tls协议是https协议的核心4.CA:Certificate Authority,也称为电子商务认证中心,是负责发放和管理数字证书的权威机构对称加...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

蓝桥杯基础练习 阶乘计算(Java)(高精度计算,解决 “ 计算机能表示的整数范围有限 ” 的问题)

蓝桥杯基础练习 阶乘计算问题描述  输入一个正整数n,输出n!的值。  其中n!=123*…*n。  算法描述  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。  首先将a设为1,然后乘2,乘3...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

Redis为什么是单线程?高并发响应快?

一、Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快(纯内存); 数据存在内存中,数据结构用HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)。2.redis是单线程的,省去了很多上下文切换线程的时间(避免线程切换和竞态消耗)。3.redis使用IO多路复用技术(IO multiplexing, 解决对多个I/O监听时,一个I/O阻塞影响其...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

蓝桥杯基础练习 高精度加法(Java)(整行输入 遇回车输入下一个数)

蓝桥杯基础练习 高精度加法问题描述  输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。  算法描述  由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。  定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。  计算c = a + b的时候,首先将A[0]与B[0]...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

为啥 redis 使用 跳表 (skiplist) 而不是使用 red-black?

基本结论1、实现简单。2、区间查找快。跳表可以做到O(logn) 的时间复杂度定位区间的起点,然后在原始链表中顺序往后遍历就可以了。3、并发环境优势。红黑树在插入和删除的时候可能需要做一些rebalance的操作,这样的操作可能会涉及到整个树的其他部分,而skiplist的操作显然更加局部性一些,需要锁住的节点更少,因此在这样的情况下性能好一些。I was looking at Redi...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

面试官:说说数据库事务吧

前言上一篇说了如何查看MySQL的执行计划,今天就来看一下数据库的事务相关的知识点。面试官在数据库这方面最常问的除了sql优化,还有数据库事务、存储引擎等相关知识。上期有人说没有自动门,所以这一期我特地造了自动门,这门没有四五块造不下来。注意:只是CRUD的搬砖工就不需要看了,看了也忘了,只需要拉到最后,点赞、在看、分享,一键三连然后收藏起来就行了。什么是事务事务是指是程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消。通俗点说就是要么
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

蓝桥杯基础练习 矩阵乘法(Java)(需注意严谨考虑输入的范围!)

蓝桥杯基础练习 矩阵乘法问题描述  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)  例如:  A =  1 2  3 4  A的2次幂  7 10  15 22  输入格式  第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值  输...
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

神了!终于有人把困扰我多年的Spring Boot讲明白了

前言作为一名Java程序员,就不可能不了解SpringBoot,如果不了解(赶紧学!)或许在 2021年,SpringBoot已经不算什么新鲜技术了,但一定依然还是后端的主流技术之一!并且几乎是Java工程师入门必学也必须掌握技术。在面试过程中,SpringBoot的相关内容都会被面试官给问到,几乎一线互联网对于技术岗的任职要求都对Spring有一定的规定,所以学习Spring刻不容缓。今天我们就来讲一下这份出自阿里大师之手的《spring boot实战派》由于内容较多,就不.
分类: 其他 发布时间: 03-23 10:26 阅读次数: 0

蓝桥杯基础练习 完美的代价(Java)(初试贪心)

蓝桥杯 基础练习 完美的代价资源限制时间限制:1.0s 内存限制:512.0MB问题描述  回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。  交换的定义是:交换两个相邻的字符  例如mamad  第一次交换 ad : mamda  第二次交换 md ...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

细节反杀!3面成功入职字节跳动:算法+网络协议+MySQL+中间件+JVM

聊聊面试面试是一个老生常谈的问题,显而易见面试是有很多技巧的。求职过程中,有很多同学会“高估”自己的价值,盲目追求工资更高/职位更高……的岗位。这样肯定不会有好结果,求职也会陷入两难的境地,面试能通过的公司自己看不上,自己能看上的公司却连面试机会也没有。我们Java程序员这一群体,大家都知道最好的涨薪方法是通过跳槽,在你把一个公司的精华都吸收完之后,有追求的肯定会跳去更好的公司发展自己,特别在金三银四,金九银十这样的招聘旺季里 ,会有很多需要准备的面试会有很多,上面也说了我们求职的目的不是无止境追求
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

蓝桥杯基础练习 Sine之舞(Java)(初试递归)

蓝桥杯 基础练习 Sine之舞资源限制时间限制:1.0s 内存限制:512.0MB问题描述  最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。  不妨设  An=sin(1–sin(2+sin(3–sin(4+…sin(n))…)  Sn=(…(A1+n)A...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0