自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (1)
  • 收藏
  • 关注

原创 第01章、数据库概述

文章目录第01章、数据库概述1、为什么要使用数据库2、数据库与数据库管理系统【1】数据库的相关概念【2】数据库与数据库管理系统的关系【3】常见的数据库管理系统排名(DBMS)【4】常见的数据库介绍3、MySQL介绍【1】概述【2】MySQL发展史重大事件【3】关于MySQL 8.0【4】Why choose MySQL?【5】Oracle vs MySQL4、RDBMS 与 非RDBMS【1】关系型数据库(RDBMS)【1.1】实质【1.2】优势【2】非关系型数据库(非RDBMS)【2.1】介绍【2.2】有

2022-03-05 22:59:34 593

原创 17、分析GC日志

文章目录第1章、GC日志参数第2章、GC日志格式1、GC分类2、GC日志分类【1】MinorGC【2】FullGC3、GC日志结构剖析【1】垃圾收集器【2】GC原因【3】GC前后情况【4】GC时间4、Minor GC 日志解析5、Full GC 日志解析第3章、GC日志分析工具1、GCEasy2、GCViewer3、其他工具第1章、GC日志参数-verbose:gc输出日志信息,默认输出的标准输出可以独立使用-XX:+PrintGC等同于-verbose:gc,表示打开简化的日志

2022-02-13 23:02:33 725

原创 16、JVM运行时参数

文章目录第1章、JVM参数选项1、类型1:标准参数选项【1】特点【2】各种选项【3】补充内容:-server与-client2、类型2:-X参数选项【1】特点【2】各种选项【3】JVM的JIT编译模式相关的选项【4】注意事项3、类型3:-XX参数选项【1】特点与作用【2】分类【3】注意事项第2章、添加JVM参数选项1、Eclipse2、IDEA3、运行jar包4、通过Tomcat运行war包5、程序运行过程中第3章、常用的JVM参数选项【1】打印设置的XX选项及值【2】堆、栈、方法区等内存大小设置【2.1】

2022-02-13 23:02:07 844

原创 15、JVM监控及诊断工具-GUI篇

文章目录第1章、工具概述第2章、jConsole1、基本概述2、启动3、三种连接方式【1】Local【2】Remote【3】Advanced4、主要作用第3章、Visual VM1、基本概述2、插件的安装3、连接方式4、主要功能第4章、Eclipse MAT1、基本概述2、获取堆dump文件【1】dump文件内存【2】说明【2】获取dump文件3、分析堆dump文件【1】histogram【2】thread overview【3】获得对象互相引用的关系【4】浅堆与深堆【5】支配树第5章、关于内存泄露的那点事

2022-02-13 22:53:34 1789

原创 14、JVM监控及诊断工具-命令行篇

文章目录第1章、概述1、简单命令行工具第2章、jps:查看正在运行的Java进程1、基本情况2、基本语法【1】options参数【2】hostid参数第3章、jstat:查看JVM统计信息1、简介2、基本语法【1】option参数【2】interval参数【3】count参数【4】-t参数【5】-h参数3、补充第4章、jinfo:实时查看和修改JVM配置参数1、基本情况2、基本语法【1】查看【2】修改3、拓展第5章、jmap:导出内存映像文件&内存使用情况1、基本情况2、基本语法3、使用:导出内存映

2022-02-13 22:26:26 1648

原创 13、概述篇

文章目录第1章、大厂面试题第2章、背景说明1、生产环境中遇到的问题2、为什么要调优3、不同阶段的考虑第3章、调优概述1、监控的依据2、调优的大方向第4章、性能优化的步骤1、第1步:性能监控【发现问题】2、第2步:性能分析【排查问题】3、第3步:性能调优【解决问题】第5章、性能评价/测试指标1、停顿时间(或响应时间)2、吞吐量3、并发数4、内存占用5、相互间的关系第1章、大厂面试题支付宝:支付宝三面:JVM性能调优都做了什么?小米:有做过JVM内存优化吗?从SQL、JVM、架构

