自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android面试题集锦

2018年5月9日android activity的生命周期,按照顺序写下来 android 4.3对应的api版本号 Android Parcelable和Serializable的区别 concurrenthashmap 原理,HashTable为什么淘汰 HandlerThread是什么,与IntentService有什么关系 什么是观察者模式,在Android中那些开发技术使...

2018-05-09 17:03:10 292

原创 8、剑指offer之变态跳台阶问题,题目解析和java实现方法

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。要求时间限制:1秒 空间限制:32768K 题目分析前提是n个台阶会有一次n阶的跳法。分析如下:f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。 f(3) = f...

2018-04-09 22:57:57 383

原创 7、剑指offer之跳台阶问题,题目解析和java实现方法

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。要求时间限制:1秒 空间限制:32768K题目分析共需要跳上n阶台阶,而青蛙一次可以跳上一个台阶,或者两个台阶。当青蛙第一次跳上一个台阶,剩余n-1个台阶当青蛙第一次跳上两个台阶,剩余n-2个台阶而在剩余的n-1或者n-2个台阶,青蛙下一次依然可以跳一个台阶或...

2018-04-09 22:38:15 400

原创 6、剑指offer之斐波那契数列,题目解析和java实现方法

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39要求时间限制:1秒 空间限制:32768K知识点斐波那契数列:1,1,2,3,5,8,13…. 观察发现:f(1) = 1f(2)=1f(3) = f(2)+f(1) = 2f(4)=f(3)+f(2)…f(n) = f(n-1)+f(n-2)...

2018-04-09 22:30:22 281

原创 5、剑指offer之用两个栈实现队列,题目解析和java实现方法

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。要求时间限制:1秒 空间限制:32768K实现思路首先我们回顾一下队列和栈的区别队列是先进先出的数据结构栈是先进后出的数据结构首先我们来考虑一下队列的进队操作,这个和栈的进栈操作一致,故可以利用栈1进行进栈操作。 至于出队的操作则需要另外一番操作,这时可以利用另外一个...

2018-04-07 20:47:35 238

原创 4、剑指offer之重建二叉树,题目解析和java实现方法

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。要求时间限制:1秒 空间限制:32768K 参数类型 //二叉树节点 public class TreeNode {...

2018-04-07 20:05:04 217

原创 3、剑指offer之从尾到头打印链表每个节点的值,题目解析和java实现方法

题目描述输入一个链表,从尾到头打印链表每个节点的值要求时间限制:1秒 空间限制:32768K 参数类型 //链表节点 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = ...

2018-04-07 19:36:14 219

