
Java基础
文章平均质量分 88
介绍Java一些比较基础,但又比较重要的内容。
elim168
这个作者很懒,什么都没留下…
展开
-
Java与XML映射利器
Java与XML映射利器熟悉Hibernate的朋友都知道,它可以把Java类和数据库表进行映射,通过操作Java对象的方式可以对表记录进行更新。这可以大大增加我们的开发效率,免去自己直接通过JDBC操作数据库表的繁琐过程。其实Mybatis也是类似的,只不过它是半自动的,需要自己写SQL。在利用Java开发基于XML的操作时你会不会也想要一款可以直接基于Java类建立对应的XML的映射关系,然后可原创 2017-12-23 14:14:35 · 3346 阅读 · 0 评论 -
Java Webservice指定超时时间
Java Webservice指定超时时间使用JDK对Webservice的支持进行Webservice调用时通常的操作步骤如下://1、创建一个javax.xml.ws.Service实例javax.xml.ws.Service service = javax.xml.ws.Service.create(wsdl, serviceName);//2、通过Service实例获取对应的服务接口的原创 2017-09-25 23:32:35 · 17026 阅读 · 1 评论 -
Log4j分级别记录日志文件
在记录日志的时候通常我们都希望不同级别的日志能够分别记录在不同的日志文件中,然后有一个汇总的日志文件记录所有的日志信息,因为在大多数情况下我们可能只会关注那些Error级别的日志信息。利用log4j去记录这些信息是比较简单的,我们可以配置多个不同的appender,然后每个appender对应的threshold指定需要过滤的不同级别。Appender的threshold属性默认是为空的,即表示不原创 2017-06-28 08:41:39 · 6403 阅读 · 0 评论 -
基于大量数据的Excel文件生成方案
基于大量数据的Excel生成方案以往我们在基于POI生成Excel文件时,都是利用官方提供的HSSF或XSSF对应的系列API,它们操作简便,上手比较快。但是对于大数据量的Excel文件生成往往会比较耗时,这是我们利用标准的API进行开发的一个痛点。对于性能更高一点的API,POI官方会建议我们使用SXSSF系列API,虽然它的性能比起HSSF和XSSF会有很大的提高,但是面对大量数据的时候还是会原创 2017-06-28 08:33:35 · 6846 阅读 · 3 评论 -
Servlet3.0模块化支持
le示例支持Servlet3.0模块化支持 Servlet3.0现在已经支持各Web组件的模块化了。也就是说现在我们可以把各Web组件单独拿出来进行开发,之后把它们打成对应的jar包放到主项目中就可以了,而不必像之前那样——所有的内容都必须在web.xml文件中进行定义。有了对模块化的支持后我们在实际应用中就可以把某些通用功能的Filter、Listener、Servlet作为一个单原创 2017-06-27 12:29:39 · 5680 阅读 · 0 评论 -
Servlet3.0过滤器
注解 Servlet3.0过滤器 Servlet3.0里面的过滤器跟以前版本的一样,还是需要实现javax.servlet.Filter接口。Filter接口中定义了三个方法,init(FilterConfig filterConfig)、destroy()和doFilter(HttpRequest request, HttpServletResponse response, Fil原创 2017-06-27 08:56:41 · 6023 阅读 · 0 评论 -
支持注解的Servlet3.0监听器
支持注解的Servlet3.0监听器 Servlet3.0中的监听器跟之前2.5的差别不大,唯一的区别就是增加了对注解的支持。在3.0以前我们的监听器配置都是需要配置在web.xml文件中的。在3.0中我们有了更多的选择,之前在web.xml文件中配置的方式还是可以的,同时我们还可以使用注解进行配置。对于使用注解的监听器就是在监听器类上使用@WebListener进行标注,这样Web原创 2017-06-26 17:05:01 · 6686 阅读 · 0 评论 -
Servlet3.0中Servlet的使用
相对于之前的版本,Servlet3.0中的Servlet有以下改进:l 支持注解配置。l 支持异步调用。l 直接有对文件上传的支持。 在这篇文章中我将主要讲这三方面的应用示例。 1.注解配置 在以往我们的Servlet都需要在web.xml文件中进行配置(Servlet3.0同样支持),但是在Servlet3.0中引入了注解,我们只需要在对应的Servlet类上使用原创 2017-06-26 08:49:21 · 6455 阅读 · 0 评论 -
为什么switch case语句需要加入break
假设我们有如下这样一个switch语句:Java代码 public static void test(int index) { switch (index) { case 1: System.out.println(1); case 2: System.out.println(2); case 3: S原创 2017-06-26 08:43:40 · 12757 阅读 · 0 评论 -
Java枚举类型介绍
简介 Java的枚举类型用于在某些东西可以枚举出来的时候,我们可以把它定义为枚举类型,然后把其中包含的可选值一一枚举。打个比方,我们现在有一堆数字,大致可以分为四种类型,整型、浮点型、金额和百分比。整型的我就需要按整型显示,如果是浮点型则要求保留两位小数,如果是金额则要求按千分位展示,如果是百分比则要求显示对应的百分比。为此我们就定义了一个枚举类型NumberType,其一共四个枚原创 2017-06-23 10:23:39 · 7071 阅读 · 0 评论 -
Java SPI机制简介
SPI是Service Provider Interfaces的简称。根据Java的SPI规范,我们可以定义一个服务接口,具体的实现由对应的实现者去提供,即Service Provider(服务提供者)。然后在使用的时候只要根据SPI的规范去获取对应的服务提供者的服务实现即可。为了便于理解,我们先来看一个使用SPI的示例。 假设我们有一个日志服务LogService,其只定义了一个原创 2017-06-23 08:48:51 · 10328 阅读 · 1 评论 -
HashMap、HashSet、TreeMap、TreeSet判断元素是否存在的逻辑
解析HashMap、HashSet、TreeMap、TreeSet判断元素是否存在的逻辑。原创 2017-06-22 10:43:54 · 11304 阅读 · 0 评论 -
实现对properties文件的有序读写
最近遇到一项需求,要求把properties文件中的内容读取出来供用户修改,修改完后需要再重新保存到properties文件中。很简单的需求吧,可问题是Properties是继承自HashTable的,直接通过keySet()、keys()或entrySet()方法对Properties中的元素进行遍历时取出来的内容顺序与properties文件中的顺序不一致,这是问题一;问题二是就算取出来的时候原创 2017-06-22 10:41:10 · 7456 阅读 · 0 评论 -
压栈思想计算Java运算表达式
基于计算字符串形式的四则运算表达式介绍java.util.Vector和java.util.Stack的应用。原创 2017-06-22 09:10:57 · 7097 阅读 · 0 评论 -
Java Socket编程
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这样就有两个Socket了,客户端和服务端原创 2017-06-21 14:00:32 · 7480 阅读 · 4 评论 -
字符串分割,你会吗?
对于字符串的分割主要有两种方式,使用String的split方法和使用StringTokenizer。现在假设我们有一个字符串“||a|b||c|d|||”,然后我们需要使用“|”来对它进行分割。那么如下两段代码你觉得输出结果会是什么呢?Java代码 public static void main(String args[]) { String str = "||a|b||c|d|||原创 2017-06-21 09:37:26 · 6563 阅读 · 0 评论 -
如何正确遍历删除List中的元素,你会吗?
遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式:1.通过增强的for循环删除符合条件的多个元素2.通过增强的for循环删除符合条件的一个元素3.通过普通的for删除删除符合条件的多个元素4.通过Iterator进行遍历删除符合条件的多个元素 Java代码 /** * 使用增强的for循环 * 在循环过程中从List中删除原创 2017-06-21 08:45:00 · 9269 阅读 · 0 评论 -
java压缩和解压缩Zip、Jar、Gzip文件
我们经常会使用WinZIP等压缩软件将文件进行压缩以方便传输。在java里面也提供了将文件进行压缩以减少传输时的数据量的类,可以很方便的将文件压缩成ZIP、JAR、GZIP等形式,GZIP主要是在Linux系统下的压缩文件。下面主要讲的就是ZIP形式的压缩文件,而JAR、GZIP形式的压缩文件也是类似的用法。ZIP是一种很常见的压缩形式,在java中要实现ZIP的压缩主要用到的是java.util原创 2017-06-20 09:13:51 · 6845 阅读 · 0 评论 -
RSA签名与验签
RSA签名与验签RSA算法除了可以进行加解密以外,还可以用来签名与验签。RSA用来进行签名与验签时是使用私钥进行签名,公钥进行验签的。这点与加解密的时候刚好相反。加解密时使用公钥加密,私钥解密。签名和验签是通过Signature对象进行的。签名以下是一个使用Signature进行签名的示例。初始化Signature时指定将使用的签名算法是MD5withRSA,除了该算法外,Signature还支持原创 2017-06-20 09:07:33 · 8539 阅读 · 0 评论 -
RSA加密与解密
RSA加密与解密RSA算法的密钥由公钥和私钥组成,公钥用于加密,私钥用于解密。顾名思义,公钥就是可以进行公开的密钥,一般可以公开给你的合作伙伴;私钥就是私有的,也就是只有你知道的,你的合作伙伴通过你提供的公钥进行加密的内容只有你能进行解密,这样也就只有你知道他发的是什么内容。用于加密的公钥和私钥是配对的。这样的一对密钥在Java中由java.security.KeyPairGenerator来产生原创 2017-06-19 10:17:01 · 7271 阅读 · 0 评论 -
Java使用AES加解密
Java使用AES加解密目录1.1生成密钥1.2密钥的存储1.3获取存储的密钥1.4加解密1.5使用存储的密钥进行加解密示例 AES是一种对称的加密算法,可基于相同的密钥进行加密和解密。Java采用AES算法进行加解密的逻辑大致如下:1、生成/获取密钥2、加/解密 1.1生成密钥密钥的生成是通过KeyGenerator来生成的。通过获取一个KeyGenerator实例,然后调用其generateK原创 2017-06-19 09:21:41 · 20461 阅读 · 4 评论