2022-02-13 22:19:40 101

原创 12、再谈类的加载器

第1章、概述类加载器是JVM执行类加载机制的前提ClassLoader的作用:ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个与目标类对应的java.lang.Class对象实例。然后交给Java虚拟机进行链接、初始化等操作。因此,ClassLoader在整个装载阶段,只能影响到类的加载,而无法通过ClassLoader去改变类的链接和初始化行为。至于它

2022-02-13 22:17:30 567

原创 11、类的加载过程(类的生命周期)详解

文章目录第1章、概述第2章、过程1:Loading(加载)阶段1、加载完成的操作2、二进制的获取方式3、类模型与Class实例的位置4、数组类的加载第3章、过程2:Linking(链接)阶段1、环节1:Verification(验证)2、环节2:Preparation(准备)3、环节3:Resolution(解析)第4章、过程3:Initialization(初始化)阶段1、static与final的搭配问题2、\()的线程安全性3、类的初始化情况:主动使用 vs 被动使用【1】主动使用【2】被动使用第5章

2021-11-27 20:51:56 152

原创 10、字节码指令集与解析举例

文章目录第1章、概述1、执行模型2、字节码与数据类型3、指令分析第2章、加载与存储指令1、复习:操作数栈与局部变量表【1】操作数栈(Operand Stacks)【2】局部变量表(Local Variables)2、局部变量压栈指令【1】简介【2】压栈指令集【3】举例第2章、加载与存储指令3、常量入栈指令【1】常量入栈指令集【2】简介4、出栈装入局部变量表指令【1】出栈装入局部变量表指令集第3章、算数指令1、作用与分类2、byte、short、char和boolean类型说明3、运算时溢出4、运算模式5、N

2021-11-23 22:01:03 1568

原创 9、Class文件结构

文章目录第1章、Class文件结构1、概述【1】字节码文件的跨平台性【2】Java的前端编译器【3】通过字节码指令查看代码细节2、虚拟机的基石:Class文件3、Class文件结构【1】字节码解析【2】魔数:Class文件的标志【3】Class文件版本号【4】常量池:存放所有常量【3.1】常量池计数器【3.2】常量池表【3.2.1】字面量和符号引用【3.2.2】常量类型和结构【3.2.3】总结【5】访问标识【6】类索引、父类索引、接口索引集合【6.1】类索引【6.2】父类索引【6.3】interfaces【

2021-11-23 22:00:08 534

原创 1、Spring——IOC、DI

文章目录第1章、Spring概述1、Spring简介2、Spring体系结构第2章、入门案例1、案例代码2、几个细节第3章、IOC和Bean的配置1、IOC和DI2、通过类型获取bean3、简单的Spring配置【1】别名配置【2】Bean配置【3】import配置4、给bean的属性赋值【1】赋值的途径【1.1】通过bean的setXxx()方法赋值【1.2】通过bean的构造器赋值【1.3】给bean的级联属性赋值【1.4】p名称空间【1.5】c命名空间注入(了解)【2】可以使用的值【2.1】字面量【2

2021-11-22 15:58:41 923

原创 8、垃圾回收

文章目录第1章、垃圾回收概述1、什么是垃圾【1】什么是垃圾?2、为什么需要GC?3、早期的垃圾回收4、Java垃圾回收机制【1】担忧第2章、垃圾回收相关算法1、标记阶段:引用计数算法【1】垃圾标记阶段:对象存活判断【2】引用计数算法【3】小结2、标记阶段:可达性分析算法【1】可达性分析算法【2】GC Roots【3】注意【4】指针碰撞3、对象的finalization机制【1】对象的finalization机制【2】生存还是死亡?【3】具体过程4、MAT与JProfiler的GC Roots溯源【1】MAT

2021-11-10 22:14:52 780

原创 7、StringTable

