自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 JVM常用调优参数

JVM常用调优参数1.JVM参数分类2.常用参数配置3.G1相关参数4.日志相关5.元空间6.查看jdk的jvm参数1.JVM参数分类标准:- 开头,所有的HotSpot都支持非标准:-X 开头,特定版本HotSpot支持特定命令不稳定:-XX 开头,下个版本可能取消2.常用参数配置-Xms :初始堆大小 -Xmx :最大堆大小 -XX:NewSize=n :设置年轻代大小 -XX:NewRatio=n :设置年轻代和年老代的比值.如:为3,表示年轻代与年老代比值为1:3,年轻

2022-01-14 11:46:40 233

原创 如何实现并发的原子性、可见性、有序性

并发的原子性 可见性 有序性1.原子性2.可见性3.有序性1.原子性原子性是指:在一次或者多次操作时,要么所有操作都被执行,要么所有操作都不执行。int count = 0; //1count++; //2 int a = count; //31.线程先把count=0写入工作内存中,然后再把它写入主内存,就此赋值语句可以说是具有原子性。2.线程从主内存中读取i的值,然后把它存入当前线程的工作内存中;线程把工作内存中的count执行加1操作;线程再把count的值写入主内存中。和上

2022-01-14 11:23:13 207

转载 Java的内存屏障

Java的内存屏障1.指令重排2. java内存屏障2.1 什么是内存屏障(Memory Barrier)?2.2 为什么需要内存屏障?2.3 内存屏障的主要类型1.指令重排程序在运行时内存实际的访问顺序和程序代码编写的访问顺序不一定一致,这就是内存乱序访问。内存乱序访问行为出现的理由是为了提升程序运行时的性能。这种内存乱序问题主要是由两种原因引起的:1.写内存屏障(Store Memory Barrier): 在指令后插入Store Barrier, 能让写入缓存中的最新数据更新写入主内存, 让其

2022-01-14 10:44:34 240

原创 JVM---ClassFile的文件结构解析

ClassFile的文件结构解析1.无符号数2.表3 ClassFile的文件结构解析3.1 magic(魔术)3.2 class文件版本号3.3 constant_pool_count3.4 constant_pool常量池详细解析常量类型总共有18个编号的常量类型。3.5 access_flag3.6 this_class3.7 super_class3.8 intefaces_count和 intefaces3.9 fields_count 和 fields3.10 method

2022-01-09 17:19:00 389

原创 java--springmvc

一、介绍SpringMVC:是基于spring的一个框架, 实际上就是spring的一个模块, 专门是做web开发的。 理解是servlet的一个升级。SpringMVC就是一个Spring。 Spring是容器,ioc能够管理对象,使用, @Component, @Repository, @Service, @ControllerSpringMVC能够创建对象, 放入到容器中(SpringMVC容器), springmvc容器中放的是控制器对象,web开发底层是servlet, spri

2021-09-25 16:02:11 90

原创 java--spring---事务配置和Mybatis整合

一、事务的配置1.事务的隔离级别:有4个值。 DEFAULT:采用 DB 默认的事务隔离级别。MySql 的默认为 REPEATABLE_READ; Oracle默认为 READ_COMMITTED。 ➢ READ_UNCOMMITTED:读未提交。未解决任何并发问题。 ➢ READ_COMMITTED:读已提交。解决脏读,存在不可重复读与幻读。 ➢ REPEATABLE_READ:可重复读。解决脏读、不可重复读,存在幻读 ➢ SERIALIZABLE:串行化。不存在并发问题。2.事务的传播

2021-09-25 15:49:10 1087

原创 java--Spring(AOP)

1.动态代理@Overridepublic void doSome() { System.out.println("执行业务dosome");}@Overridepublic void doOther() { System.out.println("执行业务doother");}1、实现步骤1.创建目标;SomeServiceImpl目标类,给他的dosome,deother增加输出时间事务2.创建invocationHandler接口的实现类,在这个类实现给目标增加功

2021-09-16 14:43:43 70

原创 Java----spring(2)

一、引用类型属性自动注入根据自动注入判断标准的不同,可以分为两种:byName:根据名称自动注入byType: 根据类型自动注入(1) byName 方式自动注入当配置文件中被调用者 bean 的 id 值与代码中调用者 bean 类的属性名相同时,可使用byName 方式,让容器自动将被调用者 bean 注入给调用者 bean。容器是通过调用者的 bean类的属性名与配置文件的被调用者 bean 的 id 进行比较而实现自动注入的。<bean id= "myStudent" cl

2021-09-14 17:45:09 53

原创 java--Spring

