Java
文章平均质量分 89
m0_60707579
公棕号搜(编程进阶路)
展开
-
JVM调优典型配置的5种方法!,springcloud架构面试
-XX:+UseParalledlOldGC:设置并行年老代收集器-XX:+UseConcMarkSweepGC:设置并发收集器垃圾回收统计信息-XX:+PrintGC-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-Xloggc:filename3. 并行收集器设置-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间-XX:GCTim原创 2021-09-02 13:18:45 · 162 阅读 · 0 评论 -
JVM知识梳理,linux学习路线图
虚拟机栈:java线程执行的内存,线程私有本地方法栈:为本地方法服务的,线程私有堆:线程共享,存放对象实例方法区:线程共享,存储被虚拟机加载的类型信息、常量、静态变量…运行时常量池:方法区的一部分,首先,回收前我们必须确定那些对象可以回收、哪些不能回收,哪些暂时不能回收!这就用到判断对象是否存活的算法引用计数法( Reference Counting):这个方法JAVA现在不使用, 原理:在每个对象里面都加一个计数器,当对象被引用时计数器 + 1 引用失效的时候 -1..原创 2021-09-02 13:16:59 · 59 阅读 · 0 评论 -
JVM总体概述,太赞了
JVM是一种用于计算设备的规范,它是一个虚构的计算机的软件实现,简单的说,JVM是运行byte code字节码程序的一个容器。JVM的特点基于堆栈的虚拟机:最流行的计算机体系结构,如英特尔 X86 架构和 ARM 架构上运行基于 寄存器。比如,安卓的 Davilk 虚拟机就是基于 寄存器 结构,而 JVM 是基于栈结构的。符号引用 :除了基本类型以外的数据 (类和接口) 都是通过符号来引用,而不是通过显式地使用内存地址来引用。垃圾收集 :一个类的实例是由用户程序创建和垃圾回收自动销毁。原创 2021-09-02 13:15:29 · 76 阅读 · 0 评论 -
JVM学习,大厂面试为何常爱问Spring
5、方法区5.1)定义Java虚拟机有一个在所有Java虚拟机线程之间共享的方法区域。方法区域类似于用于传统语言的编译代码的存储区域,或者类似于操作系统进程中的“文本”段。它存储每个类的结构,例如运行时常量池、字段和方法数据,以及方法和构造函数的代码,包括类和实例初始化以及接口初始化中使用的特殊方法。方法区域是在虚拟机启动时创建的。尽管方法区域在逻辑上是堆的一部分,但简单的实现可能选择不垃圾收集或压缩它。此规范不强制指定方法区域的位置或用于管理已编译代码的策略。方法区域可以具有固定的大小,或者可以根原创 2021-09-02 13:13:42 · 78 阅读 · 0 评论 -
JSP常用内置对象:page,阿里内部Java笔记火爆IT圈
page是java.lang.Object类的一个实例,它指的是JSP实现类的实例,也就是说,它是JSP本身。相当于JSP编译生成servlet后是servlet类的this对象。从转换后的Servlet类的代码中,可以看到这种关系:Object page = this;在JSP页面实际当中很少用到。2、pageContext对象==============================================================================pageCo.原创 2021-09-02 13:10:15 · 388 阅读 · 0 评论 -
mars老师Java教程百度网盘,你一定不能错过
01 从一次YGC耗时过长的案例说起今年4月份,我们的广告服务在新版本上线后,收到了大量的服务超时告警,通过下面的监控图可以看到:超时量突然大面积增加,1分钟内甚至达到了上千次接口超时。下面详细介绍下该问题的排查过程。1. 检查监控收到告警后,我们第一时间查看了监控系统,立马发现了YoungGC耗时过长的异常。 我们的 程序大概在 21 点50 左右上线,通过下图可以看出: 在上线之前,YGC基本几十毫秒内完成,而上线后YGC耗时明显变长,最长甚至达到了3秒多。由于 YGC期间程序会 Stop原创 2021-09-01 12:41:02 · 203 阅读 · 0 评论 -
Log4j的配置与使用详解,Java笔试面试题库
log4j.properties配置文件:# Global logging configuration# 设置日志输出级别以及输出目的地,可以设置多个输出目的地,开发环境下,日志级别要设置成DEBUG或者ERROR# 前面写日志级别,逗号后面写输出目的地:我自己下面设置的目的地相对应,以逗号分开# log4j.rootLogger = [level],appenderName1,appenderName2,…log4j.rootLogger=DEBUG,CONSOLE,LOGFILE原创 2021-09-01 12:39:30 · 155 阅读 · 0 评论 -
Linux查找大文件命令,springboot项目实战pdf
/var/lib/mysql/mysql-bin.000001/var/lib/mysql/aasl/7_quanliang_changeLocation.ibd/var/lib/mysql/jiema/tbl_account_pay_record.ibd/var/log/mysqld.log/home/local/mycat/logs/wrapper.log这条命令是查询自"/"根目录下所有大小超过1G的文件,查询的大小可以根据需要改变,如下:相关查询:查询服务器中大于100M的文原创 2021-09-01 12:35:56 · 147 阅读 · 1 评论 -
linux应用开发面试题,面试官最爱问的Kafka,基础
12.KafkaConsumer是非线程安全的,那么怎么样实现多线程消费?13.简述消费者与消费组之间的关系14.当你使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑?15.topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?16.topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?17.创建topic时如何选择合适的分区数?1.2 Kakfa进阶面试篇1.Kafk..原创 2021-09-01 12:34:33 · 109 阅读 · 0 评论 -
Node,Java开发进阶书籍
* [node.js 文件操作](about:blank#nodejs__178)* [使用 npm 管理模块](about:blank#_npm__199)* [node.js 操作 mysql](about:blank#nodejs__mysql_231)node.js 框架 expresshello express访问静态文件上传文件更多文档教程来源:how2j 的 node.js教程以下所有代码都在 Gitee 上:https原创 2021-08-31 13:56:03 · 68 阅读 · 0 评论 -
Nginx面试三连问:如何工作,linux系统使用入门
3、所有 worker 进程的 listenfd 会在新连接到来时变得可读 ,为保证只有一个进程处理该连接,所有 worker 进程在注册 listenfd 读事件前抢占 accept_mutex ,抢到互斥锁的那个进程注册 listenfd 读事件 ,在读事件里调用 accept 接受该连接。4、当一个 worker 进程在 accept 这个连接之后,就开始读取请求、解析请求、处理请求,产生数据后,再返回给客户端 ,最后才断开连接。5、Nginx 常用命令有哪些?启动 nginx 。停止 ng原创 2021-08-31 13:54:30 · 146 阅读 · 0 评论 -
MySQL:互联网公司常用分库分表方案汇总,小白以及计算机类学生的福音
第一种:SQL问题,如SQL中包含join,group by,order by,非索引字段条件查询等,增加CPU运算的操作 -> SQL优化,建立合适的索引,在业务Service层进行业务计算。第二种:单表数据量太大,查询时扫描的行太多,SQL效率低,CPU率先出现瓶颈 -> 水平分表。二、分库分表1、水平分库 **概念:**以字段为依据,按照一定策略(hash、range等),将一个库中的数据拆分到多个库中。结果:每个库的结构都一样;每个库的数据都不一样,没有交集;所有库的并集是原创 2021-08-31 13:51:10 · 86 阅读 · 0 评论 -
MySQL高频面试题,都在这了,近期有面试的必看
hash索引底层就是hash表,进行查找时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据.B+树底层实现是多路平衡查找树.对于每一次的查询都是 从根节点出发,查找到叶子节点方可以获得所查键值然后根据查询判断是否需要回表查询数据.那么可以看出他们有以下的不同:hash索引进行等值查询更快(-般情况下),但是却无法进行范围查询.因为在hash索引中经过hash函数建立索引之后,索引的顺序与原顺序无法保持-致,不能支持 范围查询.而B+树的的所有节点皆遵循(左节点小于父节点,原创 2021-08-31 13:49:24 · 153 阅读 · 0 评论 -
MySQL进阶,秒变大神(二
CAS机制:即compare and swap(比较与交换),无锁编程,在不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,因此也叫非阻塞同步。CAS过程是这样:它包含3个参数:内存值V(要更新变量的值),旧的预期值A,要修改的值B。当且仅当预期值A的值等于内存值V时,才会将内存值V修改为B,否则不会执行任何操作(V值和A值不同,则说明已经有其他线程做了更新)。一般情况下是一个自旋操作,即不断的重试。例子:假设 t1,t2 线程同时更新同一变量56的值。因为t1原创 2021-08-30 14:24:42 · 117 阅读 · 0 评论 -
MySQL覆盖索引与回表查询,新鲜出炉的蚂蚁金服面经
InnoDB普通索引的叶子节点存储主键值。注意,不是存储行记录头指针,MyISAM的索引叶子节点存储记录指针。举个栗子,不妨设有表:user(id PK, name KEY, sex, flag);id是聚集索引,name是普通索引。表中有四条记录:1, shenjian, m, A3, zhangsan, m, A5, lisi, m, A9, wangwu, f, B两个B+树索引分别如上图:1、id为PK,聚集索引,叶子节点存储行记录;2、name原创 2021-08-30 14:22:56 · 71 阅读 · 0 评论 -
MySql知识体系总结(SQL优化篇),聊一聊MySQL数据库中的那些锁
1、type常用关键字system > const > eq_ref > ref > range > index > all。system:表仅有一行,基本用不到;const:表最多一行数据配合,主键查询时触发较多;eq_ref:对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型;ref:对于每个来自于前面的表的行组合,所有有匹配索引值的行将从这张表中读取;range:只检索给定范围的行,使用一个索原创 2021-08-30 14:21:26 · 261 阅读 · 0 评论 -
MySql知识体系总结(2021版)
存储引擎负责在MySQL中存储数据、提取数据、开启一个事务等等。存储引擎通过API与上层进行通信,这些API屏蔽了不同存储引擎之间的差异,使得这些差异对上层查询过程透明。存储引擎不会去解析SQL。二、对比InnoDB与MyISAM1、 存储结构MyISAM:每个MyISAM在磁盘上存储成三个文件。分别为:表定义文件、数据文件、索引文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex原创 2021-08-30 14:19:39 · 2714 阅读 · 0 评论 -
MySQL最左匹配原则,道儿上兄弟都得知道的原则,字节跳动算法工程师面试总结
目录一、最左匹配原则的原理二、违背最左原则导致索引失效的情况三、查询优化器偷偷干了哪些事儿四、需要你mark的知识点1、如何通过有序索引排序,避免冗余执行order by2、like 语句的索引问题3、不要在列上进行运算4、索引不会包含有 NULL 值的列5、尽量选择区分度高的列作为索引6、覆盖索引的好处通常我们在建立联合索引的时候,相信建立过索引的同学们会发现,无论是Oracle还是 MySQL 都会让我们选择索引的顺序,比如我们想原创 2021-08-30 14:18:01 · 250 阅读 · 0 评论