自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

转载 基础技能 -- IDEA 远程调试 【本地\服务器远程调试】

查找是否设置了相应的参数find / -name "tomcat"ps -ef|grep tomcat然后查看相应的tomcat的启动脚本里是否带有-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=xxxx上述操作后,,找到相应的地址、端口然后进入idea – edit configuration 里面配置一个Remotes 即可详细内容下述链接中大佬描述的挺详细的https://blog.csdn.net/kefen.

2020-07-14 19:49:13 152

原创 十 10.1 --- 垃圾回收器

十 10.1 — 垃圾回收器概述学习渠道:尚硅谷[宋红康]十 10.1 --- 垃圾回收器概述十 10.1 --- 垃圾回收器概述1,不同的垃圾回收器概述1,0 查看相应设置参数的文档1,1 垃圾回收器分类2,GC性能指标的整体说明2,1 吞吐量vs暂停时间3,不同的垃圾回收器3,1 7种经典回收器与垃圾分代的关系3,2 垃圾回收器的组合关系3,3 查看默认垃圾回收器参数:4,serial 与 serial old回收器 【串行回收】5,ParNew垃圾回收器6,parallel回收器 ,,吞吐量优先的

2020-07-06 00:50:10 294

原创 九 9.3 --- 垃圾回收

九 9.3 — 垃圾回收学习渠道:尚硅谷[宋红康]九 9.3 --- 垃圾回收九 9.3 --- 垃圾回收1,System.gc()的理解2,内存溢出3,内存泄漏4,STW stop the world5,垃圾回收的并行与并发5,1 并发5,2 并行5,3 并行与并发对比5,4 垃圾回收的并行与并发6,安全点与安全区域6,1 安全点6,2 安全区域7,引用7,1 强引用 -- 不回收7,2 软引用 -- 内存不足时则回收7,3 弱引用 -- 发现即回收7,4 虚引用,,对象回收跟踪7,5 终结器引用的介

2020-07-05 22:59:12 160

原创 九 9.2 --- 垃圾清除阶段的算法

九 9.2 — 垃圾清除阶段的算法学习渠道:尚硅谷[宋红康]九 9.2 --- 垃圾清除阶段的算法九 9.2 --- 垃圾清除阶段的算法1,概述2,标记-清除算法3,复制算法4,标记-压缩(整理)算法5,小结,三种算法的对比6,根据上述,为了达到最优,,提出了分代收集算法7,低延迟与吞吐量之间的权衡7,1 增量收集算法7,2 分区收集算法【G1 分Region收集】1,概述当成功区分出内存中存活对象和死亡对象后,GC接下来的任务就是执行垃圾回收,释放掉无用对象所占用的内存空间,以便有足够的可用内存空

2020-07-05 22:13:23 207

原创 九 9.2 --- 垃圾回收算法概述

九 9.2 — 垃圾回收算法概述学习途径:尚硅谷[宋红康]九 9.2 --- 垃圾回收算法概述九 9.2 --- 垃圾回收算法概述1,垃圾的标记阶段的算法1,1 引用计数算法1,1,1 **循环引用demo**1,1,2 ==java代码举例==1,1,3 ==**小结**==1,2 可达性分析算法2,GC Roots3,对象的finalization机制4,代码演示对象“复活”场景5,获取Java程序的dump文件5,1 方式1:命令行获取5,2 方式2:使用JVisualVM导出5,3 JProfi

2020-07-05 21:49:45 296

原创 九 9.1 ---垃圾回收概述

九 9.1 —垃圾回收概述学习渠道:尚硅谷[宋红康]九 9.1 ---垃圾回收概述九 9.1 ---垃圾回收概述1,学习过程2,GC概述3,经典面试题列举4,那么什么被称作“垃圾”?5,那么为什么需要GC?6,早期的垃圾回收机制7,Java的垃圾回收机制1,学习过程拥有了上述的基础之后,我们要做的便是行能优化2,GC概述垃圾收集,不是ava语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。关于垃圾收集有三个经典问题:哪些内存需要回收?什么时候

2020-07-05 16:42:37 176

原创 八 8.1 --- String内容浅析

八 8.1 — String内容浅析学习渠道:尚硅谷[宋红康]八 8.1 --- String内容浅析八 8.1 --- String内容浅析1,String的基本特性2,String的内存分配3,String的基本操作3,1 **String的拼接操作**3,2 字符串拼接的底层原理3,3 拼接和StringBuild的append()操作的效率对比4,String的intern()的使用5,通过面试题来更好的了解String5,1 new String("ab") 会创建几个对象?5,2 new S

2020-07-04 09:00:32 115

原创 七 7.1 --- 执行引擎、机器码、解释器、JIT编译器等概述

