随笔分类 - Java
摘要:Struts2poi导出excel最近实习的项目中做了个导出,记录一下方便以后使用:Action:privateInputStreamexcelFile;privateStringdownloadFileName;Setter&GetterpublicStringgetDownloadFileName(){SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-dd");StringdownloadFileName=(sf.format(newDate()).toString())+"项目信息.xls";t
阅读全文
摘要:最近做毕业设计用了一个叫做kindeditor的文本编辑工具,相信很多人都用过,这货和fckeditor差不多,个人感觉这个的皮肤更好看,而且对中文的支持更好,没那么容易出现中文乱码问题。下次记录一下自己的简单用法:1,首先去官网下载http://www.kindsoft.net/2,解压之后如图所示:由于本人做的是用的是JSP,所以ASP,PHP什么的就用不上了,直接把那些去掉然后将整个文件夹扔进Myeclipse,如图:里面有个报错,估计是我自己IDE的问题,没有处理照常使用。3,就可以开工写JSP了,下面把自己的一个JSP的代码贴出来,页面代码神马的不太规范,凑合着当示例,能跑通就行;&
阅读全文
摘要:public class Sequence { public static void main(String[] args) { int n = 5; // 0:向右,1:向下,2:向左,3:向上 int direction = 0; // 行,列 int row = 0, col = 0; int num = 0; int[] array = new int[n * n]; while (array[row * n + col] == 0) { num++; array[row * n + col] = num; switch (direction) { ...
阅读全文
摘要:一、Random1、创建Random类型的对象: Random random = new Random();//默认构造方法Random random = new Random(10010010);//指定种子数字 2、生成随机数字: 生成随机整数:int k = random.nextInt(); 生成随机长整数:long l = random.nextLong(); 3、生成指定范围的数字: 例如生成0-10之间的随机数字: int k = random.nextInt();int j = Math.abs(k % 10); //直接方式:rand.nextInt(range);int i
阅读全文
摘要:Struts2的Action并未直接与任何Servlet API耦合,要想访问Servlet API,可以通过ActionContext这个类来实现:在action中定义如下方法:Java代码 public String actionContext() { ActionContext ctx = ActionContext.getContext(); ctx.getApplication().put("application", "application范围"); ctx.getSession().put("session", &qu
阅读全文
摘要:为了方便ajax调用传输数据,在struts2中加入的json插件用来做对象的序列化和反序列化,json插件可以在Struts2压缩包中的lib目录下找到。3.将struts.xml里面的Xml代码 <package name="default" extends="struts-default"> 改为Xml代码 <package name="default" extends="json-default"> 4.Action中的配置Xml代码 <action name="te
阅读全文
摘要:包java.io定义了很多用来读和写流数据或连续数据的类,其中类InputStream和OutputStream是用来读和写字节流的,而类Reader和Writer是用来读和写字符流的。流是可以嵌套的,也就是说我们可以从FileterReader对象中读取字符,FileterReader对象是用来从潜在的Reader流中读取并处理字符的。这种潜在的Reader流可以从InputSteam中读取字节,在把这些字节转换成字符。其实我们可以用流来执行很多共同的操作,下面的这个例子就是在操作平台上读取输入的用户信息:BufferedReader console= new BufferedReader(
阅读全文
摘要:Java中定义了很多不同的类来处理日期和时间。java.util.Date类代表的是当前时间(精确到毫秒)。该类只是对一个长整数进行封装,它保存的是自格林尼治标准时间1970年1月1日零时起开始经过的毫秒数。下面给出了两种计算当前时间的方法:Long t0=System.currentTimeMillis();//以毫秒表示的当前时间java.util.Date now= new java.util.Date(); //实际上是一回事Long t1= now.getTime(); //把日期型转换成长整数类型Date类包含很多非常有趣的方法,但是这些方法大部分都已经废弃不用了,现在我们更多地使
阅读全文
摘要:委派模型上一篇提过BootstrapLoader所做的初始工作中,除了做一些基本的初始化动作之外,最重要的就是载入定义在sun.misc命名空间底下的Launcher.java之中的ExtClassLoader,并设定其parent为null,然后BootstrapLoader再载入定义在sun.misc命名空间底下的Launcher.java之中的AppClassLoader,并设定其parent为之前产生的ExtClassLoader实例。这就产生了所谓的类加载器阶层体系,如下图:而之所以有阶层体系的存在,是为了实现委派模型。所谓的委派模型,用简单的话来说,就是类加载器有载入类的需求时,会
阅读全文
摘要:一切都是由BootstrapLoader开始:类加载器的阶层体系Java程序在编译之后会产生许多的执行单位(.class),当我们执行主类时(publicstaticvoidmain(Stringarg[])方法的类),才由虚拟机一一载入所有需要的执行单位,变成一个逻辑上为一体的Java应用程序。下面将细部讨论这整个流程。当我们在命令行输入javaxxx.class时,java.exe根据我们之前所提过的逻辑找到JRE,接着找到在JRE之中的jvm.dll(真正的Java虚拟机),最后载入这个动态连结函数库,启动Java虚拟机。虚拟机一启动,会先做一些初始化的动作,比方说抓取系统参数等。一旦初
阅读全文
摘要:了解了类加载器的来龙去脉,你将可以让你的程序具有强大的动态性----在Java虚拟机不重启的情况下做出具有载入新类的功能;不关闭Java虚拟机的情况下,释放类所占用的记忆体,记忆体不会因为充满了同一个类的多个版本而面临记忆体不足的窘境。类加载器的功能,就是把类从静态的硬盘里(.class文件),复制一份放到记忆体之中,并做一些初始化的工作,让这个类“活起来”,其他人就能够使用它的功能。类加载器是构成JRE的其中一个重要成员。自己编写的类只会在用到的时候才载入,称为依需求载入;基础类库是一次性载入的,称为预先载入,这是因为基础类库里头大多是Java程序执行时必备的类,所以为了不要老师做浪费时间的
阅读全文
摘要:JDK、JRE、JVM之间的关系:首先看看JDK与JRE的区别,如下图所示:JKD1.4版本与JDK1.3版本会有一点点不同:从上图知,如果您安装了JDK,那么你的电脑地下一定会有两套JRE、一套位于<jdk安装目录>\jre底下,另一套位于C:\ProgramFile\JavaSoft底下(JDK1.4则是放在C:\ProgramFile\Java底下)。如果你只下载了JRE而非JDK,那么就只会在C:\ProgramFile\JavaSoft底下安装唯一的一套JRE。那么JRE的作用是什么?如图JRE和PC的类比:由图可知JRE的地位就像一台PC一样,WIN32程序需要作业系统
阅读全文