文章目录第1章、StringTable1、String的基本特性2、String的内存分配3、字符串拼接操作4、intern()的使用【1】面试题5、StringTable的垃圾回收6、G1中的String去重操作第1章、StringTable1、String的基本特性1、String:字符串,使用一对""引起来表示2、String声明为final的,不可被继承3、String实现了serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大

2021-11-02 07:55:53 110

原创 6、执行引擎

文章目录第1章、执行引擎1、执行引擎的概述【1】简介【2】执行引擎的工作过程2、Java代码编译和执行的过程3、机器码、指令、汇编语言【1】机器码【2】指令【3】指令集【4】汇编语言【5】高级语言【6】字节码4、解释器【1】简介【2】解释器工作机制(或工作任务)【3】解释器分类【4】现状5、JIT编译器【1】Java代码的执行分类【2】为什么还要保留解释器?【3】HotSpot JVM的执行方式【4】JIT编译器【5】热点代码及探测方式【6】方法调用计数器【6.1】热度衰减【7】回边计数器【8】HotSpo

2021-11-01 08:30:02 115

原创 5、直接内存与对象的实例化内存布局与访问定位

文章目录第1章、对象实例化1、创建对象的方式2、创建对象的步骤【1】判断对象对应的类是否加载、链接、初始化【2】为对象分配内存【3】处理并发安全问题【4】初始化分配到的空间【5】设置对象的对象头【6】执行init方法进行初始化第2章、对象的内存布局1、对象头(Header)【1】运行时元数据(Mark Word)【2】类型指针2、实例数据(Instance Data)【1】说明【2】规则3、对齐填充(Padding)4、小结第3章、对象的访问定位1、JVM是如何通过栈帧中的对象引用访问到其内部的对象实例的呢

2021-11-01 08:29:26 93

原创 4、运行时数据区【线程共享部分】

文章目录第1章、堆1、堆(Heap)的核心概述【1】简单介绍【2】内存细分【3】堆空间内部结构(JDK7)【4】堆空间内部结构(JDK8)【5】JDK7与JDK8的堆的区别2、设置堆内存大小与OOM【1】堆空间大小的设置3、年轻代与老年代【1】简介【2】参数设置4、图解对象分配过程【1】对象分配过程概述【1.1】对象分配(一般情况)【1.2】对象分配(特殊情况)【2】常用调优工具5、Minor GC、Major GC与Full GC【1】简介【2】最简单的分代式GC策略的触发条件6、堆空间分代思想7、内存分

2021-10-27 19:25:14 1571

原创 3、运行时数据区【线程独占部分】

第1章、概述1、简介内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。灰色的为单独线程私有的,红色的为多个线程共享的每个线程:独立包括程序计数器、栈、本地栈线程间共享:堆、堆外内存(永久代或元空间、代码缓存)2、关于线程间共享的说明每个JVM只有一个Runtime实例。即为运行时环境,相当

2021-10-22 21:25:24 269

原创 2、类加载子系统

第1章、内存结构概述第2章、类加载器与类加载过程1、类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识。classLoader只负责class文件的加载,至于它是否可以运行,则由ExecutionEngine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)2、类加载器ClassLo

2021-10-22 21:17:57 99

原创 1、JVM与Java体系结构

第1章、基本知识1、Java:跨平台的语言查看语言排行榜:https://www.tiobe.com/tiobe-index/2、JVM:跨语言的平台随着Java7的正式发布,Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编些的程序Java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的,它只关心“字节码”文件。也就是说Java虚拟机拥有语言无关性,并不会单纯地与Java语言“终身绑定”,只要其他编程语言的编译结果满足并包

2021-10-22 21:13:28 723

原创 13、LIstener和Filter过滤器

JavaWeb 的三大组件。分别是:Servlet 程序、Listener 监听器、Filter 过滤器一、Listener监听器Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。Listener 它是 JavaEE 的规范,就是接口监听器的作用是,监听某种事物的变化。然后通过回调函数,反馈给客户(程序)去做一些相应的处理ServletContextListener监听器Ser

