(记录学习)Java基础学习

鉴于目前想学习Java但是头脑的可系统的来看一下,目前作于本人记录学习Java的一个状态。 学过的知识太杂以至于不成体系,目前,回顾Java基础,之前做过记录,但是文件搬来搬去容易丢失,特此记录。 记录不分技术高低,有问题欢迎指正,虚心求教,共勉。 今天写一下Java环境变量配置以及关于Java的一 ... »

MethodHandleVS反射

Method Handle与反射 如无特殊说明,本文所有代码均基于JDK1.8.0_221 Method Handle入门 反射我们都知道,为我们提供了运行时对类的成员方法访问的手段,极大地提高了Java语言的动态性,但是反射往往意味着效率低下,但是在JDK7以前为了利用反射带来的动态性,我们又不得 ... »

java集合初探(一):HashMap

一、概述 HashMap可能是我们最经常用的Map接口的实现了。话不多说,我们先看看HashMap类的注释: 基于哈希表的Map接口实现。 这个实现提供了所有可选的映射操作,并允许空值和空键。(HashMap类与Hashtable大致相当,只是它是不同步的,并且允许为null) 这个类对映射的顺序不 ... »

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 ... »