自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jvm——类加载机制

类生命周期:Created with Raphaël 2.2.0开始1、读取二进制内容2、验证文件格式规范、语义分析、引用验证、字节码验证3、分配内存、变量初始化,比如int设置为0,引用设置为null,布尔类型设置为false4、解析类、接口、字段、方法5、执行静态代码块,为静态变量赋值。6、创建对象,开始使用7、卸载结束其中1到5这几个步骤属于类加载,而其中能够干预的只有第一步,其他四步都...

2020-01-31 11:07:17 161

原创 从一键删除到information_schema

    之前遇到这样一个问题,数据库表建错了,我又不想一个一个删,有点麻烦,所以有没有一键删除的方式,后来在网上找到了这么一句sql:SELECT CONCAT( 'drop table ', table_name, ';' )FROM information_schema.tablesWHERE table_schema='demo';执行结果:drop table test1;...

2020-01-19 10:57:28 994

原创 jvm——模型

1、 总体结构    JVM内存模型,又称为JVM运行时数据区,总体结构如下图:1.1 共享数据区    一个jvm进程中一般会存在多个线程,而共享数据区就是指所有线程都可以访问到的内存空间,图中灰色部分几位共享数据区。1.1.1 堆    我们上学的时候老师说过java内存中分为堆和栈,而老师口中的堆,其实就是这里的堆,java虚拟机规范上描述中说,所有的对象实例包括数组的内存都要在...

2020-01-18 20:18:33 216

原创 jvm——垃圾收集算法

垃圾回收的区域    讲垃圾回收之前,我们首先要明确,垃圾回收的区域是方法区和堆,而方法区中主要是类信息,调用指令,常量等,这些一般是不能回收的,所以垃圾回收的主要区域是堆。垃圾定位(标记)    我们要回收内存中的垃圾,我们首先要定位到这块垃圾,否则我们也不知道收集哪里的内存,jvm中定位内存普遍有引用计数器和可达性分析两种算法,其中引用计数器已经被淘汰,现在主流的都是可达性分析算法。引...

2020-01-17 17:29:01 189

原创 jvm——垃圾收集器

    前一章讲的标记清除,标记整理,复制这些都是算法层面的,而真正进行垃圾回收的都是各种垃圾收集器,他们是对各种垃圾回收算法的具体实现。垃圾收集器按大类可分为串行垃圾收集器和并行垃圾收集器,串行有:Serial和Serial Old。并行有:ParNew、Parallel Scavenge、Parallel Old、CMS,G1。下面我们从发展流程和各自利弊来介绍一下每一种收集器。Serial...

2020-01-15 17:26:17 279

原创 栈结构

    栈是一种特殊表,他被设置了先进后出的规则,出入口有且只有一个,在表的末端,被称之为栈顶(top)。栈只有两种操作:入栈(push)相当于在表末尾插入一个节点、出栈(pop)相当于在表末尾删除一个节点。由于栈是表的一种特例,所以ArrayList和LinkedList都支持栈操作,而且栈操作更加合理,因为他们都是常数级时间消耗。所以栈也可以分为链表实现和数组实现。栈应用1.平衡符号...

2020-01-09 11:16:54 150

原创 表结构

抽象数据类型    抽象数据类型(abstract data type,ADT),表示带有一些操作的对象集合。这是一种数学抽象。对于操作的具体实现,ADT不做任何解释。比如表、集合、图都有各自的ADT,对于图ADT,可以有增加、删除、包含这样的操作,又或者有取并集,取交集,查找这样的操作,至于有哪些操作,具体如何实现则不关心。表ADT    将形如A0,A1,A2,A3,……,AN−1A_0...

2020-01-06 15:55:37 639

原创 算法分析数学基础

