自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

流浪Gypsy的博客

我想当阿姆斯特朗,我想登上月亮。

  • 博客(20)
  • 收藏
  • 关注

原创 JVM常用调优参数

JVM 常用参数:XX:RestrictContended 开启独占缓存行-Xmixed 默认为混合模式。开始是解释执行,过程中JIT对热点代码进行检测和编译-Xint 纯解释执行模式(int为intepreter缩写),启动速度快,执行稍慢-Xcomp 纯编译模式(comp为compiler缩写),启动速度慢,执行很快-XX:CompileThreshold=10000 检测热点代码-XX:+PrintCommandLineFlags -version 命令行查看虚拟机配置-XX:+UseC

2022-01-14 23:32:46 205 1

原创 并发的原子性 可见性 有序性

一、原子性(Atomicity)定义:即一个操作或者多个操作,要么全部执行并且不被打断,要么就都不执行。关键字:synchronized比如:从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。这2个操作必须要具备原子性才能保证不出现一些意外的问题。综上可知,对变量的写操作不依赖于当前值才是原子级别的,在多线程环境中才可以不用考虑多并发问题。比如:n=n+1、n++ 就不行。n=n+1才是原子级别的,实在没把握就使用synchronized关键字来

2022-01-11 23:38:06 367

原创 Java内存屏障

java内存屏障1.1 什么是内存屏障(Memory Barrier)?内存屏障(memory barrier)是一个CPU指令。基本上,它是这样一条指令: a) 确保一些特定操作执行的顺序; b) 影响一些数据的可见性(可能是某些指令执行后的结果)。编译器和CPU可以在保证输出结果一样的情况下对指令重排序,使性能得到优化。插入一个内存屏障,相当于告诉CPU和编译器先于这个命令的必须先执行,后于这个命令的必须后执行。内存屏障另一个作用是强制更新一次不同CPU的缓存。例如,一个写屏障会把这个屏障前写入的数

2022-01-11 23:20:53 3563 2

原创 classfile解析

class结构Class文件是一组以8个字节为基础单位的二进制字节流。各项数据会严格的按照顺序紧凑的排列在class文件中中间没有分隔符,使得class文件存储的内容几乎全部都是程序运行的。Java虚拟机规范规定的,class文件格式采用的类似C语言的结构体的伪结构来存储的,这种结构只有两种数据类型。 无符号数 和 表无符号数: 属于基本数据类型 主要用于描述数字 索引符号 数量值 或者按照UTF-8编码构成的字符串值 数据类型 U1 U2 U4 U8也只是逻辑上的区分。 u1 —表示一个字节

2022-01-09 21:46:40 180

原创 2021-09-14 spring框架篇IOC之二

Spring中的IOC(二)1.引入外部的properties文件pom.xml文件配置:<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.18</version> </dependency>

2021-09-14 21:06:39 59

原创 spring

1、Spring是什么?特点是什么?优势是什么?Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。特点:(1)方便解耦,简化开发:通过Spring提供的IOC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。(2)AO

2021-09-14 20:39:29 73

原创 强引用和弱引用

