自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 超详细windows安装mysql5.7和8.0

下载mysql二选一8.0版本https://dev.mysql.com/downloads/windows/installer/8.0.html5.7版本MySQL :: Download MySQL Installer (Archived Versions)具体安装步骤 Server Machine(服务器) :该选项代表服务器,MySQL服务器可以同其他服务器应用程序一起运行,例如Web服务器等。MySQL服务器配置成适当比例的...

2022-03-28 10:15:02 2202

原创 对象的实例化内存布局和访问定位

1对象的实例化2对象的内存布局2.1对象头信息3对象的访问定位

2022-03-10 14:48:31 165 1

原创 jvm逃逸分析

如果当前的对象被引用,就会发生逃逸,如果当前new 出来的对象,在方法结束了,他就销毁了,就会被存在栈里,这样能避免GC垃圾回收的次数,说白点就是如果当前栈使用,当前栈消失,就会存在栈上,以上都是基于open jdk taobaoVM虚拟机。优化点一、栈上分配。将堆分配转化为栈分配。如果一个对象在子程序中被分配,要使指向该对象的指针永远不会逃逸,对象可能是栈分配的候选,而不是堆分配。二、同步省略。如果一个对象被发现只能从一个线程被访问到,那么对于这个对象的操作可以不考虑同步。三、标量替换。有

2022-03-10 14:44:57 512

原创 分代收集及对象分配和收集

新生代:一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速 注:新生代分为伊甸园区,S0 和S1,补充:伊甸园区还有一点线程私有的缓冲区 老年代:另外一类对象的生命周期却非常长,在某些极端的情况下还能够与JVM的生命周期 保持一致。 对象分配和收集1对象分配1.new的对象先放伊甸园区。此区有大小限制。2.当伊甸园的空间填满时,程序又需要创建对象,JVM的垃圾回收器将对伊甸园区进行垃圾回收(Minor GC),将伊甸园区中的不再被其他对象所引用的对象进行销毁。..

2022-03-10 14:39:43 227

原创 理解本地方法

简单地讲,一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern “C”告知C++编译器去调用一个c的函数。本地方法栈 Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大

2022-03-03 22:28:12 321

原创 理解虚拟机栈

由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架 构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集, 编译器容易实现,缺点是性能下降,实现同样 的功能需要更多的指令。 什么是栈?存放的是栈帧,对应着一次次方法的调用。存放着基本数据类型和引用类型的地址。作用主管Java程序的运行,它保存方法的局部变量 部分结果,并参与方法的 调用和返回。生命周期和线程共生栈桢的内部结构 局部变量表(Local Variables) 操作..

2022-03-03 22:27:22 403 1

原创 程序计数器(pc寄存器)

作用PC奇存器用来存储指 向下一条指令的地址, 也即将要执行的指令 代码。由执行引擎读 取下一条指令。 它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存 储区域。 在JM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命 周期与线程的生命周期保持一致。 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程 序计数器会存储当前线程正在执行的Jaa方法的IVM指令地址:或者, 如果是在执行native方法,则是未指定值(undefned)。 使用

2022-03-03 22:26:17 444

原创 双亲委派机制

Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该 类时才会将它的class文件加载到内存生成class对象。而且加载某个类的 class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理, 它是一种任务委派模式。工作原理1)如果一个类加载器收到了类加载 请求,它并不会自己先去加载,而是 把这个请求委托给父类的加载器去执 行;2)如果父类加载器还存在其父类加 载器,则进一步向上委托,依次递归 请求最终将到达顶层的启动类加载器3)如果父类加载器可以完成类加

2022-03-02 19:55:54 50

原创 类的加载器

类的加载器启动类加载器(核心类库都是由启动类加载器加载) 扩展类加载器(加载jre/lib/ext文件夹下的类) 应用程序类加载器(我们写的基本都是由它加载) 自定义类加载器

2022-03-02 19:55:07 52