2021-09-10 21:42:38 159

原创 12、JSON、AJAX、i18n

一、JSONJSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对 json 的支持(包括 C, C++, C#, Java, JavaScript, Perl, Python等)。 这样就使得 JSON 成为理想的数据交换格式。json 是一种轻量级的数据交换格式。轻量级指的是跟 xml 做比较。数据交换指的是客户端和服务器之间业务数据的

2021-09-10 21:42:11 83

原创 11、Cookie和Session

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。一、Cookie1.1 什么是 Cookie?1、Cookie 翻译过来是饼干的意思。2、Cookie 是服务器通知客户端保存键值对的一种技术。3、客户端有了 Cookie 后,每次请求都发送给服务器。4、每个 Cookie 的大小不能超过 4kbCookie实际上是一小段

2021-09-10 21:41:30 104

原创 10、EL表达式和JSTL标签库

一、EL表达式1.1 EL表达式概述EL 表达式的全称是:Expression Language。是表达式语言。EL表达式的作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。(因为EL表达式在输出数据的时候,要比 jsp的表达式脚本要简洁很多。)EL 表达式的格式是:${表达式}注意:EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字符串。1.2 EL表达式搜索域数据的顺序

2021-09-10 21:40:31 93

原创 9、jsp

一、jsp的概述JSP(全称 Java Server Pages)是由 Sun 公司专门为了解决动态生成 HTML 文档的技术。Servlet回传html页面数据的代码 和 jsp回传一个简单 html 页面的代码对比注意:jsp 页面的访问千万不能像 HTML 页面一样。托到浏览器中。只能通过浏览器访问 Tomcat 服务器再访问 jsp 页面。1.1 jsp的本质jsp 页面本质上是一个 Servlet 程序。当我们第一次访问 jsp 页面的时候。Tomcat 服务器会帮我们把 j

2021-09-10 21:39:21 179

原创 8、servlet(下)

一、HttpServletRequest类HttpServletRequest 类作用每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到 Request 对象中。然后传递到 service方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletRequest 对象,获取到所有请求的信息.1.1 HttpServletRequest类的常用方法常用方法方法介绍String getParameter

2021-09-10 21:38:51 750

原创 7、servlet(上)

一、Servlet技术1.1 Servlet概述1、Servlet 是 JavaEE 规范之一。规范就是接口2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收通过 HTTP(超文本传输协议)客户端发送过来的请求,并响应数据给客户端。1.2 手动实现Servlet 程序一般在实际项目开发中,都是使用继承 HttpServlet 类的方

2021-09-10 21:38:07 114

原创 1、算法课程简介

2021-09-09 18:22:19 316

原创 2、算法与数据结构

简单介绍1、算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算2、一般来讲程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术,它的核心功能是哪个部分呢?3、拿实际工作经历来说,在Unix下开发服务器程序,功能是要支持上千万人同时在线,在上线前,做内测,一切OK,可上线后,服务器就支撑不住了,公司的CTO对代码进行优化,再次上线,坚如磐石。你就能感受到程序是有灵魂的,就是算法。4、目前程序员面试的

2021-09-09 18:20:43 80

原创 JDBC核心技术

JDBC核心技术1、JDBC概述1.1 数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。1.2 JDBC介绍JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的

2021-09-09 09:50:30 198

原创 6、Tomcat

没啥好写的,以后再补充

2021-09-09 09:34:37 55

原创 5、xml

整理中,感觉没啥可写的

2021-09-09 09:24:41 69

原创 4、JQuery

一、jQuery概述什么是jQuery ?jQuery,顾名思义,也就是JavaScript,和查询(Query),它就是辅助JavaScript 开发的js类库。jQuery核心思想! ! !它的核心思想是write less, do more(写得更少,做得更多),所以它实现了很多浏览器的兼容问题。jQuery流行程度jQuery现在已经成为最流行的JavaScript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。jQuery好处!! !jQue

2021-09-09 09:18:59 99

原创 3、javaScript

一、JavaScript 介绍Javascript 语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码。特点:交互性(它可以做的就是信息的动态交互)安全性(不允许直接访问本地硬盘)跨平台性(只要是可以解释JS的浏览器都可以执行,和平台无关)JavaScript与Java的区别:JavaScript的程序代码直接嵌入HTML文件中;而Java程序代码写在Java源文件中;JavaScript是弱类型语言,比如在使用变量前可以不声明变

2021-09-09 08:44:02 127

原创 2、css

一、CSS的简介(一)CSS的定义层叠样式表。属性和属性值用冒号分隔开,以分号结尾(这些符号都是英文的)。(二)CSS得引入方式内联定义:<div style="这里写样式">我是一个块级的标签</div><标签 style="样式名:样式值;样式名:样式值;样式名:样式值;..."></标签>嵌入式:将CSS样式表放到head中用(三)样式的应用顺序行内样式优先级最高针对相同的样式属性,不同的样式属性将以合并的方式呈现相同样式

2021-09-08 20:54:54 116

原创 1、HTML

一、html概述HTML(Hyper Text Markup Language,即“超文本标记语言”)是一种解释性语言,用于制作网页界面,使用该语言编写的网页最终被浏览器解释执行。 W3C:世界万维网联盟 W3C制定了HTML的规范,每个浏览器生产厂家都会遵守规范。HTML程序员也会按照这个规范去写代码。 W3C制定了很多规范: HTML/XML/http协议/https协议......(一)html基本结构<!--加上一下代码的第一行就表示HTML5语法,去掉就表示HTM

2021-09-08 20:52:09 319

原创 图灵—JUC

多核并发缓存框架JMM内存模型Java线程内存模型跟cpu缓存模型类似,是基于cpu缓存模型来建立的,Java线程内存模型是标准化的,屏蔽掉了底层不同计算机的区别JMM数据原子操作read(读取):从主内存读取数据load(载入):将主内存读取到的数据写入工作内存use(使用):从工作内有读取数据来计算assign(赋值):将计算好的值重新赋值到工作内存中store(存储):将工作内存数据写入主内存write(写入):将store过去的变量值赋值给主内存中的变量loc

2021-09-08 17:06:28 137

原创 超好用的网址

中文在线API文档:https://www.matools.comUnicode编码转换工具:http;//tool.chinaz.com/Tools/Unicode.aspx有待补充

2021-08-16 13:11:07 117

原创 Github查找开源项目

GithubGithub开源项目搜索1、应用实例:找一个基于SpringBoot的项目搜索:in:name: springboot stars:>4000 pushed:>2020-01-01 language:java forks:>10000in:name: springboot 按项目名字搜索stars:>4000 热度大于4000pushed:>2020-01-01 最近更新时间language:java 开发语言为java语

2021-08-16 13:08:19 102

原创 JavaSE--第二阶段4

泛型1、泛型的好处编译时,检查添加元素的类型,提高了安全性将运行时期的ClassCastException,转移到了编译时期变成了编译失败。减少了类型转换的次数,提高效率2、注意事项1、interface List ,public class HashSet{}…,T,E只能为引用类型2、在给泛型指定具体类型后,可以传入该类型或其子类类型3、自定义泛型1、基本语法class 类名<T,R...>{ 成员}interface IYse<T,R...&

2021-08-15 06:57:36 200

原创 JavaSE--第二阶段3

集合集合使用场景集合的分类Java 集合可分为 Collection 和 Map 两种体系Collection接口:单列数据,定义了存取一组对象的方法的集合List:元素有序、可重复的集合Set:元素无序、不可重复的集合Map接口:双列数据,保存具有映射关系“key-value对”的集合Collection接口1、Collection常用方法public class CollectionMethod { @SuppressWarnings({"all"})

2021-08-15 06:55:04 195

满汉楼项目使用java和mysql技术.zip

满汉楼项目

2021-09-09

空空如也

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

TA关注的人

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