• Java 9种排序算法详解和示例汇总

    冒泡排序、选择排序、直接插入排序、二分法排序、希尔排序、快速排序、堆排序、归并排序、基数排序,共9中排序算法详解和代码示例。 示例中全部采用从小到大排序,编码方式为本人理解的思路,算法思想也是自己理解的口语表达方式,若想查看更准确的算法思想

    18-06-02
  • Java 图的最小生成树 — prim算法和kruskal算法

    一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的权值和边最小 一、最小生成树的应用 生成树和最小生成树有许多重要的应用。 例如:要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之

    18-05-21
  • Java 设计模式(7) —— 适配器模式

    一、适配器模式 将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容 二、示例 1.显示生活中适配器的例子 生活中的适配器:充电器转接头,假如买了一个港版或者美版的手机,但是自带的充电器在国内是不能用的,因此需要在自带的充电头上再接一个

    18-05-18
  • Java 设计模式(6) —— 命令模式

    一、命令模式 将请求、命令、动作等封装成对象,这样可以让项目使用这些对象来参数化其他对象。使得命令的请求者和执行者解耦 二、示例 家电自动化遥控器API项目:智能遥控器上有多个开关按钮,可是实现不同家电的控制,也可对新家电进行接入拓展 如果用传统

    18-05-18
  • Java 设计模式(5) —— 工厂模式

    一、工厂模式 简单工厂模式 工厂方法模式 抽象工厂模式 二、示例 披萨项目:有一家披萨店,有很多种口味的披萨,但是这些披萨除了准备工作不同,后续的烘焙,切割,打包等方法都是相同的 用传统的面向对象模式,则在用户订单类中根据不同的订单要求,生产出

    18-05-18
  • Java 设计模式(4) —— 单例模式

    一、单例模式 确保一个类最多只有一个实例,并提供一个全局访问点 二、为什么会需要单例 有些对象我们只需要一个:线程池、缓存、硬件设备等 如果多个实例会有造成冲突、结果的不一致性等问题 是否可以用静态变量方式来实现? 或者程序员之间协商个全局变量?

    18-05-18
  • Java 设计模式(3) —— 装饰者模式

    一、装饰者模式 将原始对象进行装饰封装,动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性 二、示例 咖啡馆订单项目,咖啡馆的咖啡种类有多种,可以添加的配料也有多种,不同的咖啡可以与配料进行任意搭配组合下单。要得到组合出的饮料价

    18-05-18
  • Java 设计模式(2) —— 观察者模式

    一、观察者模式 对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化 二、示例 Internet气象站项目,气象总部负责提供数据,给第三方的显示平台更新气象数据 1.传统模式 从面向对象的角度设计,在气象

    18-05-18
  • Java 设计模式(1) —— 策略模式

    设计模式是人们在面对同类型软件工程设计问题所总结出的一些有用的经验。模式不是代码,而是某类问题的通用设计解决方案。 设计模式的本质目的是使软件工程在维护性、扩展性、变化性、复杂度方面成O(N) OO是原则,设计模式是具体的方法、工具 一、策略模式

    18-05-18
  • Java学习整理系列之ThreadLocal的理解

    ThreadLocal概念 ThreadLocal是解决线程安全问题一个很好的思路,它通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。在很多情况下,ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单,更方便,且结果程序拥有更高的并

    18-05-01
  • 金三银四跳槽季,阿里面试刚回来的总结——干货!

    前言: 金三已经过去,现在是银四,据我了解,好多人都会在三月份选择跳槽,为什么大家都会在三月份选择离职跳槽呢?那当然是新年刚刚过去,大家也许是觉得老公司待遇不怎么样?薪资不够高,想换个新环境等等原因,所以,三月份就变成了招聘与跳槽的旺季,那

    18-04-17
  • Java 内存模型 JMM 浅析

    JMM简介 Java Memory Model简称JMM, 是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无关具体平台的统一的保证。(可能在术语上与Java运行时内存分布有歧义,后者指堆、方法区、线程栈等内存区域)。 并发编程有多种

    18-02-07
  • 送书拉! 08年新开始|福利近在咫尺

    前言 相比C++代码规范业界已经达成共识,Java代码规范业界比较混乱,这次阿里发布的Java代码规范给业界带来一个标准,促使整体行业代码规范水平得到提高,最终能够帮助企业和开发者提升代码质量和降低代码故障率。 送书如期而至 新的一年新风尚,新的阳光新

    18-01-02
  • Java8-Lambda编程[6] 总结与放弃

    并发 昔日未来之星 Future接口 要用到并发,无非就是多开些线程,Thread、Runable之类的俗套咱就不多说了,来简单讲讲Future接口。,没有接触过并发编程的同学可以先自行了解一下相关知识,以免对后面的内容感到生涩难懂。Future顾名思义,就是未来要产生的

    17-12-28
  • Java8-Lambda编程[5] 并发与CompletableFuture类

    填坑 还记得我在第五章《并行与并发》最留的坑吗?下面我们就来继续挖它,通过剖析源码,一层一层拨开它的心。 万流之眼 StreamSupport辅助类 为什么只是将parallel标志位设为false或true就可以关闭或开启并行,真正的实现原理是什么呢?我们先来看看集合类

    17-12-26
174文