七 7.1 — 执行引擎、机器码、解释器、JIT编译器等概述学习渠道:尚硅谷[宋红康]执行引擎、机器码、解释器、JIT编译器等概述七 7.1 --- 执行引擎、机器码、解释器、JIT编译器等概述1,执行引擎概述2,执行引擎的工作过程3,Java程序的编译和执行的过程4,编译器与JIT编译器1)简介5,小结6,解释器与编译器的工作机制1)机器码概述:2)解释/编译 程序3)高级语言--字节码--cpu指令集4)字节码5)解释器6)解释器工作机制7)引入JIT及时编译技术的原因8)JIT存在的微妙辩证dem

2020-07-03 00:42:39 284

原创 六 6.1 --- 对象实例化方式以及直接内存

对象实例化方式以及直接内存学习途径: 尚硅谷【宋红康】对象实例化方式以及直接内存对象实例化方式以及直接内存1,对象实例化2,创建对象的步骤**步骤:**每一小步说明1,加载、链接、初始化2,为对象分配内存3,指针碰撞4,空闲列表分配5,测试对象实例化的过程6,给对象的属性赋值的操作7,设置对象的对象头8,执行init方法进行初始化小问题3,对象内存布局4,对象访问定位对象访问定位的两种方式优点:1,对象实例化涉及 虚拟机栈、堆以及方法区对象实例化 方式说明1new1,Xx

2020-07-02 08:57:41 91

原创 五 5.4 --- 方法区运行时常量池的理解

五 5.4 — 方法区运行时常量池的理解学习渠道:尚硅谷方法区运行时常量池的理解五 5.4 --- 方法区运行时常量池的理解A.JVM运行时内存结构B.常量池与运行时常量池的理解C.为什么需要常量池这种数据结构D. 使用jclasslib演示的任意demoF.常量池中的内容G.常量池小结H.接下来介绍运行时常量池A.JVM运行时内存结构B.常量池与运行时常量池的理解要了解运行时常量池,首先我们要了解的是常量池,,因为常量池在类加载的时候加载到方法区中就变成了运行时常量池C.为什么需要常量

2020-06-06 17:22:58 303

原创 五 5.3 --- 方法区内部结构

五 5.3 — 方法区内部结构学习渠道:尚硅谷存储的信息field信息、方法信息、各种类的类信息、静态变量、即时编译器代码缓存、类加载器A.field信息:[常被称作域,字段,属性,变量]B.方法信息:void也是一种返回类型,记得voidClass吗C.non-final的类变量注:全局变量:static final被声明为final的类变量的处理方法则不同,每个全局变量在编译的时候就被分配了我们查看字节码文件看看键入命令: java -v -p xxx.class &

2020-06-06 17:04:00 146

原创 五 5.2 --- 方法区溢出Demo以及解决OOM的一些途径

