当前位置::主页 > TAG标签 > Java
  • 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
  • react-native技术的优劣

    前言 从2017年初开始到现在,使用React-Native做项目已经一年了。我们做的是一款IM软件,嵌入在一个手机游戏平台的工程内部。之所以要采用react-native(后文简称RN)框架重构它,是因为现在游戏大厅上的所有游戏都是热更新的,为了也能让这个IM软件实现实时

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

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

    18-04-17
  • Android 模块化探索和实践(1):基本思路

    随着移动平台的不断发展,软件慢慢变的越来越复杂,业务繁多,体积臃肿;为了降低大型软件复杂性和耦合度,同时也为了适应模块重用、多团队并行开发测试等等需求,Android社区提出了两种解决方案:模块化和插件化。插件化暂且按下不提,本文主要讲述模块化。

    18-04-11
  • “大话架构”阿里架构师分享的Java程序员需要突破的技术要点

    一、源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,对学习的态度,

    18-04-09
  • 一篇让小白彻底搞懂性能调优!

    前言: 什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么人来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配置: CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10 操作系

    18-04-02
  • 【译】Java、Kotlin、RN、Flutter 开发出来的 App 大小,你了解过吗?

    现在开发 App 的方式非常多,原生、ReactNative、Flutter 都是不错的选择。那你有没有关注过,使用不同的方式,编译生成的 Apk ,大小是否会有什么影响呢?本文就以一个最简单的 Hello World App,来看看不同的框架,编译出来的 Apk 大小,有什么区别。当然

    18-03-27
  • Gradle插件:依靠git或svn建立简单的maven仓库

    vcsLib 一个简单的gradle插件,可以依靠git或svn建立简单的maven仓库,支持android和java项目的构建(使用之前需要先建立对应的仓库) How to use? config step 1 $rootDir/build.gradle : buildscript { repositories { jcenter() //required } dependencie

    18-03-19
  • 李开复:将网络数据存在大公司比放在身边安全

    在博鳌亚洲论坛 云计算 、移动、社交媒体分论坛上,李开复表示,人们总有一种心态,觉得数据资料放在自己身边,看得到、摸得到就是安全,看不到、摸不到就是危险。 很多人丢过手机、硬盘、电脑等,也就因此把里面的数据资料丢失了。李开复认为,把数据存放在

    12-04-04