java常用重点回顾
文章平均质量分 62
java基础知识中的重点知识个人理解以及java开发过程中遇到的重要问题点回顾和汇总。后续不断更新。
Tatum_99999
java开发
展开
-
java代码中init method和destroy method的三种使用方式
在java的实际开发过程中,我们可能常常需要使用到init method和destroy method,比如初始化一个对象(bean)后立即初始化(加载)一些数据,在销毁一个对象之前进行垃圾回收等等。 周末对这两个方法进行了一点学习和整理,倒也不是专门为了这两个方法,而是在巩固spring相关知识的时候提到了,然后感觉自己并不是很熟悉这个,便好好的了解一下。 根据特意的去了解后,发现实际上可以有原创 2016-12-12 11:15:44 · 42708 阅读 · 4 评论 -
项目优化总结
最近一个多月算是比较忙的,但是具体忙了什么却不太好说清楚,主要是因为做的事比较繁琐还不太容易量化,说简单点,就是和组内其他几个同事一起接手一个算是开发好的项目,并进行一定的优化。 说到这个项目,就需要先说一下我们公司的一些情况。 我们公司算是众多外包公司的一员,公司内的人员架构可以按两种类别来说,一种说法是本公司员工和其他公司的员工;另一种说法是,外援和厂商。这里的外援说白了就等于是人员外包,有原创 2016-11-23 17:02:05 · 6358 阅读 · 0 评论 -
使用poi和jfreechart生成excel图表图片
最近项目在频繁的操作excel,里边涉及到很多和图表有关的东西。有时候需要使用java操作excel自带的图标,比较复杂的我们都是使用excel模板的形式实现。 除此之外,也有一些功能只需要生成对应的图标样式的图片就好,我们实现的时候主要用了两种方式,一种就是由前台生成图片base64码,然后后台解码生成图片插入到excel,但是这种方式有 一定的局限性,也就是当某些功能需要后台定时生成excel原创 2016-09-19 11:17:05 · 8711 阅读 · 2 评论 -
项目总结1——excel导出相关问题
1、excel导出文件时,文件名中中文部分空白不显示的问题,原本写法是:String fileName = "物联网PBOSS主机巡检日报-" + inspectTime + ".xls";response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("GBK原创 2016-09-08 12:28:32 · 1260 阅读 · 0 评论 -
java使用poi读取doc和docx文件
这几天在学习java io流的东西,有一个网友看到博客后问了一个问题,就是说他的doc文档为什么用我所说的方法死活就是乱码。 我一开始以为是他方法问题,结果自己试了之后发现和他的结果一样也是乱码。 于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝试后,终于以正确的编码格式读取了这个doc文件。原创 2016-07-22 10:53:02 · 57267 阅读 · 54 评论 -
java字符流
网上有很多地方说inputStreamReader和outStreamWriter、BufferedReader和BufferedWriter都是字符流。不过也有地方说inputStreamReader和outStreamWriter只是转换流,实现字节流到字符流的转换。 而在我看来,两种说法都有道理,如果一定要分个高下的话,那就更加趋向于认同前一种。 因为只要和FileInputStr原创 2016-07-21 14:25:47 · 2436 阅读 · 0 评论 -
java常用字节流
常用的字节流有FileInputStream和FileOutputStream、BufferedInputStream和BufferedOutputStream、DataInputStream和DataOutputStream。FileInputStream和FileOutputStream是基础的字节输入和输出流,通常在创建缓冲流时需要使用到,也可以用来做文件复制的功能。 * fileInput原创 2016-07-21 09:55:57 · 2929 阅读 · 0 评论 -
file和file文件流
**io流是程序中比较常用的功能,基本上涉及到文件上传下载的都要用到这功能,比如上传头像,上传附件等等。 对于一个java程序员来说,io流也是必须掌握的,因此这里对比较常用的或者说曾经用过的方法进行简单的归纳和总结。**对于io流,百度百科的解释是: 流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,原创 2016-07-20 12:13:29 · 4471 阅读 · 2 评论 -
java发送邮件时遇到的坑
之前用163邮箱发邮件时明明是成功的,但是使用中国移动自己的邮箱时,无论如何在linux服务器中都发送不成功,一开始报如下错误:javax.mail.MessagingException: Unknown SMTP host: mail.chinamobilesz.com at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTrans原创 2016-06-15 11:31:40 · 14407 阅读 · 1 评论 -
eclipse生成【带有外部jar包】的java可执行jar包
之前有写过一篇使用eclipse生成java可执行jar包,但是最近的一次使用中无论如何都不成功,当双击执行打成的jar时,弹出如下错误:couldnotfindthemainclass:mailTest.SendMailTest1.Programwilexit针对这一问题,我首先想到在上一次编写java聊天小程序打包时的问题,也是这个错误,当时网上说需要更改e...原创 2016-06-15 10:42:14 · 9007 阅读 · 0 评论 -
java代码调用使用cxf搭建的webService服务传递对象
前边成功创建好一个cxf的webServcie服务,并带了一个无参数的方法。现在进一步尝试了使用带参数的方法,分别测了用String为参数和用自定义的对象为参数。其中,使用String为参数时和不带参数的写法没有什么区别,调用时也就是很普通的调用。但是调用自定义对象为参数的方法时,实际数据并没有传递成功,于是在网上搜索一番后找到了解决办法,成功实现这一功能。具体实现步骤大致如下:1、在服务项目中添原创 2016-06-12 10:18:01 · 9593 阅读 · 0 评论 -
使用CXF和spring搭建webService服务
虽然下一个项目需要使用xfire,但是在查资料的过程中还是看到有不少地方都说cxf比xfire更好,cxf继承了xfire,但是不仅仅包含xfire,因此便也一起来尝试尝试。大概是有了xfire的经验吧,cxf的搭建比xfire快了许多。cxf的许多参数感觉和xfire差不多,因此便不做太多的解释,如果不明白的可以参考之前的xfire搭建来促进理解。搭建过程如下:1、使用eclipse创建一个ma原创 2016-06-08 17:33:57 · 4928 阅读 · 0 评论 -
java程序调用xfire发布的webService服务(二)
在上一篇的调用xfire发布的webService服务中,我只是从服务端返回了一个字符串给客户端,却没有测试从客户端传递数据给服务端。而实际应用中一般是不太可能只出现这样的应用场景的,因此我便更进一步测试了客户端传递数据给服务端。因为相关的jar包在上一篇已经说过,因此便不再重复说明,这次的测试步骤如下:一、测试向服务端传递字符串(重点在第二个): 为了进一步理解服务搭建,我重新写了一个服务原创 2016-06-08 13:02:36 · 6363 阅读 · 0 评论 -
java程序调用xfire发布的webService服务
昨天用xfire搭好了一个简单的webService的服务,可以在浏览器访问,今天便想要尝试以下如何调用这个服务及相关的方法。在网上查找了一些资料后,实现过程如下。1、创建一个maven web项目,并创建一个带有main方法的类。2、导入xfire依赖的一些jar包,为了简单起见,我就把搭建服务端时的jar包都考了过来,放在lib文件夹下,然后如上一篇搭建时一样把jar加入到build path原创 2016-06-07 11:18:29 · 8486 阅读 · 0 评论 -
使用xfire搭建webService服务
后边有个项目需要接入4A,要用到webService服务,暂时还不确定是不是会有我的事,但为了有备无患,还是抽时间学习了以下相关的知识。本来我所了解到的发布webService服务有用cxf和xfire两种,但这个项目明确说了需要用xfire,因此便先学习一下这个。参考网上一些文档,搭建的过程大概如下:一、环境基础:eclipse4.4.1、maven3.2.5、tomca原创 2016-06-06 16:46:39 · 5679 阅读 · 2 评论 -
JAVA代码发送邮件示例和解释(二)
之前有使用过一次在程序中发邮件的功能,也写了一篇相关的笔记,当时使用的是163邮箱,经过测试多个163账号都是可行的。但是最近把账号换成中国移动@chinamobilesz.com这种结尾的时候,却一直连接不上服务器,验证不通过,于是只好重新进行了一些改动,这期间也有参考另一个同事之前的写法,成功实现。这种实现方式和上一种大同小异,只是经过测试后,这种方式不仅163的邮箱没有问题,中国移动@chi原创 2016-06-06 09:12:33 · 3995 阅读 · 1 评论 -
java定时任务(三):timerTask定时任务
这种方式是纯粹的java代码,需要继承timerTask接口并重写run方法,创建这个类的时候就会调用run方法。基本的使用逻辑是:把自己需要处理的业务逻辑放在自己写的这个继承了timerTask的类中,然后new一个timer并调用schedule方法,在schedule中设定一个新的自己类的对象为参数,同时配置其他时间信息,示例如下:package scheduleTe原创 2016-06-03 13:03:36 · 3477 阅读 · 0 评论 -
spring schedule定时任务(二):配置文件的方式
接着上一篇,这里使用spring配置文件的方式生成spring定时任务。1、相应的web.xml没有什么变化,因此便不再罗列。同样的,相应的java代码业务逻辑改动也不大,只是在原来的基础上去掉@Component和@Scheduled(cron="0/5****?")参数,也就是把这个类和方法变成一个最简单的java类和方法就可以了。2、既然是配置文件的方式原创 2016-06-03 10:52:33 · 10340 阅读 · 0 评论 -
spring schedule定时任务(一):注解的方式
我所知道的java定时任务的几种常用方式:1、spring schedule注解的方式;2、spring schedule配置文件的方式;3、java类继承TimerTask;第一种方式的实现:1、使用maven创建spring项目,schedule在spring-context.jar的包下边,因此需要导入与之相关的包;同时,我配的是spring ...原创 2016-06-03 09:05:59 · 35048 阅读 · 14 评论 -
win8.1中安装rabbitmq
项目测试的时候,用的是项目组linux测试机上的rabbitmq,为了方便自己随时使用,便在自己的电脑win8.1上也安装了一套,安装过程如下:一、准备erlang和rabbitmq的安装程序: otp_win64_17.4.exe rabbitmq-server-3.5.3.exe二、安装和配置erlang: 双击otp_win64_17原创 2016-05-30 18:44:56 · 3668 阅读 · 0 评论 -
md5加密用户登陆遇到的问题及解决办法
有个项目的登陆模块使用到了cas,应需求要求,用户名和密码传输时使用了md5加密模式,加密的密码可以直接保存在数据库,但是加密的用户名则必须解密出来才行,于是后台的java代码中便写了针对用户名的解密代码。而前台,是在输完用户名和密码后,点击登陆按钮的时候调用相应的方法进行加密并发请求传输。但是测试过程中却发现了一个问题,就是在有的时候输完用户名、密码和验证码以后回车,后台会报如下的数组下标越界的原创 2016-05-24 16:17:43 · 7370 阅读 · 0 评论 -
java Socket实现简单在线聊天(三)
在上一篇,利用线程使服务端实现了能够接收多客户端请求的功能,这里便需要客户端接收多客户端消息的同时还能把消息转发到每个连接的客户端,并且客户端要能在内容显示区域显示出来,从而实现简单的在线群聊。在实现客户端转发,无非就是增加输出流;而之前客户端都只发不收,这里也需要更改客户端达到循环接收服务端消息的目的,因此也需要实现多线程。在实现这个功能的时候,偶然想起随机生成验证码的功原创 2016-05-19 18:08:12 · 12151 阅读 · 0 评论 -
java Socket实现简单在线聊天(二)
接《javaSocket实现简单在线聊天(一)》,在单客户端连接的基础上,这里第二步需要实现多客户端的连接,也就需要使用到线程。每当有一个新的客户端连接上来,服务端便需要新启动一个线程进行处理,从而解决之前的循环读取中造成阻塞的问题。写线程通常有两种方法,集成Thread或者实现runnable接口,原则上是能实现runnable的情况下就不继承,因为实现接口的方式更加灵活。原创 2016-05-19 17:51:58 · 5976 阅读 · 0 评论 -
问题解决了,可是为什么呢?could not find the main class.program will exitmain
今天重新学习socket编写简单的在线聊天,简单功能实现的情况下,一时心血来潮便想要把这程序打成可执行的jar包,以便于在桌面直接双击运行。参照自己之前写的那篇《》打好两个jar包以后却发现双击运行弹出如下错误:could not find the main class.program will exitmain错误如图所示:看到这错误,我不由的开始怀疑是否自己打包的过程有误,但是仔仔细细再看几遍原创 2016-05-18 22:51:07 · 9752 阅读 · 0 评论 -
java Socket实现简单在线聊天(一)
最近的项目有一个在线网页交流的需求,由于很久以前做过的demo已经忘记的差不多了,因此便重新学习一下。我计划的大致实现步骤分这样几大步:1、使用awt组件和socket实现简单的单客户端向服务端持续发送消息;2、结合线程,实现多客户端连接服务端发送消息;3、实现服务端转发客户端消息至所有客户端,同时在客户端显示;4、把awt组件生成的窗口界面改成前端jsp或者html展原创 2016-05-18 12:20:31 · 12814 阅读 · 4 评论 -
cookie、session和java过滤器
基础知识理解:cookie、session和过滤器通常都是用在web应用中,cookie和session用来保存一定的数据,过滤器Filter则是在浏览器发出请求之后,而后台执行特定的请求之前发生一定的作用。之所以把这三个放一起,是因为有很多时候都会是把他们结合在一起使用,例如有些登陆程序。cookie是浏览器的机制,session是服务器的机制,但是实际上cookie原创 2016-05-15 21:17:43 · 6747 阅读 · 0 评论 -
calendar中set方法和静态属性带来的坑
坑在哪里:在我之前接触的一个项目中涉及到这么一项功能:每天00:00:00把某些数据移动到mongodb数据库的另一个集合中,也就是关系型数据库的表中。这个集合名是一个固定的名称加上当前的两个月前的日期所在的年和月份。这个功能是在我接触这个项目之前就已经存在,也就是之前的同事实现的功能,写了一个java的定时任务。那个同事如今已经不在我们公司了,但是最近却发现这原创 2016-05-13 12:23:14 · 4080 阅读 · 3 评论 -
java程序转换excel中科学记数法的数据为date类型
今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能。但是导出后出现了一个问题,里边有一列存储时间的,存储的是long型毫秒数,在导出后就自动变成了科学记数法。且不说从科学记数法中辨别出实际时间,即便是原本的毫秒值也是不易于辨别的,但是这些long值不能直接在excel中转换成date类型,因此我原创 2016-05-12 17:59:14 · 3117 阅读 · 0 评论 -
JAVA代码发送邮件示例和解释
下载和上传附件、发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,好在昨晚终于走通代码成功以163邮箱发送邮件到qq邮箱,以下是相关代码,具体解释可以参考代码中注释:package test;import java.util.ArrayList;import java.util.Date;import原创 2016-05-12 09:15:59 · 4432 阅读 · 2 评论 -
IE浏览器因缓存问题未能成功向后端发送请求的几个解决办法
这段时间前后端联调,解决IE、谷歌等浏览器兼容问题,真是让人有点焦头烂额,各种奇葩问题层出不穷,旧问题刚去,新麻烦又来,其中尤其以IE浏览器缓存的问题最多。有若干次都是因为这个缓存,使得前端的请求没有实际到达后台,造成304状态码。经过前端同事和我的各种尝试,发现有三四种办法可以针对不同的情况解决这个问题。方法一:在网上一搜“html设置不缓存”就会看到大部分的答案都是这个,那就是在之前的一篇博文原创 2016-05-09 18:20:47 · 4686 阅读 · 2 评论 -
servlet简单用法和配置示例及说明
学习原因和目的:我如今所接触的项目都是bs模式的web应用,而里边基本上都是用的spring MVC和前台交互,servlet貌似用的很少。但是即便是用spring和spring MVC,项目中依旧是少不了web.xml文件,而这里边的配置看来看去根本就是servlet的配置。因此为了更好的理解这些配置,我想还是需要从servlet入手。se原创 2016-05-06 18:47:41 · 14050 阅读 · 2 评论 -
同前端联调遇到的坑(二)
一、出现的问题项目在测试阶段出现了一些问题,在有一个页面进行增加或删除数据后刷新,页面没有任何反应。查看增加或修改的请求,响应是200状态,提示新增或删除成功,但是页面刷新后无论是条数还是详细数据都没有变化,该多的不多,该少的也不少。而且看到新增或删除后的查询请求,返回状态码是304,也就是说页面重定向了。由于这一模块相关的前端代码不是现在的这个同时负责,因此他也是一顿好找。二、失败的解决方案一开原创 2016-05-05 15:31:59 · 4269 阅读 · 0 评论 -
Date和Calendar时间操作常用方法及示例
package test;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/*** Date和Calendar常用方法,Date很多方法已经弃用,因此以Calendar为主** @author tuzongxun123*原创 2016-05-03 10:09:15 · 6625 阅读 · 0 评论 -
Java使用poi操作cexel
java操作excel比较简单,但是时间长了就会忘记,因此基本的简单操作做个记录。依赖poi的jar包,pom.xml配置如下:<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/原创 2016-04-29 18:48:03 · 8632 阅读 · 0 评论 -
使用springMVC实现文件上传和下载之文件下载
接上一篇,文件下载需要获取下载文件的存储路径,这里只是手动填入,如果是在具体项目中,可以把文件名和上传后的存储路径保存在数据库中。然后增加一个文件列表的页面展示文件名和文件路径,然后点击下载的时候把相应的文件名和路径传到后台操作。/** * 文件下载,需要文件名和文件地址 * * @author:tuzongxun * @Title: download原创 2016-04-28 19:15:39 · 10658 阅读 · 3 评论 -
使用springMVC实现文件上传和下载之环境配置与上传
最近的项目中用到了文件的上传和下载功能,任务分配给了其他的同时完成。如今项目结束告一段落,我觉着这个功能比较重要,因此特意把它提取出来自己进行了尝试。一、 基础配置:maven导包及配置pom.xml,导包时除开springmvc的基础依赖外,需要导入文件上传下载时用到的commons-io.jsr和commons-fileupload.jar:<project xmlns原创 2016-04-28 18:03:23 · 20890 阅读 · 6 评论 -
同前端联调过程中遇到的坑
最近在和前端联调的过程中,发现有个数据他们老是传不到后台,于是在网上查了一下资料后发现原来是disable属性在作乱,更改后解决问题,记录下来备忘。参考:http://www.3lian.com/edu/2013/06-22/75978.html1、2、这两种写法都会使显示出来的文本框不能输入文字,但disabled会使文本框变灰,而且通过request.getParameter("nam原创 2016-04-25 17:48:24 · 5030 阅读 · 2 评论 -
java中用中国网建提供的SMS短信平台发送短信
接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下。大体上说的都是有三种方法,分别是sina提供的webservice接口、短信mao和中国网建提供的SMS短信平台。 这三种方式,因为第一种和第三种都经过了别的平台转发,因此具有一定的安全隐患,第二种短信mao的方式相对可能要安全一些。 但是短信mao需要购买硬件设备,因此我便只好参考网上的文章先实现了用sm...原创 2016-04-13 20:43:49 · 5414 阅读 · 13 评论 -
eclipse安装反编译插件
在开发过程中经常要导入一些jar包,有的时候想要看一下源码却发现点进去了看不到,原因可能是没有在eclipse中安装反编译插件,今天我就在自己的eclipse中安装了这个插件,步骤如下:1、下载jadClipse 的jar包:http://sourceforge.net/projects/jadclipse/2、将jar包复制到eclipse安装文件的plugins目录下3、再删除...原创 2015-06-03 11:33:32 · 961 阅读 · 0 评论 -
java运用Comparator为对象排序
要排序的类需要实现Comparator接口,重写compare方法:user类及实现接口的内部类:package test;import java.util.Comparator;public class User { private String userName; private int age; public String getUserName() { retu原创 2016-01-20 19:52:26 · 1447 阅读 · 0 评论