Nginx可以做什么?看完这篇你就懂了

本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得,欢迎留言交流。 Nginx能做什么 ——反向代理 ——负载均衡 ——HTTP服务器(动静分离) ——正向代理 以上就是我了解到的Nginx在 ... »

Effective Java 第三版——49. 检查参数有效性

Tips 《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文 ... »

springboot 读取 yml 配置的几种方式

前言:在springboot 项目中一般默认的配置文件是application.properties,但是实际项目中我们一般会使用application.yml 文件,下面就介绍一下在springboot 中读取 yml 配置的几种方式. yml 文件规则 yml文件的好处,天然的树状结构,一目了然 ... »

浅析JDK中ServiceLoader的源码

前提 紧接着上一篇《通过源码浅析JDK中的资源加载》,ServiceLoader是SPI(Service Provider Interface)中的服务类加载的核心类,也就是,这篇文章先介绍ServiceLoader的使用方式,再分析它的源码。 ServiceLoader的使用 这里先列举一个经典的 ... »

Spring入门学习笔记(3)——事件处理类

Spring中的事件处理 ApplicationContext 是Spring的核心模块,管理着Beans完整的生命周期。当加载Bean时,ApplicationContext会发布特定类型的事件。 eg:当Context启动时ContextStartEvent被发布,当关闭时,ContextSto ... »

Effective Java 第三版——48. 谨慎使用流并行

Tips 《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。 在这里第一时间翻译成中文 ... »

同样是工作3年程序员,为什么别人每月25K你却只有15K?

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月26K你却只有15K? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差),主要和勤奋程度、提升方法有关。 勤奋程度不必多说,全靠自我监督和自制力。在这里我们详细谈谈提升方法,毕竟 ... »

Java开发小技巧(六):使用Apache POI读取Excel

在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel、csv、xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的,比如各种各样的报表文件,往往是一些复杂的表格结构,其中不仅有我们需要的数据,还有一些冗余的、无价值的数据,... ... »

通过源码浅析Java中的资源加载

前提 最近在做一个基础组件项目刚好需要用到JDK中的资源加载,这里说到的资源包括类文件和其他静态资源,刚好需要重新补充一下类加载器和资源加载的相关知识,整理成一篇文章。 理解类的工作原理 这一节主要分析类加载器和双亲委派模型。 什么是类加载器 虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获 ... »

《Effective Java》学习笔记 —— 方法

主要内容:如何处理参数和返回值,如何设计方法签名,如何编写方法文档。 第38条 检查参数的有效性 特别是来自不可信域的参数。 第39条 必要时进行保护性拷贝 反例: 正例: 第40条 谨慎设计方法签名 * 方法的名称应当始终遵循标准的命名习惯。 * 不要过于追求提供便利的方法。 * 避免过长的参数列 ... »

冒泡排序,排序算法优化

public static void main(String[] args) { // 初始化一个数组 int[] arr = {12, 34, 22, 4, 5, 1, 0, 88, 3}; // 定义数组长度 int arrLength = arr.length - 1; // 外层开始遍历 f ... »

红黑树分析 清晰直白

概念 红黑树(Red-Block Tree)是一种近似平衡的二叉树,因此拥有较高的查询效率,但正因为是一棵近平衡树,因此在插入或删除节点时,会结构调整(变色,左旋,右旋),使其接近平衡,从而降低效率.本文以TreeMap为例说明,TreeMap用红黑树构建,所以查询性能较高,时间复杂度为O(lgn) ... »

Java基础教程(6)--数组

数组是一个可以存放固定数量的同一类型的值的容器对象。创建数组时,必须确定数组的长度。在《回顾HelloWorld》一文中,我们已经看到了一个使用数组的例子。本节将会更加详细地讨论数组。 ... »

彻底理解JVM常考题之分级引用模型

本文通过探析Java中的引用模型,分析比较强引用、软引用、弱引用、虚引用的概念及使用场景,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目提供参考。 Java的引用 对于Java中的垃圾回收机制来说,对象是否被应该回收的取决于该对象是否被引用。因此,引用也是JVM进行内存管理的一个重要概念 ... »

Maven基础入门与核心知识

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 ... »

Java开发小技巧(五):HttpClient工具类

大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具有访问HTTP协议基本功能的高效工具类,为后续开发使用提供方便。 ... »

通用数据权限的思考与设计

1 数据权限概述 1.1 什么是数据权限? 数据权限是指对系统用户进行数据资源可见性的控制,通俗的解释就是:`符合某条件的用户只能看到该条件下对应的数据资源`。那么最简单的数据权限大概就是:用户只能看到自己的数据。而在正式的系统环境中,会有很多更为复杂的数据权限需求场景,如: 领导需要看到所有下属员 ... »