强引用和弱引用强引用:如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。例子:public class test { public static void main(String[] args) { List<String> list = new ArrayList<>();

2021-08-16 21:06:06 97

原创 2021-08-16 值传递和引用传递

值传递和引用传递值传递:就是实参把它的实际值传递给形参,而传入的参数存放在栈中,这样在函数中如果对参数进行修改,将不会影响到实际参数。举例:public class test { static String Gypsy; public String change(String Gypsy){ Gypsy = "浪漫"; return Gypsy; } public static void main(String[] args) {

2021-08-16 20:07:12 64

原创 2021-08-15 深拷贝和浅拷贝

1. 深拷贝和浅拷贝在java中,如果某个类需要调用Object的clone完成对象的拷贝,必须让该类实现。浅拷贝:object类,提供的clone方法就是浅拷贝(对象)。举例:public class user implements Cloneable{ String username; public String getUsername() { return username; } public void setUsername(String

2021-08-16 09:49:14 85

原创 2021-08-09 hashmap 底层原理

hashmap底层原理

2021-08-11 13:26:35 99

原创 Java 常见的系统类

1、日期java.util 包提供了 Date 类来封装当前的日期和时间。1.1 Date的使用:获取当日时间:public class date { public static void main(String[] args) { Date date = new Date(); System.out.println(date.toString()); }}运行结果:Fri Jul 30 09:45:03 CST 20211.2 Calendar日历类Calendar类是

2021-07-30 19:46:59 312

原创 java异常处理

什么是异常异常就是指的程序在运行过程中,发生的不正常(用户操作不当、服务终止、程序BUG……)的程序无法正常运作的情况。异常处理的目的:为了提高程序的稳定性和健壮性,让程序正常的运作下去java如何处理异常:1、抓捕异常(推荐):尝试着抓到对应的异常,在针对具体问题,具体处理抓捕异常:try { // 代码块 } catch (XxxException e) { // 处理异常 } catch (XxxException e) { // 处理异常 } final.

2021-07-25 20:43:46 140

原创 java 内部类、static关键字、final关键字

1. 内部类1.1如何定义内部类内部类可以直接访问包裹着它的外部类任何属性和方法(包括私有的)。一般而言,定义内部类,注意的目的,肯定是在包裹着它的外部类中使用它。在Java中内部类主要分为成员内部类、局部内部类、匿名内部类、静态内部类。成员内部类:成员内部类是可以无限制的访问外围类的所有成员属性和方法,包括private,但是外围类要访问内部类的成员属性和方法则需要通过内部类实例来访问。注意:成员内部类中不能存在任何static的变量和方法。成员内部类是依附于外围类的,所以只

2021-07-25 20:18:31 93

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

面向对象——三大特征1. 封装封装是把客观事物抽象成类,并且把自己的属性和方法让可信的类或对象操作,对不可性的隐藏。封装的优点良好的封装能够减少耦合。类内部的结构可以自由修改。可以对成员变量进行更精确的控制。隐藏信息,实现细节。实现java封装:1.修改属性的可见性来限制对属性的访问(一般限制为private)。例如:public class Person { private String name; private int age;}2.对每个值属

2021-07-22 16:56:28 88

原创 2021-07-21面向对象入门——类与对象、构造函数

类与对象1. 类类:一个类型,把有相似特征或者行为的一些事物认为是一个类别,有助于认知世界;是一个抽象概念,是人为了能够更好的理解,抽象出来的概念,并不存在!!!一个类可以包含以下类型变量:局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。类变量:类变量也声明在类中,方法体之外,但

2021-07-21 11:17:17 177

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

1.排序1.1冒泡排序原理:从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,则交换两个数据的位置。依此类推,完成第一轮排序。第一轮排序结束后,最大的元素被移到了最右面。依照上面的过程进行第二轮排序,将第二大的排在倒数第二的位置。重复上述过程,没排完一轮,比较次数就减少一次。举例:public static void main(String[] args) { Scanner inp = new Scanner(System.in); System.out.pri

2021-07-16 18:20:32 81

原创 java数组的学习

java数组1.什么是数组?数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。2.数组的使用声明并开辟数组: - 数据类型[] 数组名称 = new 数据类型[长度]; - 数据类型 数组名称[] = new 数据类型[长度];建议:建议使用第一种,因为第二种在C语言中常用,为了区别java与C,所以一般使用第一种。

2021-07-16 16:55:04 63

原创 2021-07-13Java函数总结

Java函数总结1.什么是函数?2.函数的调用3.函数的分类4. 变量5.函数在内存中的调用本质6.函数的重载7.函数的递归1.什么是函数?函数是定义在类中的一段独立的代码块,用来实现某个功能。Java中,函数又被称为方法。函数的主要作用是提高代码的复用性。函数都是在栈内存中运行。修饰符 返回值类型 函数名(){函数体;}修饰符:可以是访问修饰符,也可以说是函数修饰符(abstract、final、static、synchronized),还可以是两者的组合。返回值类型:用

2021-07-13 17:56:51 72

原创 2021-07-10程序控制流程

这里写自定义目录标题一、顺序二、选择三、循环四、break、continue关键字一、顺序语句与语句之间按照从上到下,从左往右的顺序依次执行。二、选择1.单分支if(布尔表达式){ //如果布尔表达式为true将执行的语句}2.双分支if(布尔表达式){ //如果布尔表达式的值为true}else{ //如果布尔表达式的值为false}3.多分支if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码}else if(布尔表达式 2){

2021-07-10 19:47:19 69

原创 2021-07-10java常见的运算符

一、算术运算符运算符 名字 例子 + 加 1+1 =2 - 减 2-1 =1 * 乘 2*2 =4 / 除 6/3 =2 % 取余 7%3 =1 二、 比较运算符运算符 名字 例子 < 小于 1<3 > 大于 3>1 <= 小于等于 1<=3 >= 大于等于 3>=3 =.

2021-07-10 19:10:34 77

空空如也

空空如也

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

TA关注的人

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