1.什么是Spring?特点是什么?优点是什么?Spring是Java EE编程领域的一个轻量级开源框架,该框架由一个叫Rod Johnson的程序员在 2002 年最早提出并随后创建,是为了解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架 。Spring是一个开源容器框架,它集成各类型的工具,通过核心的Beanfactory实现了底层的类的实例化和生命周期的管理。在整个框架中,各类型的功能被抽象成一个个的 Bean,这样就可以实现各种功能的管理,包括动态加载和切面编程。特点:1.方便解耦

2021-09-13 19:48:00 123

原创 java----hash冲突和内存溢出

一、hash冲突1.什么是hash冲突?由于哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。(两个不同的数据计算后的结果一样)2.解决哈希冲突的方式有四种方法:1. 开放定址法(再散列法)线行探查法平方探查法双散列函数探查法2. 链地址法(拉链法)3. 再哈希法4. 建立公共溢出区3.开放定址法发生冲突的那个单元起,按照一定的次序,从哈希表中找到一个空闲的单元,然后把发生冲突的元素存入到该单元的一种方

2021-08-17 18:00:03 571

原创 java----线程池原理

一、简介什么是线程池?线程池(ThreadPool)是一种基于池化思想管理和使用线程的机制。它是将多个线程预先存储在一个“池子”内,当有任务出现时可以避免重新创建和销毁线程所带来性能开销,只需要从“池子”内取出相应的线程执行对应的任务即可。池化思想在计算机的应用也比较广泛,比如以下这些:内存池(Memory Pooling):预先申请内存,提升申请内存速度,减少内存碎片。连接池(Connection Pooling):预先申请数据库连接,提升申请连接的速度,降低系统的开销。实例池(Obje

2021-08-16 21:43:38 128

原创 java----hashmap底层原理

基于JDK1.8一、hashmap概述HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同。HashMap是线程不安全的。1.继承关系public class HashMap<K,V>extends AbstractMap<K,V> implements Map<K,V>, Clo

2021-08-16 19:34:16 70

原创 java-----集合与映射

一、集合1、集合的由来Java中给我们提供了另外一类容器,专门用来存放对象,这个容器就是我们要学习的集合。集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。Java的集合主要有List , Set, Map其中 List , Set 继承至Collection接口,Map为独立接口List下有ArrayList,LinkedList,VectorSet

2021-08-15 19:58:16 438

原创 java---浅拷贝和深拷贝

Java中的对象拷贝指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b;一、浅拷贝①对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。因为是两份不同的数据,所以对其中一个对象的该成员变量值进行修改,不会影响另一个对象拷贝得到的数据。②对于数据类型是引用数据类型的成员变量,比如说成员变量是某个.

2021-08-15 16:01:16 91

原创 Java的四种引用

Java四种引用包括强引用,软引用,弱引用,虚引用。一、强引用例如:Object object=new Object();object就是一个强引用了。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。如果想取消强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样可以使JVM在合适的时间就会回收该对象。.

2021-08-15 14:22:00 210

原创 java---值传递和引用传递

一、数据类型Java中数据类型分为两大类,基本类型和对象类型。相应的,变量也有两种类型:基本类型和引用类型。基本类型的变量保存原始值,即它代表的值就是数值本身;引用类型的变量保存引用值,"引用值"指向内存空间的地址,代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress,引用类型包括:类类型,接口类型和数组。一、值传递方法

2021-08-14 18:12:42 76

原创 Java--IO流

一、IO的概述1.什么是Io流?IO Stream(input output Steam):输入输出流本质指的就是计算机中数据的流入和流出:从磁盘上将数据读入内存从内存中将数据写入到硬盘也就是说,从狭义上来说,我们一般IO流指的就是磁盘和内存之间的数据流动但是从广义来说,不同电脑之间的数据流动,也是一种IO流,网络通信也是IO流(socket)在本地进程间的数据流动,就是狭义上的IO流在远程进程间的数据流动,也就是一种IO流(Socket)Java的I0流是实现输入/输出的基础

2021-08-07 20:44:26 136

原创 Java--常见的系统类

一、日期1. 日期相关的操作 |-- Date的使用 |-- Calendar日历类 |-- DateFormat类 --> SimpleDateFormat类 |-- JDK8 新的时间API |-- LocalDate |-- LocalTime |-- LocatDateTime |-- DateTimeFormatter |-- Instant2. Date的使用Date类并不仅仅表示日期,而是精确到毫秒。从这个角度看,也许将其称为DateTime更为合适

2021-07-29 13:09:56 357

原创 Java面向对象总结

1.内部类1.1什么是内部类内部类不是很好理解,但说白了其实也就是一个类中还包含着另外-一个类。如同-一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之-,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一一个心脏,而需要一类。而心脏又在人体当中,正如同是内部类在外部内当中。内部类可以直接访问包裹着它的外部类任何属性和方法(包括私有的)一般而言,定义内部类,注意的目的,肯定是在包裹着它的外部类中使用它。public class Ou

2021-07-25 18:05:19 54

原创 Java面向对对象——异常处理

1.什么是异常?异常是程序中的一些错误,但并不是所以的错误都是异常,并且错误有时候是可以避免的.异常就是指的程序在运行过程中,发生的不正常(用户操作不当、服务终止、程序BUG……)的程序无法正常运作的情况异常处理的目的:为了提高程序的稳定性和健壮性,让程序正常的运作下去比如,希望用户输入一个 int 类型的年龄,但是用户的输入是 abc :// 假设用户输入了abc: String s = "abc"; int n = Integer.parseInt(s); // Number

2021-07-24 19:02:23 139

原创 面向对象——三大特征

一、封装1.什么是封装?从广义上来说,封装就是将物品,保管起来、封存起来面向对象上说的封装,是一种特指:1.将类的属性私有化(不再为外界提供直接访问属性的方式),2.提供对应的getter和setter方法来访问和设置属性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。2.封装的好处提

2021-07-22 12:23:22 71

原创 面向对象入门——类与对象,构造函数

1.什么是类?一个类型,把有相似特征或者行为的一些事物认为是一个类别,有助于认知世界是一个抽象概念,是人为了能够更好的理解,抽象出来的概念,并不存在.类是具备某些共同特征的实体的集合,它是一种抽象的概念,用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象。类是用于描述现实事物的,它将现实事物进行抽象化,模板化描述。将事物的特点(属性)和行为封装在其中。比如小汽车的图纸,图纸就是小汽车的模版。图纸上画着小汽车的各种特点和功能要求。2.类的定义使用关键字class

2021-07-18 19:15:51 518

原创 算法初探——排序和查找

一、冒泡排序两两比较,找到最大值或者最小值的方式比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。第一次是对n个数进行n-1次比较,进行到最后第n个的一个是最大的;第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的;…持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2021-07-16 15:54:04 99

原创 java基础——数组

1.什么是数组?数组一种比较特殊的容器,因为数组的定义是:数组是一种连续的内存空间的分配1.数组就是一片地址连续且空间大小一致的存储空间(但是每个空间存的还是 其他数据的地址。2.数组存在于堆内存中,但凡在堆中存储的数据都称之为对象。数组提供角标来访问数组当中的元素。3.数组变量存的就是数组在堆内存中首元素的地址。4.数组通过角标来访问元素的具体计算方式是:所要访问数据的地址 = 首元素地址 + 角标 * 数据类型大小。5.数组一旦定义下来,其长

2021-07-16 14:57:16 129

原创 Java入门—函数

一、函数的概述1、什么是函数?(1)为了解决某一特定问题,具有名称的的代码集合。函数也就是现实中的一种行为动作!!!。(2)函数就是定义在类中的具有特定功能的一段独立小程序。特点:定义函数可以将功能代码进行封装便于对该功能进行复用,函数只有被调用才会被执行。2.函数的定义权限修饰符 函数类型修饰符 返回值类型/void 函数名([参数列表]){ 执行语句; return 返回值; }(1)java中函数是属于类的!!必须定义在类中!!!所以说函数是类成员

2021-07-13 14:37:54 83

原创 程序控制流程

一、顺序结构语句与语句之间按照从上到下,从左往有的顺序依次执行,他是最基本的算法结构。二、选择结构1.单分支if (布尔表达式) {语句;}2.双分支当指定条件为true时单分支if语句执行一个操作。而当条件为false时什么也不干。但是,如果你希望在条件为false时也能执行一些动作,那就用这个。 ==if (布尔表达式) { 布尔表达式为真时执行的语句; } else { 布尔表达式为假时执行的语句;}==3.多分支 if () {

2021-07-10 16:52:24 129

原创 java基础——常见运算符

一、算数运算符在使用算术运算时需要注意运算两侧类型:当两侧类型不统一时,运算结果和较大类型保持一致。运算符名字示例+加1+2-减3-1*乘3*2/除6/3%取余3%2int a = 1;int b = 2;int c = a + b; //加法运算c = a * b; //乘法c = a / b; //除法 结果为零c = a % b; //取模,求a/b的余值补充:常(恒)量在程序运行时,不能修改它的值的量在

2021-07-10 15:38:17 85

原创 Java入门--变量与数据类型

一、变量1.什么是变量?在程序运行时,可以发生变化的量。具有名称的内存空间,叫做变量。2.如何定义变量?Java中定义变量有两种方法:(1)初始化数据类型 变量名称=变量值;(2)先声明变量,在赋值//先声明数据类型 变量名称;//再赋值变量名称=变量值3.变量的命名规范(1)标识符只能由有效符号(大小写字母、数字、_、$、中文)组成,不能 使用特殊符号(2)不能以数字开头(3)不能以关键字或者保留字作为标识符(4)变量命名尽量有意义(5)建议使用驼

2021-07-07 13:15:24 391

空空如也

空空如也

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

TA关注的人

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