自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM-类加载过程和双亲委派

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-07-05 21:31:22 100

原创 JVM-模型及对象

内存模型1.程序计数器:线程私有;正在执行的虚拟机字节码指令的地址;如果正在执行的是本地(Native)方法,这个计数器值则应为空(Undefined)。此内存区域是唯一一个在《Java虚拟机规范》中没有规定任何OutOfMemoryError情况的区域。2.堆:存放对象实例;如果从分配内存的角度看,所有线程共享的Java堆中可以划分出多个线程私有的分配缓冲区(Thread Local Allocation Buffer,TLAB),以提升对象分配时的效率。3.虚拟机栈:每个方法被执行的时候,Jav

2021-03-31 21:04:10 158

原创 JVM-对象内存布局

对象头:用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机(未开启压缩指针)中分别为32个比特和64个比特,官方称它为“Mark Word”。另外一部分是类型指针,即对象指向它的类型元数据的指针,Java虚拟机通过这个指针 来确定该对象是哪个类的实例。实例信息:对象真正存储的有效信息,即我们在程序代码里面所定义的各种类型的字段内容,无论是从父类继承下来的,还是在子类中定义的字段都必

2021-03-12 20:36:07 102

原创 JVM-对象的创建

一、检查类加载当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程二、分配内存绝对规整的指针碰撞如果是规整连续的内存空间,一边是已用的空间一边是空闲的空间,那么分配内存仅仅只是把那 个指针向空闲空间方向挪动一段与对象大小相等的距离不规则的空闲内存列表分配虚拟机就必须维护一个列表,记录上哪些内存块是可用的,在分 配的时候从列表中找到一块足够大的空

2021-03-12 20:11:50 69

原创 多线程(3)

Synchronized补充1.对象头上有64位其中两位标志是否被锁定(markword)2.可以锁对象,锁类对象,锁代码块,锁方法3.可重入锁(m1掉m2方法可以成功(两个方法都加了sync),比如父子方法)4.加了sync和不加sync可以同步进行5.锁升级 只有一个线程:只记录markword的ID(偏向锁) 如果有线程争用,升级为自旋锁(转圈10次) 然后升级为重量级锁(OS层次)6.加锁决策 执行时间长,线程多,用重量级锁 执行时间短,线程少,用自旋锁volatile保证线程可见性

2021-03-08 21:34:30 63

原创 多线程(2)

概论多线程是为了提高CPU的利用率,多线程是随机的,是异步的。当多个线程同时操作一个可共享的资源变量时,将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。实现同步的方式1.synchronized可以修饰一个方法public synchronized void set(){}可以修饰一个代码块public void save(){synchronized (this){ count += m

2021-03-08 21:26:49 47

原创 多线程(1)

概念进程:正在进行的一个过程(任务管理器每一个process)线程:CPU独立运行和独立调度的基本单位,或者说进程的一个执行路径多线程的意义提高CPU的利用率,多个线程之间是异步执行PS:好比你要煮一碗面,可以在烧水的时候去切菜。烧水,切菜两件事情可以同时进行,没必要等烧好水再去切菜。如何创建一个线程1.Thread类2.实现Runnable接口3.Executors.newCacheThread线程有哪些方法start() 启动一个线程sleep() 当前线程睡眠,让给其他线程执

2021-03-08 20:59:53 71

原创 JVM内存模型

一、Java文件是如何被执行的1、javac将java文件通过编译器,编译成class文件2、类加载1)加载:将class文件加载入内存,文件内容被存放在运行时区域的方法区(1.8开始将永久代弃用,使用元数据区,但是方法区的概念还在),并且在堆里面通过字节流创建Class对象;2)链接a 验证:确保class满足规范要求,没有安全问题b 准备:为类的静态成员分配内存,并设置默认初始值 ...

2020-02-19 14:41:25 102

原创 记一次OOM排查优化问题

一、OOM简介以下为转载的一些知识点,这边主要是记录以下排查过程1.jvm内存分配不够,电脑内存的大小,不等于java程序能够使用的内存大小。jvm分配的内存大小,可以在JVM启动时,通过配置文件配置。2.内存利用不当,有两个表现,内存泄漏和内存溢出。内存泄漏:对象使用完毕后,不能够及时销毁,变成内存垃圾,如果不能够及时清理,内存垃圾越来越多,可用内存越来越少,影响程序的健康运行。虽然ja...

2020-02-12 13:55:30 302

原创 记一次Spring自动配置类配置冲突问题

起因这里暂且将自动配置类称之为服务提供方,将使用这个自动配置类的称之为调用方。提供方和调用方都是依靠IDEA自动生成的SpringBoot 项目。提供方有着自己的配置参数,调用方也有着自己的配置参数,调用方使用提供方提供的组件(组件已经装配好特有的参数),问题在于组件的参数注入失效参数注入方式这里是为了做实验,刚开始还以为是注解的原因,所以采用了两种配置参数注入方式,以作比较一、@Valu...

2019-12-26 21:28:19 906

原创 Lambda表达式

一、定义Lambda表达式是一个对象,是函数式接口的实例;优化性替代匿名内部类,简洁易懂;提升了对集合、框架的迭代、遍历、过滤操作;二、语法语法格式为(参数)->表达式(参数) -> {多行的方法具体实现};(参数) -> 单行语句()里面参数个数对应函数式接口里面抽象方法的参数个数(直接省略了方法名字);PS:方法重载的时候怎么选择的方法如果只有一个可...

2019-10-01 15:04:49 122

原创 反射的运用

