Intellij Idea 2017创建web项目及tomcat部署实战 相关软件:Intellij Idea2017、jdk16、tomcat7Intellij Idea直接安装(可根据需要选择自己设置的安装目录),jdk使用1.6/1.7/1.8都可以,主要是配置好系统环境变量,tomcat7上tomcat的官网下载压缩包解压即可。一、创建简单web项目1、创建一个web projectFile -> new Project ->选择pr...
如何写Java文档注释(Java Doc Comments) 文档注释概览“文档注释”(Java Doc Comments)是专门为了用javadoc工具自动生成文档而写的注释,它是一种带有特殊功能的注释。文档注释与一般注释的最大区别在于起始符号是/**而不是/*或//。/*** 这是文档注释*//** 这是一般注释*/// 这是一般注释在一些IDE(比如Eclipse)中,文档注释会以不同于普通注释的颜色高亮显示。此外,...
深度剖析JDK动态代理机制 摘要相比于静态代理,动态代理避免了开发人员编写各个繁锁的静态代理类,只需简单地指定一组接口及目标类对象就能动态的获得代理对象。代理模式使用代理模式必须要让代理类和目标类实现相同的接口,客户端通过代理类来调用目标方法,代理类会将所有的方法调用分派到目标对象上反射执行,还可以在分派过程中添加"前置通知"和后置处理(如在调用目标方法前校验权限,在调用完目标方法后打印日志等)等功能。使...
数据库连接池原理详解与自定义连接池实现 实现原理数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。 连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存...
Spring中的自定义标签 自定义标签目的更好的封装组件 增强组件的易用性自定义组件步骤采用XSD描述自定义标签的元素属性 编写Bean定义的解析器 注册自定义标签解析器 绑定命名空间解析器自定义标签的第一步是定义标签元素的XML结构,采用XSD描述自定义标签的元素属性,下面以用户服务作为自定义标签,代码如下:/*userSerivce.xsd*/<?xml version="1.0" en...
IOC分类 IOC的类型构造函数注入 属性注入 接口注入构造函数注入在构造函数注入中,通过调用类的构造函数,将接口实现类通过构造函数变量传入:public class MoAttack{ private GeLi geli; //1、注入隔离的具体饰演者 public MoAttack(GeLi geli){ this.geli=geli; ...
JDBC事务和JTA事务的区别 一、事务概述事务表示:一个由一系列的数据库操作组成的不可分割的逻辑单位,其中的操作要么全做要么全都不做。与事务相关的操作主要有:BEGIN TRANSACTION; 开始一个事务,方法是:begin()COMMIT; 提交一个事务,方法是:commit()ROLLBACK; 回滚一个事务,方法是:rollback()PREPARE; 准备提交一个事...
Java中的ThreadLocal ThreadLocal是用于解决多线程程序的并发问题的工具类,早在java 1.2版本中就提供了java.lang.ThreadLocal。java在语言层面上没有为线程局部变量提供支持,但是java利用ThreadLocal类来支持线程局部变量。ThreadLocal是一个保存线程本地化对象的容器。当运行与多线程环境中的某个对象使用ThreadLocal维护变量时,ThreadLocal...
关于java中的注解(待更新) 自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。这篇文章中,我将向大家讲述到底什么是注解,为什么要引入注解,注解是如何工作的,如何编写自定义的注解(通过例子),什么情况下可以使用注解以及最新注解和ADF(应用开发框架)。这会花点儿时间,所以为自己准备一杯咖啡,让我们来...
领域模型实体类分类(待更新) PO(Persistent Object):持久化对象,表示持久层的数据结构(如数据库表);--持久层 DO(Domain Object):领域对象,即业务实体对象;--服务层 DTO(Data Transfer Object):数据传输对象,原来的目的是为EJB的分布式应用提供粗粒度的数据实体,以降低分布式调用的次数,提高分布式调用的性能,后来一般泛指用于展示层与服务层之间的数据传输对象,因...
关于mysql(待更新) MySQL的变化MySQL4.1.0以前的版本不支持事务,MySQL 4.1.0本身也只对事务提供有限的支持。各版本主要增加的特性如下: MySQL 5.0增加存储过程、视图、游标、触发器、XA事务 MySQL 5.1增加事件调度器、分区、可插拔的存储引擎API、行复制、全局动态查询日志修改 MySQL 5.5默认存储引擎更改为InnoDB,提高了默认线程并发数,后台输入/输出线程控制,...
关于maven Maven能够帮助用户建立一套有效的自动化构建体系。Maven提供的POM配置、相关的Maven插件以及简单的maven命令(如mvn clean install),可以帮助用户轻松地完成构建任务。用户使用maven之后,无须再通过重复输入命令和点击鼠标这些繁琐的工作去完成项目从清理、编译、测试到生成报告,再到打包和部署的过程。Maven模型Maven基础概念Progect:工程是你...
kafka:如何保证消息不丢失不重复 首先要考虑这么几个问题:消息丢失是什么造成的?(从生产端和消费端两个角度来考虑) 消息重复是什么造成的?(从生产端和消费端两个角度来考虑) 如何保证消息有序? 如果保证消息不重不漏,损失的是什么?下面是文章详情,这里先简单总结一下:消费端重复消费:很容易解决,建立去重表。 消费端丢失数据:也容易解决,关闭自动提交offset,处理完之后受到移位。 生产端重复发送:这个不...
LeetCode-LRU缓存机制 题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put (*注:这里的get和put都表示数据被使用)。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当...
Linux系统启动过程 前言:Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux是自由软件和开放源代码软件发展中最著名的例子。接触Linux的时间也不算短了,一直都是直接使用Linux操作系统进行一些工作,很少去了解系统从开机到能使用的整个过程,感觉有需要好好理解下整个系统的启动过程,故...
最大子序列和 问题描述给定一个序列(整数或浮点数),求出其中连续的子序列和最大的那一个。例:序列{-10 1 2 3 4 -5 -23 3 7 -21},其最大的连续子序列为{1 2 3 4}或{3 7},最大和为10.算法1:穷举法最直观的算法,穷举式地尝试所有可能。下标变量i表示子序列的开始位置,j表示结束位置,每次选定一个子序列Ai--Aj,再使用k遍历该子序列求子序列的和。代码如下:...
一篇文章搞懂bitmap算法(待更新) BitMap算法热点什么是BitMap算法问题解法BitMap算法BitMap算法举例简单的排序问题海量数据的查找问题针对第二个问题热点BitMap算法,一直是面试的热点问题,当然它也是在海量数据进行快速查找,判重,删除的基本方法。什么是BitMap算法问题在介绍bitmap算法之前,先来看下面几个与bitmap有关的问题1. 给40亿个不重复的int的整数,没排过序的,然后在给一个...
centos安装图形界面 一,安装图形界面包组 yum groupinstall “Desktop” -y yum groupinstall “X Window System” -y 之所以加 -y 是为了一会安装的时候不用再确认了。不加-y也行。不过一会儿有可能有很多选项需要你确认;二,进入图形界面 startx从图形界面到命令行界面 ctrl + alt +F1(F1到F6)都行m group...