- 博客(181)
- 资源 (3)
- 收藏
- 关注
原创 springBoot核心原理
一、配置文件yaml的写法##map的写法1friends: {lastName: zhangsan,age: 18}##map的写法2friends: lastName: zhangsan age: 20###list、set写法1 pets: - cat - dog - pig ###list、set写法2pets: [cat,dog,pig]##单引号会将\n作为字符串输出,双引号会将\n作为换行输出##双引号不会转义,单引号会转义想要代码配置可以提示,添加
2021-06-10 21:56:12 361
原创 SpringBoot入门基础
SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class
2021-06-06 16:30:45 323
原创 web应用的配置描述符--web.xml文件
配置描述符web.xml对于java web应用来说非常重要。在servlet2.5规范之前,每个Java WEB应用都必须包含个web.xml文件,且必须在WEB-INF路径下。从servlet3.0开始,WEB-INF路径下的web.xml文件不再是必须的,但通常还是建议保留该配置文件。Servlet2.5之前,Java Web应用的绝大部分组件都通过web.xml文件来配置管理,从s
2018-02-04 16:40:23 856
原创 shell脚本实现mysql数据库的增删改查操作
一、shell脚本实现mysql操作通用的shell语句如下:mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${sql}" --default-character-set=UTF8 1、HOSTNAME是主机名,通常是数据库的ip2、PORT是端口号3、USERNAME是用户名4、PASSWORD是密码5、通过写sql
2017-12-09 14:08:42 14195
原创 spring boot工程实践入门
一、新建一个spring boot工程1、登录start.spring.io网站,填入Group ID和Artifact ID和JDK版本号信息,可以选择依赖包,通常Web等依赖是常用的选择项,然后点击生成工程,下载工程文件。 2、打开eclipse,选择导入已有的maven工程,即可导入我们已经生成的spring boot工程。二、spring boot入口类我们新建一个工程,系统都会帮我们创建
2017-12-03 21:14:10 329
转载 jar包,war包和tar包的区别
tar:tar是*nix下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx.tar.gz,就表示这个tar包是压缩的,并且使用的压缩算法是GNU ZIP,而xxxx.tar.bz2就表示这个包使用了bzip2算法进行压缩,当然这样的命名只是一种惯例,并非强制。简单地说,tar就仅是打包。jar:即Java Archi
2017-12-03 18:35:50 3115
转载 Java反射机制
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。一、关于Class1、Class是一个类,一个描述类的类(也就是描述类本身),封装了描述方法的Method,描述字段的Filed,描述构造器的Constructor等属性2、对象照镜子后(反射
2017-12-03 16:40:53 258
转载 springmvc注解之@component注解
1、@controller 控制器(注入服务) 2、@service 服务(注入dao) 3、@repository dao(实现dao访问) 4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的) @Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。 下面写这个是
2017-12-02 23:57:32 2636
转载 springmvc注解之@RequestMapping注解
一、基本介绍RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping注解有六个属性,下面我们把她分成三类进行说明。1、 value, method;value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);method: 指定请求的met
2017-12-01 20:25:54 350
转载 springmvc注解之@Controller和@RestController注解
一、使用说明官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。@Controller @ResponseBody public class
2017-12-01 20:24:14 1168
转载 redis的持久化机制
持久化的目的——把数据从内存保存到磁盘,防止数据的丢失 AOF append only file 一、Redis提供了哪些持久化机制: 1). RDB持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 2). AOF持久化: 该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重 新构建数据库,以保证启动后数据库中的数据是完整的
2017-11-18 20:01:44 282
转载 设计模式介绍
一、设计模式的类型参考自http://www.runoob.com/design-pattern/design-pattern-intro.html 共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。1、创建型模式这些设计模式提供了一种在创
2017-10-10 22:50:03 300
原创 spring+mybatis错误原因
错误一:如下图所示显示parm没找到nested exception is org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are [1, 0, param1, param2]常见的思路是检查mapper里面函数的参数有没有用@param,如果在xml中定
2017-08-26 17:45:33 292
转载 Restful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如
2017-08-20 23:39:04 258
原创 node.js学习
由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境。pm是什么东东?npm其实是Node.js的包管理工具(package manager)。为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集
2017-08-14 16:46:49 238
原创 Spring中的注解
Spring提供了几个Annotation来标注Spring Bean。 @Component:标注一个普通的Spring Bean类 @Controller:标注一个控制器组件类 @Service:标注一个业务逻辑组件类 @Repository:标注一个DAO组件类指定了某些类可作为Spring Bean类使用后,最后还需要让Spring搜索指定路径,此时需要在Spring配置文件中导入c
2017-08-14 00:05:22 319
原创 依赖注入DI
依赖注入通常有两种方式: 1、设值注入:IoC容器使用成员变量的setter方法来注入被依赖对象 2、构造注入:IoC容器使用构造器来注入被依赖对象两种注入方式对比: 设值注入的的优点 1、与传统JavaBean的写法更相似,通过setter方法设定依赖关系显得更加直观、自然 2、对于复杂的依赖关系,如果采用构造注入,会导致构造器过于臃肿,难以阅读。Spring创建实例时,需要同时实例化其
2017-08-13 21:21:37 293
原创 IoC容器
一、什么是IoC容器?Spring核心容器就是一个超级大工厂,所有的对象(包括数据源、Hibernate SessionFactory等基础性资源)都会被当成Spring核心容器管理的对象—Spring把容器中的一切对象统称为Bean。不管该java类是JDK提供的,还是第三方框架提供的,抑或是开发者自己实现的……只要是个java类,并将它配置在配置文件中,spring容器就可以管理它。IoC容器就
2017-08-13 14:21:11 382
转载 Spring入门
一、Spring是什么Spring是一个开源的轻量级Java SE/Java EE开发应用框架,它提取了大量实际开发中需要重复解决的步骤,将这些步骤抽象成一个框架。目的是为了简化企业级应用程序开发。二、 Spring能帮我们做什么Spring除了不能帮我们写业务逻辑,其余的几乎什么都能帮助我们简化开发:一、传统程序开发,创建对象及组装对象间依赖关系由我们在程序内部进行控制,这样会加大各个对象间的耦合
2017-08-12 22:08:14 243
原创 数据库连接池
一、使用数据库连接池的好处如果不使用连接池则连接的方式如图所示: 如果用户每次请求都需要向数据库获得连接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、宕机。为了解决这个问题,类似于线程池的思想,我们也可以使用数据库连接池来优化程序的性能。使用数据库连接池的方式
2016-12-12 14:33:51 704
原创 MVC设计思想
一、JavaEE开发模式的发展1、最开始是Servlet技术,但是其存在的问题是在Servlet中拼接html内容和css/js内容时十分不方便。2、然后是JSP技术,它改变了Servlet在Java代码中写html代码的过程,改为在HTML中拼写java代码。但是html内容中如果嵌入了大量的java代码,会导致java代码和html代码混杂在一起不方便开发维护。3、接着出现模式一,JSP+Jav
2016-12-08 11:13:32 1694 1
原创 JSP的标签技术
jsp的标签技术:在jsp页面中最好不要出现java代码,这时我们可以使用标签技术将java代码替换成标签来表示。JSP的标签技术主要有下面四种:jsp标签。EL表达式。JSTL标签库。自定义标签技术。一、jsp标签sun原生提供的标签,可以直接在jsp页面中使用。这种标签技术在实际使用中用的不是很多。它有很多标签,下面介绍其中的几种标签: 1、标签标签用于把另外一个资源的输出内容插入进当
2016-12-08 11:06:36 7565
原创 程序中常用路径的写法
程序中我们经常要写路径,但是只有我们明白其中的原理,才能正确地写出路径。那么我们在哪些地方写过路径?通常按照不同的划分方法,分为真实路径和虚拟路径,也可以分为绝对路径、相对路径和硬盘路径。绝对路径:以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径。相对路径:不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径。硬盘路径:以盘符开头的路径就叫做硬盘路
2016-11-29 15:31:38 4117
原创 HttpServlet的response和request对象
我们知道servlet 通常通过 HTTP协来接收和响应来自 Web 客户端的请求。 因此我们在使用中最常用的是Servlet接口的实现类HttpServlet类。HttpServlet类的方法的主要参数是HttpServletRequest和HttpServletResponse对象。通过合理地使用这两个对象,我们可以实现很多有用的功能,例如在界面输出数据、文件下载等。一、HttpServletR
2016-11-24 23:42:09 1192
原创 XML的两种约束技术:dtd和schema
一、如何在xml中引入dtd1、外部引入 可以将dtd的约束内容写在外置的dtd文件中,这个文件后缀必须为.dtd而文件保存时必须用utf-8编码保存. 再在xml文件中使用: 1) 如果写的是SYSTEM表明当前引入的dtd在当前文件系统中,后面制定的文件位置是当前硬盘中的位置 <!DOCTYPE 根元素名称 SYSTEM 文件的位置>2) 如果写的是PUB
2016-11-01 22:25:30 952
原创 2017秋招笔试面试问题
华为面谈 1、画出TCP报头阿里测试开发面试 1、讲一下索引,什么情况下使用索引 2、什么是幻读 3、讲一下快排的原理 4、进程有哪些状态地平线开发面试 1、写一个脚本检测系统占用cpu,内存等情况 2、用数组实现一个循环队列 3、全局变量a=1,一个线程将a将1改为2,另一个线程将a将2改为1,第二个线程退出的时候第一个线程才能退出,主线程在值从1变为2或者2变为1的时候会结束
2016-11-01 18:42:07 592
原创 二叉搜索树的后序遍历序列
一、题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。二、解题思路采用递归的思路。二叉搜索树满足左子树的元素小于根节点元素的值,右子树的元素大于根节点元素的值三、Java代码实现public class Solution { public boolean VerifySquenceOfBST(in
2016-10-24 23:44:31 298
原创 包含min函数的栈
一、题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。二、解题思路用一个辅助栈存储当前栈中的最小元素值。三、Java代码实现import java.util.Stack;public class Solution { Stack<Integer> stack = new Stack<Integer>(); Stack<Integer> minStack =
2016-10-24 18:47:29 333
原创 Q11--反转链表
一、题目描述输入一个链表,反转链表后,输出链表的所有元素。二、解题思路用三个指针来操作。三、Java代码实现public class Solution { public ListNode ReverseList(ListNode head) { if(head == null) return null; ListNode p1 = head;
2016-10-24 14:29:32 430
原创 Q9--数值的整数次方
一、题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。二、解题思路几个注意点: 1、由于计算机表示小数(包括float和double型小数)都有误差,我们不能直接用等号(==)判断两个小数是否相等。如果两个小数的差的绝对值很小,比如小于0.0000001,就可以认为它们相等。 2、要考虑指
2016-10-23 22:41:47 431
原创 Q7--斐波那契数列
一、题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。二、解题思路可以用递归的解法,也可以用非递归的解法三、Java代码实现//递归实现public int Fibonacci(int n) { if(n==0) return 0; if(n==1) return 1; return Fibonacci(n-1)+Fibonacci
2016-10-23 20:20:59 434
原创 Q6--旋转数组的最小数字
一、题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。二、解题思路最简单的方法是遍历数组得到最小的元素,算法复杂度是O(N)。但是没有利用旋转数组的特性,利用它的特性,我们
2016-10-23 19:51:12 329
原创 Q5--用两个栈实现队列
一、题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。二、解题思路添加元素直接添加到栈1中,弹出元素的时候要判断栈2,如果栈2不为空可以直接弹出,如果栈2为空,将栈1中的元素全部压入到栈2当中,然后再弹出。三、Java代码实现import java.util.Stack;public class Solution { Stack<Integer> s
2016-10-22 23:03:13 462
原创 Q2--替换空格
一、题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。二、解题思路可以采取从后往前操作的方式,先遍历原来的字符串判断有多少个空格,如果空格的个数为count,那么替换后的字符串长度为原来的字符串长度+2*count。算法复杂度为O(n)。如果从前往后操作,每次替换都要将后面所有的字符往后移
2016-10-22 21:43:21 277
原创 Q1--二维数组中的查找
一、题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。二、解题思路将要查找的元素和二维数组(矩阵)的右上角元素比较,如果相等则返回true。如果大于这个元素,那么可以把第一行的元素去掉;如果小于这个元素,那么可以把最后一列的元素去掉,这样每次比较都可以去掉一行或者一列。当然也可
2016-10-22 21:09:17 273
转载 Mysql中的锁机制
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL锁
2016-10-22 20:33:33 279
原创 Hibernate缓存:一级缓存和二级缓存
1、什么是缓存? 数据通常是存储到数据库里面的,数据库本身是文件系统,使用流方式操作文件效率不是很高。采用缓存就是把数据存到内存里面,不需要使用流方式,可以直接读取内存中数据,提高读取效率。2、Hibernate缓存 hibernate框架中提供了很多优化方法,hibernate的缓存就是一个优化方法。hibernate中有一级缓存和二级缓存。一级缓存的特点:(1)一级缓存是默认打开的(2)一级
2016-10-20 20:32:55 356
原创 hibernate框架
JavaEE的三层结构: 1、web层:struts2框架 2、service层:spring框架 3、dao层:hibernate框架 (1)对数据库进行crud操作MVC思想: 1、Model模型 2、View视图 3、Controller:控制器什么是框架? 通俗地理解在写代码中使用框架可以帮我们实现一部分的功能。而使用框架的好处就是可以少写一部分代码就可以实现想要的功能。什么
2016-10-20 19:58:59 382
原创 堆
堆有两个性质:结构性和堆序性堆是一棵完全二叉树。一棵高为h的完全二叉树有2^h到(2^h+1)-1节点。这意味着完全二叉树的高是⌊logN⌋,显然它是O(log N)。因为它这么有规律,它可以用一个数组表示而不需要使用链。 一个堆结构将由一个Comparable对象的数组和一个代表当前堆的大小的整数组成。堆序性质(最小堆):在一个堆中,对于每个节点X,X的父亲中的关键字小于或等于X中的关键字,根
2016-10-20 13:34:20 378
High Performance Switches and Routers(高性能交换机和路由器)
2015-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人