一、反射介绍定义在运行时期,能够动态访问、检测完整类结构信息甚至修改类本身的一种能力特点优点灵活性高,因为是动态编译。(静态编译即编译器是确定类型&绑定对象;动态编译即运行期确定类型&绑定对象)动态编译体现了Java的灵活性、多态特性&降低类之间耦合缺点执行效率低,主要通过JVM执行,所以时间成本会 高于 直接执行相同操作反射调用方法是通过inv...

2019-10-01 15:03:35 134

原创 JSON和对象的转换

最近在使用腾讯的云通信功能,在调用腾讯开发接口的时候出现了很多问题,记录一下。首先,先强烈吐槽下腾讯,开发文档都不知道是几年前的,跟实际的接口情况根本匹配不上。然后切入正题,接口的返回都是REST风格的json串的方式返回,对于Java这种强定义类型的就十分的不友好。但是在引入阿里巴巴的fastJson包,很多问题就变得十分的方便。1.String->Object或者JSONObject...

2018-12-14 17:15:12 177

原创 IO流的部分运用

一、GZIP解析内容简述:通过一个网络地址,下载到一个.gz格式的压缩包,然后解压获取里面的文本文件,再将文本文件中的JSON串(仅只有字符串,格式统一),数据入库。当时听到这个要求的时候感觉…好恐怖,听着就很复杂,不可能写的出来,后来发现就几行代码,不得不说IO流厉害。1.通过地址获取url对象URL url = new URL(path);2.打开HTTP链接HttpURLConne...

2018-12-14 17:10:53 101

原创 集合去重

情况说明: newDepartmentListHasMatch,newUserDepartmentList为两条泛型为UserDepartment的ArrayList,整合成一条新的ArrayList,要求UserDepartment的UserDepartmentId不可重复。要求去重后者的记录一、Set去重 //存放整合后的集合 List<Use...

2018-12-11 16:52:24 1900

原创 Map初步认识和运用

一、概念Map集合没有继承Collection接口,其提供的是key到value的映射。Map集合中存储的就是键值对。Map集合中必须保证键的唯一性。二、基本方法添加value put(key,value):返回前一个和key关联的值,如果没有,则返回null删除void clear():清空map集合value remove(key):根据指定的key删除这个键值对判断bo...

2018-09-29 11:15:38 124

原创 AOP在Spring和Springboot的配置

前言:记录下aop的初步学习,因为自己的demo是Springboot的,但是为了结合Spring对比学习,xml的配置是借鉴五月的仓颉的Spring3:AOP,尊重原创,同时感谢大佬写的通俗易懂。一、定义剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为”Aspect”,即切面。所谓”切面”,简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或...

2018-09-05 10:33:32 1163

原创 三种基本的排序算法--Java实现

记录一下基本的三种排序算法,也顺便复习一下时间复杂度的计算。 先是简单的交换,之后会用到 private static void swap(int arr[], int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;一、冒泡排序依次将每个位置上的数字与逐一与其之后的数字进行比...

2018-08-30 14:49:10 236

原创 HTTP请求与响应

一.http请求过程域名解析 –> 发起TCP的3次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) –> 浏览器对页面进行渲染呈现给用户 TCP/IP 三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手...

2018-08-23 17:57:55 367

原创 Git使用(2)-适合实习生小白的整理

之前写了一则关于Git的SSH Key获取设置、new branch、从GItLab的远程仓库下来代码,那么这则就要开始写下一些基本Git操作。根据我之前遇到的问题,我将操作分成:1.直接在主分支开发,2.在主分支下的子分支开发。两种情况,当时刚接触Git的我的确是被弄得一脸懵逼的说。一、在主分支下开发1.使用Git Bash(1)找到本地仓库(即项目所在文件夹),右键Git Bash...

2018-08-16 15:59:06 377

原创 Git使用(1)-适合实习生小白的整理

GIT作为现在最流行的代码管理工具(我这么认为的),必定是新手小白必须学习的第一件事儿,但是过程中遇到了很多问题,相信刚开始大家都会遇到问题。So,我准备把这个整理出来,写出一份我的操作,自认为最适合新手的操作。这里用的是GItLab,默认你已经创建了项目或者是被加入到一个项目中了。一、生成SSH KEY这里就介绍用GIt GUI来生成SSH KEY,真的很简单 1.桌面右键打开Gi...

2018-08-13 15:45:13 374

原创 通用Mapper的example实例使用

在最近的实习生学习中,渐渐使用到了通用Mapper,但是之前根本就没接触过。其实同效果的SQL不难,但是改成相应的example难免有些不熟悉,在这里收集一些方法的使用,前半段是从其他地方抄然后小改了一下的,后半段是我自己的实操问题。为了尊重作者我在这里注明下是CSDN的Zzoujy(且不管他也是转的)一、example实例mybatis的逆向工程中会生成实例及实例对应的example,e...

2018-08-03 15:46:22 14936 9

原创 新闻通知接口(数据库,DTO,列表,详情和上一条下一条)

作为实习生的我现在开始跟进新项目啦,当然分到的部分难度不会太大。很激动很新奇也很忐忑,但是幸好运气不错,大家都在帮助我的成长,但是在进行中遇到了不少的麻烦,在此记录,算是记录自己程序猿的成长之路。 我负责的模块是新闻通知模块,主要接口分为三块:新闻列表,新闻详情和上一条下一条。在编写接口文档的时候,列表和详情的实现难度不大但是在上一条和下一条的实现中,我遇到了问题。如下 在我的认知里这几个...

2018-08-02 12:30:10 1762

空空如也

空空如也

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

TA关注的人

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