原创 类的加载过程级解释

1.类的加载过程1. 加载阶段来源:如本地文件直接加载,通过网络获取,从zip压缩包,运算时计算生成等。2.链接阶段验证(Verify)目的在于确保Class文件的字节流中包含信息符合当前虚拟机要求,保证被加载类的正确性,不会危害虚拟机自身安全。 主要包括四种验证,文件格式验证,元数据验证,字节码验证,符号引用验证。准备(Prepare)为类变量分配内存并且设置该类变量的默认初始值,即零值。 这里不包含用final修饰的static,因为final在编译的时候就会分配了

2022-03-02 19:54:15 77

原创 死锁及排查

有AB两个对象,下面有methode1和method2方法,A线程拿着A对象的锁,此时B线程拿着B对象的锁,method1方法里面要去拿取B对象的锁,method2方法里面要拿取A对象的锁,都去尝试拿去对方的锁,但是又不释放,就导致了死锁。产生死锁的四大要素互斥条件:一个资源每次只能被一个线程使用。 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。测

2022-02-27 13:33:11 166

原创 关于新生代内存伊甸园区和幸存者区比例问题

先把JVM内存初始分配为600M,最大也为600M,一下测试都在此基础运行,命令如下,测试复制添加即可-Xms600m -Xmx600m我们直接运行程序,用java/bin/javaVisual默认工具查看内存使用情况,如果第一次使用需要添加GC插件,不然没这个选项参数中添加下面-XX:SurvivorRatio=8再看下这时才是真正的8:1:1相关代码public static void main(String[] args) throws Excep

2022-02-23 20:29:34 1935

原创 类的加载器种类

启动类加载器(核心类库都是由启动类加载器加载) 扩展类加载器(加载jre/lib/ext文件夹下的类) 应用程序类加载器(我们写的基本都是由它加载) 自定义类加载器

2022-02-21 22:52:21 64

原创 程序计数器(pc寄存器)

作用PC奇存器用来存储指 向下一条指令的地址, 也即将要执行的指令 代码。由执行引擎读 取下一条指令。它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存 储区域。 在JM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命 周期与线程的生命周期保持一致。 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程 序计数器会存储当前线程正在执行的Jaa方法的IVM指令地址:或者, 如果是在执行native方法,则是未指定值(undefned)。使用PC寄存器存储字节码指令

2022-02-21 22:51:47 219

原创 双亲委派机制

概述Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该 类时才会将它的class文件加载到内存生成class对象。而且加载某个类的 class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理, 它是一种任务委派模式。工作原理1)如果一个类加载器收到了类加载 请求,它并不会自己先去加载,而是 把这个请求委托给父类的加载器去执 行;2)如果父类加载器还存在其父类加 载器,则进一步向上委托,依次递归 请求最终将到达顶层的启动类加载器3)如果父类加载器可以

2022-02-21 22:50:30 90

原创 关于intern()方法的理解