五 5.2 — 方法区溢出Demo以及解决OOM的一些途径学习渠道:尚硅谷1.OOM Demo/** * jdk7: * -XX:PermSize=10m -XX:MaxPermSize=10m * jdk8: * -XX:MetaspaceSize=10m -XX:MaxMetaspaceSize=10m * * 其他的例子:借助cglib是的方法区出现内存溢出异常也可以实现OOM */public class NonHeapOOMTest extends ClassLoader{

2020-06-05 08:40:48 303

原创 五 5.1 --- 方法区概述

五 5.1 — 方法区概述学习渠道:尚硅谷方法区概述五 5.1 --- 方法区概述A.运行时数据区结构图B.堆、栈、方法区间的交互C.方法区(Non-Heap)的理解D.方法区的变革[演进]F.方法区相关参数的设置A.运行时数据区结构图B.堆、栈、方法区间的交互到“对象类型数据”的指针:让我们找到对象到底是哪个类new的上面那个新生成的类也描述的很清楚了C.方法区(Non-Heap)的理解oracle 地址方法区中存放的数据类型:运行时常量池 静态变量 方法 类[枚举、注解、接口…]

2020-06-04 23:41:38 126

原创 四 4.5堆 --- 内存分配策略 TLAB 逃逸分析 小结

四 4.4堆 — 内存分配策略 TLAB 逃逸分析学习渠道:尚硅谷内存分配策略 TLAB 逃逸分析四 4.4堆 --- 内存分配策略 TLAB 逃逸分析A.内存分配策略【对象提升规则】B.case演示大对象直接进入老年代C.堆空间会为每个线程分配TLAB==TLAB细节【jdk7默认开启】==此时的对象分配过程TLABD.常用堆参数设置E.空间分配担保F.逃逸分析--堆并非是分配对象存储的唯一选择G.逃逸分析相关DemoH.逃逸分析做的代码优化1.栈上分配策略2.同步省略--锁取消3.分离对象和标量替换

2020-06-03 17:13:48 171

原创 四 4.4堆 --- MinorGC MajorGC FullGC对比 以及 堆空间分代思想

四 4.4堆 — MinorGC MajorGC FullGC概述 以及 堆空间分代思想学习渠道:尚硅谷4.4堆 --- MinorGC MajorGC FullGC概述 以及 堆空间分代思想四 4.4堆 --- MinorGC MajorGC FullGC概述 以及 堆空间分代思想A.MinorGC MajorGC FullGC概述B.分代式GC触发条件1.年轻代GC(Minor GC)触发机制2.老年代GC触发机制3.FullGC触发机制C.堆空间分代思想A.MinorGC MajorGC Ful

2020-06-03 16:21:34 192

原创 四 4.3堆 --- 图解对象分配过程

四 4.3堆 — 图解对象分配过程学习途径:尚硅谷1.图解对象分配与垃圾回收注:绿色是标记存活的对象2.叙述小结3.细节

2020-06-02 23:44:42 489

原创 四 4.2堆 --- 新生代与老年代

四 4.2堆 — 新生代与老年代学习途径:尚硅谷内存物理上不连续、逻辑上连续【但是如果物理上连续,就比较高效】因为物理内存和虚拟内存间有映射表通过工具了解到8:1:1的比例其他要点描述了垃圾回收中 Minor GC 与 Major GC的流程-XX:NewRatio : 设置新生代与老年代的比例,默认值是2.-XX:SurvivorRatio : 设置新生代中Eden区与survivor区的比例-XX:-UseAdaptiveSizePolicy : 关闭自适应的内存分

2020-06-02 23:34:26 124

原创 四 4.1堆 --- 概述

四 4.1堆 --- 概述四 4.1堆 --- 概述分代收集理论设计Question: 如何理解600M的堆内存可利用的只有575M知识点3 查看相应虚拟机参数的两种方式的对比图四 4.1堆 — 概述学习渠道:尚硅谷正常情况下,如果我们的虚拟机栈中不在包含堆实例的引用,那么就变成了"垃圾",可进行回收分代收集理论设计元空间、永久区正在逐步的迁移到方法区中Question: 如何理解600M的堆内存可利用的只有575M其中s0 s1 (from to)需要有一个保持为空的状态[作为下

2020-06-01 23:35:10 77

原创 三、本地方法栈 -- 概述

三、本地方法栈 – 概述学习渠道:尚硅谷C/C++编译的程序不需要运行在JVM,直接操作本机的处理器以及堆内存通过动态链接的形式指向本地方法

2020-06-01 23:17:47 114

原创 二、2.5运行时数据区 -- 方法重写/方法返回地址/其他附加信息

方法的调用–方法重写的本质方法的调用–虚方法表方法的调用–虚方法表查找例如toString方法、子类重写的父类的方法先找自己的的虚方法表中是否有重写的没有找父类的最终Object 因为Object是所有类的父类方法返回地址理解方法里面调方法,那么栈帧肯定是要被存起来的,也就是程序计数器。我中间的方法处理完之后,如果有返回值的话,是不是给返回值?这个返回动作完成之后出栈先返回方法的返回值。我想知道我们这个方法执行到哪里了?所以,之前保存的原方法的程序计数器就发挥了作用。后续的

2020-05-31 19:25:37 101

原创 二、2.4运行时数据区 -- 动态链接 方法调用【静态绑定、动态绑定】

二、2.3运行时数据区 – 动态链接 方法调用【静态绑定、动态绑定】学习渠道:尚硅谷动态链接 方法调用【静态绑定、动态绑定】1.栈顶缓存技术ToS2.动态链接及其作用方法调用早期绑定[编译期可“感知”,运行期保持不变] -- 重载晚期绑定[编译期不可“感知”,运行期根据实际的类型绑定相应的方法] -- 重写(多态特性)Demo1.栈顶缓存技术ToS将栈顶元素全部缓存至物理CPU的寄存器中,以降低对内存的读/写次数,提高执行引擎模块的执行效率2.动态链接及其作用触发类主动加载 + 类中符号解

2020-05-31 18:05:44 167

原创 Flink project java篇

Flink project java篇attentionscala mistake summary 【summary most important!!!】stage01 user behavior analysis1.MyHotItemAnalysis.javastage02 network total flow analysis1.PageFlow(pv)2.MyHotPage3.MyUvAnalysis4.MyUvAnalysisWithBloom 采用bloom过滤器对数据进行过滤,数据量大了Hash

2020-05-31 13:12:46 415

原创 Flink project scala篇

Flink project-UserBehaviorAnalysis-TotalCount1.tipsstage01 user behavior analysis1.totalcountstage02 network total flow analysis1.PageView(pv)2.HotPageOnLog1.tips/**模版 source transform map --- 得到bean assignAscendingTimestamps --- 数据要带时间戳 而

2020-05-31 09:43:50 298

原创 二、2.3运行时数据区 -- 虚拟机栈概述+局部变量表

运行时数据区 --虚拟机栈学习渠道:尚硅谷1.栈帧的数据结构2.局部变量表局部变量表是线程私有的,数据安全能得到保证局部变量表的数据结构是数字数组,用于存储方法参数以及方法体内的局部变量【如 各类各种基本数据类型的数据、相关的对象引用(reference)以及返回地址类型(returnAddress){得到当前函数的调用者的返回地址}】3.局部变量表存储单元 Slot32位以内的类型只占用一个Slot,比如int类型为一个Slot returnAddress为一个Slot、double类型为

2020-05-30 22:55:59 105

原创 二、2.2运行时数据区 -- 程序计数器PC

运行时数据区 – 程序计数器PC1.理解我们可以将程序计数器(Program Counter Register)理解为pc计数器、指令计数器、代码行号指示器或者程序钩子。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。2.特性1) 占据一块很小内存空间,通常是线程私有,运行速度快2)生命周期同线程的生命周期保持一致3)通常我们的程序是复杂的,且代码长度常进行封装,因此,一个线程中往往有多个方法,但,每个时刻只有一个方法在执行(PC指向的当前方法),此时就需要进行方法的跳转,因此,当前的PC

2020-05-30 22:18:32 184

原创 二、2.1运行时数据区概述

学习渠道 尚硅谷运行时数据区概述1.主要由五部分组成程序计数器、虚拟机栈、本地方法栈、堆、方法区其中程序计数器、虚拟机栈、本地方法栈线程私有堆、堆外内存(永久代[1.7]或元空间[1.8]、代码缓存) 线程间共享2.运行时数据区说明图3.其他细节每个JVM只有一个Runtime实例,即运行时环境,因此Runtime实例在代码中相当于运行时环境...

2020-05-30 21:56:46 143

原创 一、类加载器学习小结

学习渠道:尚硅谷1.理解类加载器加载对象.java文件编译后会生成*.class*文件,那么在.class文件需要运行时,如何将这些物理磁盘等等上的.class文件加载到JVM上呢,此时,类加载器发挥了作用。类加载简要流程 .class --> JVM --> JVM内存中的各种元数据2.类的加载过程加载Loading主要做了3个工作:【不只局限本地磁盘系统加载】通过该类全类名获取该类相应的二进制字节流将该字节流存储的内容按照约定规则【许多字节是JVM识别的标识,诸如

2020-05-30 09:36:08 106

原创 mysql查询语句时,数据库表存在却报出数据库表不存在

mysql查询语句时,数据库表存在却报出数据库表不存在遇到该问题时,我采用两个方式去解决这个问题1、核对书写的数据库名是否存在字母拼写上的问题2、如果mysql安装在Linux上,那么对于Linux上的mysql的默认配置中是默认开启大小写敏感的,此时,先试验输入大小写匹配的数据库名进行查询试试,如果可以成功,那么我们先查看是哪一个mysql服务在启动可以在关闭之前使用命令:ps -e...

2019-09-14 21:21:12 5252

原创 双路由或三路由配置 实现内网和无线网同时可用

双路由或三路由配置 实现内网和无线网同时可用双路由或三路由配置:然后添加路由的两条命令:【下述的每条命令都是一条路由】命令说明双路由或三路由配置:配置的时候:内网云桌面:61.2.9.17,内网/以太网网卡 ip : 19.100.4.76[网关 19.100.4.254]首先:网关相当于邮政局,计算机是通过网关出去的,相当于寄信要先去邮局一样,让邮局帮我们去找目的地然后添加路由的两条命令...

2019-09-14 11:49:48 876

原创 创建springmvc helloworld工程出现404 not found 报错 org.springframework.web.servlet.DispatcherServlet我的解决方式

SpringMVC helloworld报错的我的解决思路首先查看能否达到你的控制器,你可以加上控制台输出语句,查看是否被执行如果可以输出语句的话,检查你定义的springmvc.xml中的视图解析器中的路径,路径是拼接的/WEB-INF/views/ + returnValue(例如上述的返回值success) + .jsp 。对于上述的views文件夹是你自己指定的,上述的jsp...

2019-06-13 10:57:40 2850

空空如也

空空如也

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

TA关注的人

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