Java Struts2 POI创建Excel文件并实现文件下载 在做管理系统的时候,经常会用到文件的下载,特别是Excel报表的创建与下载,下面就来简单演示一下,Struts2实现的Excel文件的下载功能。由于本实验是要动态创建Excel文件,因此需要一些jar:Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版。Maven...
提升软件开发者效率的10个提示 转自:http://www.infoq.com/cn/news/2014/01/10-productivity-tips?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_articles_clk Ilias Tsagklis是电信领域的一位资深软件工程师,以软件开发者的身份参与了多个应
C# TimeSpan 的 Days、TotalDays、Hours、TotalHours等区别 本文转自:http://blog.csdn.net/avon520/article/details/7418688C#里两个时间相减,得到一个 TimeSpan 实例,TimeSpan 有一些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意没有 TotalTicks。
[转]深入理解Java的接口和抽象类 原文地址:http://www.cnblogs.com/dolphin0520/p/3811437.html深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽
Java中@Override的作用 @Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1、可以当注释用,方便阅读;2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)。 举例:在重写父类的onCreate时,在方法前面加上@O
Linux命令笔记 Linux命令笔记这里记录一些日常使用的Linux命令,作为个人笔记,方便查阅使用。1.切割文件命令splitsplit --help用法:split [选项]… [输入 [前缀]]将输入内容拆分为固定大小的分片并输出到"前缀aa"、“前缀ab”,…;默认以 1000 行为拆分单位,默认前缀为"x"。如果不指定文件,或者文件为"-",则从标准输入读取数据。长选项必须使用的参数对于短选项时也是必需使用的。-a, --suffix-length=N 指定后缀长度为N (默认为2)-b,
Windows如何创建网站快捷方式 有时候,经常需要保存一些网页地址,但是我不喜欢放到浏览器收藏夹,我更喜欢做成快捷方式,直接放到桌面显眼的地方。Windows下创建网站快捷方式非常简单,下面就来看看操作截图吧。做个笔记备忘。...
IntelliJ IDEA找不到Subversion菜单问题解决 打开IDEA,发现找不到Subversion菜单了,无法更新、提交代码了。 网上找了一下解决了,记录一下解决办法: File -> Settings -> Plugins,搜索Subversion,在筛选出结果的方框上打勾,即可启动插件,然后重启IDEA即可恢复。 ...
Spring AOP的几篇好文章 记录一下看到的几篇好文: 彻底征服 Spring AOP 之 理论篇: https://segmentfault.com/a/1190000007469968 彻底征服 Spring AOP 之 实战篇: https://segmentfault.com/a/1190000007469982在同一个类中调用另一个方法没有触发 Spring AOP 的问题: https://segmentf
配置Log4J 转自:http://www.blogjava.net/zJun/archive/2006/06/28/55511.htmlLog4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。配置文件 Log4J配置文件的基本格式如下:配置根Loggerlog4j.
Java四舍五入 方法1:String result;DecimalFormat df = new DecimalFormat("0.0");df.setRoundingMode(RoundingMode.HALF_UP);result = df.format(0.13);result = df.format(0.15);result = df.format(0.16);这种算法是,五舍六入的。算法2:/*
spring自带的定时任务框架 在做定时任务时,可以使用Spring自带的定时任务框架。 使用scheduled-tasks例子: 在spring配置文件中加入如下代码即可:<task:scheduled-tasks scheduler="myScheduler"> <task:scheduled ref="beanA" method="methodA" fixed-delay="5000" initial-delay
Java properties文件中如何添加空格 java的properties文件中存储的是key=value格式的数据,例如: name1=value1 name2=value2 如果要在value1后面加上空格,怎么处理呢? 如果直接在value1后面加一个空格是无用的,读取的时候,空格会丢失。经过查资料,发现可以使用转义字符加上空格。 英文空格的unicode码是:\u0020 (中文空格的unicode码是:\u3000)
日常任务优先级管理 作为一个开发人员,我们经常会接到一堆开发任务,这些任务常常表现的都很急,都需要尽快完成。但是我们精力是有限的,也不能像CPU那样并发执行任务,任务再多也只能一件一件的去做。那么,怎么对这些任务排序呢?下面讲解一个我从知乎上看到方法,可以很快把任务排列出一个合理的先后顺序。假设有如下任务: 1、修复线上紧急Bug; 2、增加一个统计用户活跃次数的功能; 3、有个功能操作繁琐,体验较差,需要改善;
数据库事务的特点与隔离级别 事务的四个特点百度百科:数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性
HashMap类 简要说明HashMap内部存储采用的是一个一维数组,数组长度为2的倍数。数组默认大小为16,如果指定初始化大小为N,则数组长度为小于等于N的最大偶数(2的倍数)。通过key将value映射到数据中的某个位置,发生位置冲突时,使用数组元素的next指针(引用)将发生冲突的元素连接起来,构成一个链表结构,最新存入的元素放在链表最前面。 HashMap存储结构HashMap存储元素的数组定义如下:/**
LinkedList类 LinkedList采用双向链表方式实现列表集合。LinkedList的链表有个头节点header,header不存储数据,起到标记作用,又成为哑节点。每个节点都有两个引用:previous和next,previous指向前一个节点,next指向后一个节点。链表的首位是相连的,成了一个环状结构,使用next可以从头到尾遍历链表(正向环),使用previous可以从尾部向头部遍历链表(反向环)。 通
ArrayList类 ArrayList<E>内部实际上使用了一个Object数组来存储数据,并非真实的泛型,通过无参构造方法创建的ArrayList,其默认的初始化大小为10。ArrayList<E>扩容的本质是创建新数组,然后复制元素来实现的。插入元素可能会导致移动插入位置之后的所有元素,每次插入元素,都需要检查数组大小,以决定是否需要扩容。获取元素是从Object数组中取出元素,然后强制转换成<E>的类型。
Serializable接口 通过实现Serializable接口,可以让一个类的拥有序列化和反序列化的能力。可序列化类的所有子类,都可以序列化。这个接口没有任何的方法定义,它仅仅只是标记某个类能都被序列化和反序列化。想让一个非序列化类的子类拥有序列化能力,这个子类在反序列化的时候,需要恢复父类的public、protected以及其它可以访问的字段,子类通过调用父类的无参构造方法,在反序列化的时候,恢复父类(可访问)字段。如果
Cloneable接口 Cloneable是一个标记接口,没有任何方法。它仅仅表示,它的实现类能够使用继承自java.lang.Object的clone()方法,进行字段级别的拷贝。在一个没有实现Cloneable接口的类的实例(instance)上调用clone()方法,会导致抛出CloneNotSupportedException异常。同时,实现了Cloneable接口的类,应该重写clone()方法,并把clone(