Linux系统部署WEB项目(2020最新最详细)

2020最新Linux系统发行版ContOS7演示部署WEB项目 为防止操作权限不足,建议切换root用户,当然如果你对Linux命令熟悉,能够自主完成权限更新操作,可以不考虑此推荐。 更多命令学习推荐: 本次项目开发环境: MySQL5.7、JDK1.8、Maven3.6、Tomcat9.x、SS ... »

1T数据快速排序!十种经典排序算法总结

1 冒泡排序 每次循环都比较前后两个元素的大小,如果前者大于后者,则将两者进行交换。这样做会将每次循环中最大的元素替换到末尾,逐渐形成有序集合。将每次循环中的最大元素逐渐由队首转移到队尾的过程形似“冒泡”过程,故因此得名。 一个优化冒泡排序的方法就是如果在一次循环的过程中没有发生交换,则可以立即退出 ... »

Spring IOC 容器预启动流程源码探析

Spring IOC 容器预启动流程源码探析 在应用程序中,一般是通过创建ClassPathXmlApplicationContext或AnnotationConfigApplicationContext这两个最底层子类来启动Spring IOC容器: ClassPathXmlApplication ... »

从红黑树的本质出发,彻底理解红黑树!

前言 早上好,我是彤哥。 上一节,我们一起从二叉树、二叉查找树、平衡树、AVL树、2-3树、2-3-4树、B树,一路讲到红黑树,最后得出红黑树的本质:红黑树就是2-3-4树,请看下图: 我们知道2-3-4的插入、删除、查找元素的原理是相当简单的,那么,我们是不是可以利用2-3-4树来记忆红黑树呢? ... »

Spring的BeanFactory是什么?

什么是BeanFactory? 提到Spring,总是让人第一时间想起IOC容器,而IOC容器的顶层核心接口就是我们的BeanFactory,如果能够理解BeanFactory的体系结构想必能让我们对Spring整体脉络有更加清晰的认知,所以,本文的探究方向主要为以下几点: BeanFactory的 ... »

Spring的BeanFactory是什么?

什么是BeanFactory? 提到Spring,总是让人第一时间想起IOC容器,而IOC容器的顶层核心接口就是我们的BeanFactory,如果能够理解BeanFactory的体系结构想必能让我们对Spring整体脉络有更加清晰的认知,所以,本文的探究方向主要为以下几点: BeanFactory的 ... »

Java应用服务器之tomcat部署

总结一点,部署tomcat环境,首先要安装jdk,因为tomcat本身就是java语言编写,我们要在服务器上安装好java程序运行环境和标准类库等组件,tomcat才可以服务器上正常的运行起来;其实从上面的演示我们大概也能知道tomcat就是为Java jsp程序提供一个运行环境,后续的jsp代码... ... »

多线程高并发编程(11) -- ConcurrentLinkedQueue源码分析

一.背景 要实现对队列的安全访问,有两种方式:阻塞算法和非阻塞算法。阻塞算法的实现是使用一把锁(出队和入队同一把锁ArrayBlockingQueue)和两把锁(出队和入队各一把锁LinkedBlockingQueue)来实现;非阻塞算法使用自旋+CAS实现。 今天来探究下使用非阻塞算法来实现的线程 ... »

Java 科学计算之 BigDecimal 全集

一、BigDecimal的产生背景 首先我们先来看如下代码示例: @Test public void countDemo() { logger.info("result:{}", 0.06 + 0.01); logger.info("result:{}", 1.0 - 0.42); logger.i ... »

多线程高并发编程(10) -- ConcurrentHashMap源码分析

一.背景 前文讲了HashMap的源码分析,从中可以看到下面的问题: HashMap的put/remove方法不是线程安全的,如果在多线程并发环境下,使用synchronized进行加锁,会导致效率低下; 在遍历迭代获取时进行修改(put/remove)操作,会导致发生并发修改异常(Concurre ... »

程序员实用JDK小工具归纳,工作用得到

在JDK的安用装目录bin下,有一些有非常实用的小工具,可用于分析JVM初始配置、内存溢出异常等问题,我们接下来将对些常用的工具进行一些说明。 JDK小工具简介 在JDK的bin目录下面有一些小工具,如javac,jar,jstack,jstat等,在日常编译运行过程中有着不少的“额外”功能,那么它 ... »

配置centos7 java环境

一、环境 centos7 jdk 8u231 linux x64.tar.gz 二、安装jdk 1. 使用ftp或者 WinScp软件把下载在win10电脑上的jdk安装包上传到linux 2. 解压到/opt/module/java目录下 ~~~ tar zxvf jdk 8u231 linux ... »

Oracle JDK究竟从哪个版本开始商用收费?

经常被问到Oracle JDK是不是要钱了?收费了?从哪个版本开始商用收费? 木有错,Oracle JDK从2019年4月16号开始商用商用商用收费了!有图有真像: 2019年4月16日当天,Oracle发布了Oracle JDK的8u211和8u212两个版本(属于JDK8系列),并从这两个版本开 ... »

ArrayList源码分析--jdk1.8

ArrayList概述 1. ArrayList是可以动态扩容和动态删除冗余容量的索引序列,基于数组实现的集合。 2. ArrayList支持随机访问、克隆、序列化,元素有序且可以重复。 3. ArrayList初始默认长度10,超出扩容1.5倍,使用Object[]存储各种数据类型。 ArrayL ... »

LinkedList源码分析:JDK源码分析系列

如果本文中有不正确的地方请指出由于没有留言可以在公众号添加我的好友共同讨论。 1.介绍 LinkedList 是线程不安全的,允许元素为null的双向链表。 2.继承结构 我们来看一下LinkedList的继承结构图: 代码实现: Cloneable实现克隆 Serializable序列化 List ... »