先抛出问题和答案:public static void main(String[] args) { String s1 = "word"; System.out.println(s1.intern() == s1);//true String s2 = new String("xx"); System.out.println(s2.intern() == s2);//false String s3 = new Stri

2022-02-21 21:29:10 557

原创 布隆过滤器

测试代码package com.bloomFilter;import com.google.common.hash.Funnels;/** * @Author: xs * @describe: * @date 2022/2/13 17:57 */public class BloomFilterTest { /**gl * @describe: 预期大小 */ private static int SIZE = 1000000; /**

2022-02-13 18:56:58 205

原创 手写HashMap(数组+链表形式)详解

目录1.定义MyMap接口(可以理解为HashMap实现的Map接口)2 实现接口及参数解释3,自定义HashCode4,重写put方法5,重写get方法 6,重写remove方法1.定义MyMap接口(可以理解为HashMap实现的Map接口)public interface MyMap<K, V> { /** * 定义put方法 * * @param k * @param v * @retur..

2022-01-17 15:15:29 688 1

原创 用链表实现栈

class MyStack { private final static MyStack head = new MyStack(); int val; MyStack next; public MyStack() { } private MyStack(int val) { this.val = val; } //入栈 public boolean push(int val) { if (nex.

2022-01-16 18:54:33 79

原创 用链表实现队列

具体代码实现:class Node { private final static Node head = new Node(); //定义一个头节点 Node next; //下一个结点 int val; //值 public Node() { } private Node(int val) { .

2022-01-16 17:46:04 330

原创 类的初始化顺序

public class InitializeDemo { private static int k = 1; private static InitializeDemo t1 = new InitializeDemo("t1"); private static InitializeDemo t2 = new InitializeDemo("t2"); private static int i = print("i"); private static int n =.

2022-01-15 20:35:58 62

原创 128陷阱

先看demo,返回结果已经写在输出的语句后面了;public static void main(String[] args) { Integer num1 = 128; Integer num2 = 128; System.out.println(num1 == num2); //false Integer num3 = 127; Integer num4 = 127; System.out.printl

2022-01-15 20:06:34 58

原创 部署后端Spring Boot 项目

打包两种形式 一种是jar 一种是war(待解释区别)jar形式:pom文件<packaging>jar</packaging>mvn package部署到服务器上在后台方式运行nohup java -jar history-0.1.jar & 补充:教程里面说要更改conf文件下的server.xml文件,加上下面这行,但是试了之后有问题,还是访问的tomcat Root目录 但是我把这行主调,他就能访问项目文件了,具体有待考证。150多行 &.

2021-12-10 15:35:02 336

原创 安装Redis

yml远程下载Redis安装包wget http://download.redis.io/releases/redis-5.0.7.tar.gz解压Redis文件tar -zvxf redis-5.0.7.tar.gz移动文件并改名mv /root/redis-5.0.7 /usr/local/rediscd /usr/local/redis编译makemake PREFIX=/usr/local/redis install启动Redis前台方式:./redis-server.

2021-12-09 15:54:37 53

原创 部署前端Vue项目

前端项目打包npm run build解压到linux服务器unzip listcd /usr/local/nginx/confvim nginx.conf修改文件第一行 user root 打开server 里面第一个location root 路径改为list路径 如/root/list;启动cd ../sbin ./niginx目录加启动cd /usr/local/nginx/sbin/ & ./nginx...

2021-12-09 15:51:58 2241

原创 Linux nginx安装

先下载 nginx-1.17.10.tar.gz 安装包放入/root下百度网盘链接:https://pan.baidu.com/s/1iC6L7nFVG5GUvHVkPo2OIA 提取码:mj38安装包并解压cd /usr/local/mkdir nginxcd nginxtar zxvf /root/nginx-1.17.10.tar.gz -C ./安装依赖yum -y install pcre-develyum -y install openssl openssl-deve.

2021-12-09 15:51:11 2095

原创 Linux安装Redis

yml远程下载Redis安装包wget http://download.redis.io/releases/redis-5.0.7.tar.gz解压Redis文件tar -zvxf redis-5.0.7.tar.gz移动文件并改名mv /root/redis-5.0.7 /usr/local/rediscd /usr/local/redis编译makemake PREFIX=/usr/local/redis install启动Redis前台方式:./redis-server.

2021-12-09 15:42:09 68

原创 安装Mysql

//删除已经存在的mysqlrpm -qa|grep mysqlrpm -e mysql mysql-libsyum -y remove mysql-server mysql mysql-libs配置源rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpmyum repolist enabled | grep "mysql.*-community.*"安装mysqlyum install .

2021-12-08 10:51:55 130

原创 安装tomcat

cd /usr/local/mkdir tomcatcd进去tar -zxvf /root/apache-tomcat-8.5.73.tar.gz -C ./进入tomcat文件内cd bin/./startup.ship加端口访问看试试配置快捷操作和开机启动cd /etc/rc.d/init.d/touch tomcatchmod +x tomcatvim tomcat内容如下:#!/bin/sh# chkconfig: 345 99 10# descriptio.

2021-12-08 10:51:24 71

原创 安装npm

cd /usr/localmkdir nodecd nodewget https://npm.taobao.org/mirrors/node/v4.4.7/node-v4.4.7-linux-x64.tar.gztar -zxvf node-v4.4.7-linux-x64.tar.gzrm -rf node-v4.4.7-linux-x64.tar.gzln -s /usr/local/node/node-v4.4.7-linux-x64/bin/npm /usr/local/bin/npm.

2021-12-08 10:50:46 281

原创 Docker安装

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install docker-ce开机自启动sudo systemctl enable docker sudo systemctl start dock.

2021-12-07 19:35:17 517

原创 Linxu安装Git

yum -y install git

2021-12-07 19:34:47 47

原创 Linux安装java

前提/root文件夹下有jdk压缩包,如果没有可以去官网下载。附官网:https://www.oracle.com/java/technologies/downloads/archive/选择适合你的jdk,并把下面的相应名字改成你的。正文:创建并解压cd /usr/local/mkdir javacd javatar -zxvf /root/jdk-8u172-linux-x64.tar.gz -C ./配置JDK环境变量vim /etc/profile文末加入JA...

2021-12-07 19:34:21 79

原创 日期类方法

日期类第一代日期类Date d1=new Date(); //获取当前系统时间Date d2=new Date(9234567); //通过指定毫秒数得到时间 System.out.println(d1.getTime0); //获取某个时间对应的毫秒数SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");String format=sdf.format(d1); //format:将日期转.

2021-12-06 13:23:56 65

原创 HashMap的七种遍历方式

第一组: 先取出 所有的Key , 通过Key 取出对应的Value Set keySet = map.keySet(); //(1) 增强for System.out.println("-----第一种方式-------"); for (Object key : keySet) { System.out.println(key + "-" + map.get(key)); } //(2.

2021-12-06 13:22:44 68

原创 Arrays类

1)Arrays.toString(数组)直接遍历数组输出 2)Arrays.sort(数组)冒泡排序(影响实参,可以通过传入接口实现定制排序)3)Arrays.bingarySearch二分查找必须是有序数组,如果不存在,应该在的位置+1;return -(low+1);4)Arrays.copyOf(arr,arr.length)数组拷贝到一个新的数组里,如果长度多了,放入null5)Arrays.fill(arr,常量)用常量填充进(替换)arr数组 6)Arrays.equals(arr.

2021-12-06 13:16:10 36

原创 String类的常见方法

1)substring 截取指定范围的子串 2)trim //去前后空格 3)ength获取字符的个数,字符串的长度4)equals 区分大小写,判断内容是否相等 5)charAt:获取某索引处的字符,注意不能使用Str[index]这种方式6)equalslgnoreCase 忽略大小写的判断内容是否相等7)indexOf //获取字符在字符串中第1次出现的素引,素引从0开始,如果找不到,返回-18)lastindexOf //获取字符在字符串中最后1次出现的索引,索引从0开始.

2021-12-05 14:19:44 64

原创 拦截器使用及配置

1--依赖<!--拦截器依赖--><dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.4.0</version></dependency>2--配置@Configurationpublic class WebMvcConfig impl

2021-12-05 14:15:12 594

原创 Log4j2使用及配置

1--依赖<!--使用log4j2日志依赖前提,移除框架中的logback依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> &lt

2021-12-05 14:14:03 208

原创 全局异常处理

1--依赖<!--全局异常处理--><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.41</version></dependency>2--配置@Slf4j@RestControllerAdvicepublic class

2021-12-04 12:14:23 93

空空如也

空空如也

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

TA关注的人

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