原创 2、剑指offer之替换字符串的空格,题目解析和java实现方法

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。要求时间限制:1秒 空间限制:32768K 题目解析用java语言的实现思路可以分为下列两种使用replaceAll函数public String replaceSpace(StringBuffer...

2018-04-07 19:26:00 160

原创 1、剑指offer之二维数组的查找,题目解析和java实现方法

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。要求时间限制:1秒 空间限制:32768K题目解析输入参数是一个二位数组和一个整数,其中二维数组每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 因此可以从数组的左...

2018-04-02 23:28:13 272

原创 Android使用ViewPager+Fragment实现定制TabHost选项卡效果

Android使用ViewPager+Fragment实现定制TabHost选项卡效果使用viewpager和fragment实现tabhost效果的步骤如下创建Activity创建Fragment开始定制CustomTabHost类在Activity中使用效果图1、创建Activitypublic class MainActivity extends...

2018-03-23 16:21:06 733

原创 贝塞尔曲线常用操作速查表

一阶曲线(线性曲线) 对应方法:lineTo 二阶曲线 (对应方法:quadTo) 三阶曲线 (对应方法:cubicTo) 四阶曲线

2018-03-07 11:46:17 810

原创 在Ubuntu下mongodb的安装和启动

在Ubuntu下mongodb的安装和启动1、终端输入命令:sudo apt-get install mongodb2、如果出现找不到的问题,请输入以下命令更新软件库:sudo apt-get update3、安装完成后,可以通过以下命令来查看是否已经启动mongodbpgrep mongo -l4、进入mongodbmongo5、退出mongodb(前提:已经进入mongodb的命令行)exit

2017-04-11 18:53:02 16167

原创 Could not open lock file/var/lib/dpkg/lock的解决办法

Could not open lock file/var/lib/dpkg/lock的解决在ubuntu系统中利用apt-get install something的时候,有时候会出现无法获得锁的权限问题。这是因为有另外一个进程在占用锁。类似以下的错误提示:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporari

2017-04-11 18:35:15 6222

原创 Could not open lock file/var/lib/dpkg/lock的解决办法

Could not open lock file/var/lib/dpkg/lock的解决在ubuntu系统中利用apt-get install something的时候,有时候会出现无法获得锁的权限问题。这是因为有另外一个进程在占用锁。类似以下的错误提示:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporari

2017-04-11 18:34:06 1741

原创 Linux常用操作指令

Linux常用操作指令用root身份登录shell sudo -i管理员身份下创建新目录 sudo mkdir [location]管理员下删除文件夹sudo -d 文件夹/文件访问目标文件夹cd [location]用vim打开文件 vim 文件位置和目录名

2017-02-24 19:21:04 365

原创 hadoop环境搭建

基于linux的环境搭建: 安装jdk第一步:下载jdk,尽量用最新的jdkjdk下载第二步:解压jdk包,并放在合适的文件目录下假设现在jdk压缩包在Downloads文件夹下,可使用以下命令:sudo tar -xzvf Downloads/jdk.tar.gz#进入root用户模式,要输入密码sudo -i #注释:这里把jdk放在usr目录下mv ~/Downloads/jdk /

2017-02-22 18:33:00 428

原创 20、spring+hibernate+mysql实例

20、spring+hibernate+mysql实例spring和hibernate的框架集成: 实例:先来创建一个数据库和表:/*Navicat MySQL Data TransferSource Server : adminSource Server Version : 50710Source Host : localhost:3306Sour

2017-02-21 20:19:50 440

原创 19、spring AOP+AspectJ

19、spring AOP+AspectJ本文主要介绍AspectJ注解和spring AOP的结合AspectJ主要有以下五种方式:@Before——方法运行前执行@After——方法运行后执行@AfterReturning——方法返回value后执行@AfterThrowing——抛出异常后执行@Around——环绕型,结合前面四种说明:spring中并没有继承Aspect的jar包

2017-02-21 17:17:18 336

原创 18、spring AOP自动创建代理bean

18、spring AOP自动创建代理bean自动创建了代理bean的作用就在于,简化代理bean的手动创建,免得代理bean在配置文件中堆积如山。这里使用上一个例子的demo17、spring AOP通知——Pointcut、Advisor 创建代理bean的步骤如下: 第一步修改bean配置文件<beans xmlns="http://www.springframework.org/sc

2017-02-21 16:10:36 843

原创 17、spring AOP通知——Pointcut、Advisor

17、spring AOP通知——Pointcut、Advisor说明:在上一个例子spring AOP通知——Advice中,主要介绍了Advice的四种用法,但是被拦截的bean的所有方法都会被影响,实际上,我们通常只需要拦截一个或者若干个方法即可,而不是所有。这里我们依然使用上一个例子的demo,但是需要做一些更改。主要有以下三步即可实现: 第一步:设置目标被拦截的方法名,并且封装称为一个

2017-02-21 15:41:32 619

原创 16、spring AOP通知——Advice

16、spring AOP通知——Advice**说明:**spring AOP是一个面向切面的编程框架,也就是拦截器的一个集合,可以劫持一些方法,并在这些方法执行前,执行后或者围绕其他动作进行一些处理或添加以下新功能主要有以下四种通知方式:Advice之前——在方法执行前运行Advice之后——在方法执行后运行Advice抛出异常之后——在方法抛出异常之后运行环绕通知——综合运用上述三种方

2017-02-21 15:03:55 528

原创 15、spring自动扫描组件

15、spring自动扫描组件 自动组件扫描第一步:使用@Component标记类,使得spring容器能够识别为一个组件 @Component public class UserDAO { public void outPut(){ System.out.println("你好,这是一个自动扫描的demo"); }}第二步:在bean配置文件中

2017-02-20 21:31:00 375

原创 14、spring的EL表达式语言(SpEL)

14、spring的EL表达式语言(SpEL)Spring EL表达式共有以下几种语法知识:使用SpEL引用bean使用SpEL调用方法SpEL的运算符SpEL的三元运算SpEL操作集合类型SpEL的正则表达式Spring EL表达式有两种实现方式:基于xml方式的实现基于注解方式的实现在下面的每一个知识点中,均会以两种形式来介绍 SpEL 的入门例子第一步:先创建两个实体

2017-02-20 20:54:42 2431

原创 13、spring的bean基础(5)

13、spring的bean基础(5)在本文中主要介绍以下两个知识点,在博主做备忘之时,也可以分享给大家一起学习。spring依赖检查的两种实现方式spring bean初始化和销毁的函数调用1、spring依赖检查的两种实现方式说明:进行依赖检查的目的就在于确保bean的属性被注入一个目标值在开始演示之前先创建两个实体类: Customer.javapackage com.main.aut

2017-02-20 15:11:58 279

原创 12、spring的bean基础(4)

12、spring的bean基础(4)在本文中主要介绍以下几个知识点注入日期到bean属性中(使用CustomDateEditor)PropertyPlaceholderConfigurer实例bean配置继承下面进入正题 注入日期到bean属性中第一步:创建beanpackage com.main.autowrite.customDateEditor;import java.util

2017-02-19 16:48:09 691

原创 11、spring的bean基础(3)

11、spring的bean基础(3)在本文中,主要介绍的知识点有以下三个ListFactoryBeanSetFactoryBeanMapFactoryBean现项目中存在一个实体类,将用于以下三个例子的演示 HelloWorld.javapublic class HelloWorld{ private List list; private Set set; pri

2017-02-19 15:16:23 268

原创 10、spring的bean基础(2)

10、spring bean基础(2)在本文中,主要介绍在spring中将集合类型注入到bean的属性中,主要有以下四种集合类型。ListSetMapProperties假设项目中有一个beanpublic class HelloWorld{ private List<Object> list; private Set<Object> set; private Map

2017-02-19 14:57:37 759

原创 9、spring的bean基础(1)

9、spring的bean基础(1)本文主要讲解以下几个知识点在spring中引用bean的例子注入值到bean属性加载多个配置文件spring bean的作用域示例 在spring中引用bean的例子引用同一个配置文件下的bean<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:

2017-02-19 14:27:55 463

原创 Windows命令行 端口占用 查询进程号 杀进程

Windows命令行 端口占用 查询进程号 杀进程 第一步:按下WIN键+R键,打开命令行,输入cmd进入DOS窗口 第二步:输入netstat -ano |findstr 端口号作用:根据端口号查找具体的进程号(PID),下面的例子是3212 第三步:输入tasklist|findstr 进程号作用:根据进程号来获取具体的文件名称 第四步:输入taskkill -f -t -i

2017-02-18 16:13:11 681

原创 8、spring依赖注入(DI)之参数歧义问题

8、spring依赖注入(DI)之参数歧义问题背景说明:当一个类中,包含有多个带参数构造器,而且构造器的参数数量和类型都一致,但是位置不同,这时如果通过构造器进行依赖注入的话,可能会造成参数歧义(错位传参)问题。让我们看看下面的例子! 例子Customer.javapackage com.main.autowrite.DI;public class Customer { private

2017-02-18 15:50:43 473

原创 7、spring 依赖注入(DI)

7、spring 依赖注入(DI)在spring框架中,主要有以下四种依赖注入的方式setter方法注入构造器注入静态方法注入实例工厂注入在实际的运用中主要使用前两种,所以在本文中也集中经历介绍前两种DI方式 示例1:setter方法依赖注入目录结构如下: 配置文件bean.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns=

2017-02-18 15:27:12 638

原创 6、使用javaConfig代替xml文件来声明和导入bean

6、使用javaConfig代替xml文件来声明和导入bean在这之前的教程中,都是使用xml文件(即bean配置文件)来对bean进行声明的,但是在spring 3.0版本以及后续更新的版本中,提供了javaConfig的方式(即注解)来声明bean。 例如:@Configurationpublic class AppConfig { @Bean(name="helloBean")

2017-02-18 14:44:28 922

原创 5、spring自动装配之@Qualifier注解的使用

在上一篇4、spring使用@Autowired注解实现自动装配 教程中,我们知道了怎么使用@Autowired注解进行自动装配。但是当存在两个类型一致的person bean时,将会有什么情况出现。我们一起来看看下面的例子:例子说明:如果已经看了上一篇教程,可以直接跳到第二步 第一步:创建beanCustomer类package com.main.autowrite.autowired.an

2017-02-18 14:06:08 859

原创 4、spring使用@Autowired注解实现自动装配

在上一篇spring的五种自动装配方式 教程中,我们了解到spring利用xml方式进行操作的五种自动装配方式,而在这篇文章中我们将学习利用@Autowired注解的方式进行自动装配@Autowired注解自动装配的三种方式 setter方式构造函数方式通过字段自动装配方式例子 第一步:创建beanCustomer.javapackage com.main.autowrite.auto

2017-02-18 13:16:17 1399

原创 3、spring的五种自动装配方式

spring的五种自动装配方式no —— 默认情况,自动装配方式为手动装配,即通过ref手动设定byName —— 根据属性名称自动装配,如果一个bean的名称和其他bean属性一致,则进行自动装配byType——按照数据类型进行自动装配,如果一个bean的名称和其他bean的属性的数据类型一致,则进行兼容并自动装配constructor ——通过构造函数参数的byType方式。autod

2017-02-17 21:03:42 4307

原创 2、spring的松耦合示例

说明:在实际的开发项目中,一般都比较庞大,如果处理不当,会导致对象的依赖关系将一直紧密联系在一起,并且难以修改或者管理。在这一种场景下,spring框架的优势便体现出来了—–松耦合。 例子1说明:运用传统方法输出helloworld语句,主要代码如下OutputGenerator.javapublic interface OutputGenerator { public void ou

2017-02-17 19:39:20 1111

原创 1、Spring初学入门教程

1、Spring初学入门教程 第一个HelloWorld程序工程是在以下开发环境下完成的Spring Framework 4.0.4 RELEASEEclipse MARS 版本maven plugin for eclipse 第一步:创建maven项目 第二步:创建目录结构 第三步:添加代码beans.xml<?xml version="1.0" encoding="

2017-02-17 18:32:55 550

搭建SVN服务器

搭建SVN服务器和使用的详细步骤

2017-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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