JAVA设计模式总结之 23种设计模式

一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的...

2018-10-18 17:10:29

阅读数 61

评论数 0

《程序员代码面试指南》生成窗口最大值数组

题目: 有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑倒最右边,窗口每次向右边划一个位置。 例如: 数组为 [4,3,5,4,3,3,6,7],窗口大小为3时:   [4 3 5] 4 3 3 6 7 窗口的最大值为5  4[3 5 4] 3 3 6 7 窗口的最大值...

2019-01-09 09:45:20

阅读数 62

评论数 0

《程序员代码面试指南》第一章:栈与队列

这篇博客将《程序员代码面试指南》的第一章的内容进行一个汇总。 1.1:设计一个有getMin()功能的栈 1.2:由两个栈组成的队列 1.3:如何仅用递归函数和栈操作逆序一个栈 1.4:猫狗队列 1.5:用一个栈实现另一个栈的排序 1.6:用栈来求解汉诺塔问题 1.7:生成窗口最大值...

2019-01-07 19:20:58

阅读数 66

评论数 0

《程序员代码面试指南》用栈来求解汉诺塔问题

题目: 汉诺塔的问题比较经典,这里修改一下游戏规则:现在限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须经过中间。求当塔有N层的时候,打印最优秀移动过程和最优移动总步数。 例如:当塔为两层的时候,最上层塔记作1,最下层的塔记作2,则打印: Move 1 from...

2019-01-07 09:12:58

阅读数 146

评论数 0

Android开发4 : 活动的生命周期

2.4 掌握活动的生命周期对任何Android开发者来说都十分重要,当你深入理解活动的生命周期后就可以写出更为流畅的程序,并在如何管理应用资源方面发挥的游刃有余。你的应用程序将会拥有更好的用户体验。 2.4.1 返回栈 Android 中的活动是可以层叠的。我们每启动一个新的活动,就会覆盖原...

2019-01-01 23:03:40

阅读数 114

评论数 0

Android开发3 : 使用Intent在活动之间穿梭

2.3使用Intent在活动之间穿梭 2.3.1使用显式Intent 上次我们学到了如何创建一个活动,,那么现在我们快速的在ActivityTest中再创建一个活动。 仍然是右击com.example.activitytest包->New->Act...

2018-12-28 20:41:33

阅读数 67

评论数 0

Android开发1:windows下开发环境的搭建

工欲善其事必先利其器,Android开发我们首先要选择一款得心应手的开发工具,2013年的时候谷歌推出了一款官方的IDE工具Android Studio,到目前为止已经发展成为一款极其智能的开发工具。 接下来我们来看看怎么在自己电脑上面安装这款利器。 在安卓的官网上可以下载:https://d...

2018-12-20 10:41:29

阅读数 43

评论数 0

Android开发2:探究活动(Activity)

2.1活动是什么 活动(Activity)是最吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含零个或多个活动,但不包括任何活动的程序很少见。 2.2活动的基本用法 2.2.1手动创建一个活动 由于Android Studio在一个工作区间内只允许...

2018-12-14 20:01:42

阅读数 55

评论数 0

《程序员代码面试指南》如何仅用递归函数和栈操作逆序一个栈

题目: 一个栈依次压入1、2、3、4、5,那么栈顶元素分别为5、4、3、2、1。 将这个栈转置后从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。   解答: 本题考查的是栈的操作和递归的函数的设计,我们需要设计两个递归函数。   ...

2018-11-21 09:27:05

阅读数 71

评论数 0

《程序员代码面试指南》由两个栈组成的队列

题目: 编写 一个类,用两个栈实现队列,支持队列的基本操作(add, pol,peek)。   解答: 栈的特点是先进后出,而队列的特点是先进先出。 我们用两个栈正好能把顺序反过来实现类似队列的操作。 具体的做法是一个栈作为压入栈,在压入数据的时候只往这个栈压入,记为 stackPus...

2018-11-17 18:34:37

阅读数 62

评论数 0

《程序员代码面试指南》在其他数都出现偶数次的数组中找到出现奇数次的数

 题目: 在一个数组中只有一个数出现了一次 其他数出现两次 请找出那个只出现一次的数字   解答: 整数n与0异或的结果是n。n与n异或的结果是0。 public class GetOnlyOne { public static int getNumber(int[] arr...

2018-11-13 16:22:58

阅读数 52

评论数 0

《程序员代码面试指南》在其他数都出现K次的数组中找到只出现一次的数

题目: 给定一个整型数组arr和一个大于1的整数K。已知arr中只有1个数出现了1次,其他数都出现了K次,请返回只出现了1次的数。   解答: 以下的例子是两个七进制数的无进位相加,即忽略进位的相加,比如: 七进制数a:6 4 3 2 6 0 1  七进制数a:3 4 5 0 1 1 ...

2018-11-04 14:36:28

阅读数 68

评论数 0

Elasticsearch 多种搜索方式

1、query String search   搜索所有的商品   GET /ecommerce/product/_search   效果       "took": 288 (耗费的毫秒)   "timed_out...

2018-11-04 14:11:52

阅读数 387

评论数 0

《程序员代码面试指南》需要排序的最短子数组长度

题目: 给定一个无序数组arr,求出需要排序的最短数组长度。 例如: arr=[1,5,3,4,2,6,7]返回4,因为只有[5,3,4,2]需要排序。   解答: 初始化变量noMinIndex=-1,从右向左遍历,遍历的过程中记录右侧出现的数的最小值,记作min。假设当前数为arr...

2018-10-24 14:25:25

阅读数 45

评论数 0

《程序员代码面试指南》“之”字形打印矩阵

题目: 给定一个矩阵matrix,按照“之”字形打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 “之”字形打印结果为:1,2,5,9,6,3,4,7,10,11,8,12。   解答: 1、...

2018-10-22 13:58:10

阅读数 98

评论数 0

《程序员代码面试指南》将正方形矩阵顺时针转动90°

题目 给定一个N×M的矩阵 matrix,把这个矩阵调整为顺时针转动90°后的形式。   例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16   顺...

2018-10-21 12:05:12

阅读数 193

评论数 0

《程序员代码面试指南》 给定一个整型矩阵 matrix 请按照转圈的方式打印它

题目 给定一个整型矩阵 matrix ,请按照转圈的方式打印它。   例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16   打印结果为:1,2,3,4,8,12,16,1...

2018-10-20 20:41:21

阅读数 111

评论数 0

设计模式:简单工厂模式

一、什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义的一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。   二、模式中包含的角色及其职责 1.工厂角色(Creator) 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂...

2018-10-20 16:51:08

阅读数 72

评论数 0

《程序员代码面试指南》 整数的二进制表达式中有多少1

题目: 给定一个32位整数n,可为0,可为正,也可以为负,返回该整数二进制表达式中1的个数。   解答: 最简单解法。整数n每次进行无符号右移一位,检查最右边的bit是否为1来进行统计。   public static int count1(int n){ int res...

2018-10-20 11:30:10

阅读数 74

评论数 0

Spring Bean 的生命周期

1.实例化一个 Bean, 也就是我们常说的 new。   2.按照Spring上下文对实例化的Bean进行配置,也就是 IOC 注入。   3.如果这个Bean实现了 BeanNameAware 接口,会调用它实现的 setBeanName(String beanId) 方法,此处传递的...

2018-10-16 11:53:21

阅读数 65

评论数 0

提示
确定要删除当前文章?
取消 删除