相对增长率    我们将两个函数的相对增长速度称为相对增长率,从数学角度上来说其实就是一阶导数,看谁的增长速度更快,比如f(x)=x2f(x)=x^2f(x)=x2的增长速度比g(x)=xg(x)=xg(x)=x要更快。    在算法分析中:我们将f(x)f(x)f(x)的增长率大于或等于g(x)g(x)g(x)的增长率记为g(x)=O(f(x))g(x)=O(f(x))g(x)=O(f(...

2020-01-05 18:05:45 686 1

原创 Maven多logback.xml问题

问题    这两天遇到一个很神奇的问题,手上的一个项目日志打印异常,我在resources目录下放了logback.xml但是在linux上却不生效,如果本地直接用IDEA启动时生效的,然后网上查出一堆关于logback.xml该怎么配之类的,该放在那里答案。如果你是第一次配这种东西,可能是不小心改错了,但这明显不是我要的答案。分析    项目结构是采用的springboot结构,但是由于项...

2020-01-03 17:00:21 3139

原创 多线程系列——多线程基本理解

    我们提到多线程都会想到一个优点和和一个缺点:优点是CPU使用率提高了换句话说也就是速度正常情况下会变快(为什么说正常情况下?因为因为CPU使用率过高的情况下,你线程再多也没有用,甚至会降低),缺点就是线程不安全(线程不安全指一个变量在多个线程中进行读写,造成读写的内容不一致,无法判断当前读写的变量值是否为准确的)。     那使用多线程一定会提高效率嘛,线程不安全的根本原因是什么呢,我们...

2020-01-01 21:02:27 109

原创 多线程系列——线程封闭

    什么是线程封闭?我们来了解一下java内存中的线程模型,java内存中分为共享区域和线程独占区域(当然还有其他的),而所谓线程封闭,即为那些在线程独占区中的内存,在其他线程中是无法获取到这部分内存的,这就叫线程封闭。线程封闭在实际的开发中有很大的作用,因为一旦是线程独占了,我们就不用考虑线程安全的问题,在java中我们如何实现线程封闭呢?ThreadLocal:public cla...

2020-01-01 20:52:44 158

原创 多线程系列——优雅关闭线程

    多线程有三种关闭方式:1、通过while(flag){}的flag来判断(感觉像是废话)。2、通过stop来关闭。3、线程中所有逻辑执行完,自然结束(感觉也像是废话)。通过while循环的开关来关闭以及线程自然结束大家都知道,我们这里说一下stop。    大家都知道现在的jdk版本中stop方法已经不建议使用了还有什么必要说呢,同时大家也可能会问interrupt难道不能关闭线程嘛,我...

2020-01-01 20:48:36 827

原创 多线程系列——线程状态

线程状态    一个java线程拥有以下生命状态:NEW,当线程刚被创建时,其状态就是NEW。RUNNABLE,当线程start()之后则为RUNNABLE状态,RUNNABLE状态包括两种情况,一种是线程可以被CPU调用,处在等待CPU调用时,第二种是线程已经被CPU调用,正在执行时,所以Runable是一个组合状态。BLOCKED,阻塞状态,比如多个线程运行到同步代码块,一...

2020-01-01 20:38:45 203

原创 String[]与反射产生的矛盾

 我们通常使用java反射很简单,直接使用method.invoke(obj,params)即可,但是当我们面对方法的入参为数组时会有问题,会报错:Exception in thread “main” java.lang.IllegalArgumentException: wrong number of arguments,字面意思是参数数量不正确,但是你反复检查也看不出怎么就数据量正确了,其实原...

2020-01-01 20:28:26 260

原创 Jenkins配置Nginx反向代理

    Jenkins打开的默认地址为::8080,我们往往都会使用反向代理实现对8080端口的访问,而对外关闭8080端口,所以我们这里使用了nginx对Jenkins进行了转发,但是存在一个问题,Jenkins的根目录直接是端口,没有一个统一的其实目录,这样就会造成反向代理时部分无法进行反向代理,可能说起来大家无法理解,这里举个例子:    我的服务器所有项目入口都是https,443端口,...

2020-01-01 20:20:35 2145 1

原创 Centos安装Jenkins

    Jenkins是一款由Java语言开发的开源持续集成环境,主要用于项目的持续扩展和发布。由于公司项目在使用所以学习一下,之后也能自己用用。安装方式如下:安装JDK(如果安装了就不用了)yum install -y java-1.8.0-openjdk给yum管理工具下载jenkins并刷新yumwget -O /etc/yum.repos.d/jenkins.repo...

2020-01-01 20:16:05 99

原创 带多个jar包的javac编译

普通情况下的java编译    Javac编译,当我们在没有IDE集成环境的情况下如何编译java脚本,首先我们需要确认系统是否有java编译器,我们在cmd下执行如下命令:java -version返回如下:java version “1.8.0_191”Java™ SE Runtime Environment (build 1.8.0_191-b12)Java HotSpot...

2020-01-01 20:00:45 1479

原创 java服务端操作cookie

cookie是什么    cookie是网络通讯过程中缓存在客户端的浏览器上的一部分内容,由于浏览器访问服务端都是通过http等无状态协议,所以cookie的存在,可以让客户端对一些内容进行留存。java服务端获取cookieCookie[] cookies = request.getCookies();    cookie有:cookie.getName()和cookie.getVal...

2020-01-01 19:41:28 1518

空空如也

空空如也

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

TA关注的人

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