
管中窥豹
_江南一点雨
Java攻城狮
展开
-
BeanUtils使用概要
BeanUtils是apache提供的的一个工具类,在很多地方我们都要用到这个类。下面说说这个类的简单用法。 相关的使用细节已经在代码的注释中说明了。 @Test public void test5(){ try { Person p = new Person(new Book()); //使用beanUtils给对象的原创 2015-04-29 19:23:38 · 8142 阅读 · 1 评论 -
Java 反射学习笔记
要学反射,先要了解Class这个类,Class是所有Java类的一个总称,Class的实例中存储的是一个类的字节码,获取Class的实例有三种方式:System.classnew Date().getClass()Class.forName(“java.lang.String”);Java不允许使用Class cla = new Class()这种方式获得一个Class的新实例,因原创 2015-04-28 16:02:35 · 7867 阅读 · 0 评论 -
使用内省方式操作JavaBean
内省,英文中称作introspector。主要对javaBean进行操作,JavaBean是一个特殊的Java类,该类中方法名符合特定的规则(其实就是getXXX,setXXX),我们一般是利用get,set方法来推断属性的名称,而不是直接根据属性来获得名称,因为属性都是私有的,而get,set方法都是共有的。推断规则:如果第二个字母为小写,则首字母小写,例如:getAge—>age setag原创 2015-04-29 16:16:09 · 7352 阅读 · 0 评论 -
浅析@Deprecated
如果有一个方法你觉得不合适,想要删除,但是别人已经引用了很多次,删除了会对他人的工作产生影响,那该怎么办? 加入@Deprecated注解即可,看代码: @Test public void test1(){ test2(); } @Deprecated public void test2(){ System.out.println原创 2015-04-29 23:19:55 · 18852 阅读 · 1 评论 -
JDK8新特性之接口
在JDK7及以前的版本中,接口中都是抽象方法,不能定义方法体,但是从jdk8开始,接口中可以定义静态的非抽象的方法,直接使用接口名调用静态方法,但是它的实现类的类名或者实例却不可以调用接口中的静态方法。也可以定义普通的非抽象的方法,普通的非抽象方法要在返回值前加上default,对于普通的非抽象方法必须使用子类的实例来调用。如果有多个接口定义了相同的默认方法,实现多个这些接口时必须重写默认方法,否则原创 2015-05-02 11:00:35 · 8024 阅读 · 0 评论 -
通过反射获得泛型的实际类型参数
不知道大家有没有尝试过怎样获得一个泛型的实际类型参数?其实这个功能在hibernate中有广泛的应用,那么具体的操作是怎样的呢? 首先,要想直接通过一个变量拿到泛型类型中的实际参数显然是不可能的,参考hibernate源码,只要把这个变量当作一个方法的参数,再通过反射就可以拿到该泛型类型的实际参数。public class GenericsTest { @Test public vo原创 2015-05-02 16:36:02 · 9357 阅读 · 0 评论 -
Dom4j 学习笔记
dom4j 是一种解析 XML 文档的开放源代码 XML 框架。dom4j下载地址 本文主要记载了一些简单的使用方法。一、xml文件的解析dom4j既可以解析普通的xml文件,也可以解析一个InputStream,先看看xml文件长什么样子:<books> <book> <id>1</id> <name>Java编程思想</name> <pr原创 2015-04-26 23:19:23 · 7427 阅读 · 0 评论 -
Java注解详解
注解相当于一个特殊的类。 定义一个简单的注解并使用,细节在注释中:MyFirstAnnotation.java/** * java在编译的过程中可能会把一些注解文件丢掉,使用 * @Retention(RetentionPolicy.RUNTIME)注解让该注解一直保存到运行阶段 * @Retention(RetentionPolicy.CLASS),保存到编译阶段,默认即此 * @Ret原创 2015-04-30 10:58:26 · 10188 阅读 · 4 评论 -
怎样向泛型集合中插入多种类型数据
泛型,只是在编译的过程中进行语法检查,查看集合中所存放的类型是否符合要求,在这种情况下,我能不能跳过编译器的检查,向一个存放Integer的List中存放一个String类型的数据? 这里要用到Java的反射机制: @Test public void test1(){ try { List<Integer> list = new ArrayLi原创 2015-04-30 18:51:58 · 9727 阅读 · 3 评论 -
Map遍历
Map的遍历有两种方式,个人感觉第二种用起来更方便一些: @Test public void test2(){ Map<String, Integer> map = new HashMap<String, Integer>(); map.put("zhangsan", 1000); map.put("lisi", 2000);原创 2015-04-30 20:59:46 · 7122 阅读 · 0 评论 -
怎样通过ajax提交数据
ajax的出现彻底改变了javascript命运,通过ajax可以直接向服务器提交数据,有两种方式:get方式,数据直接拼接在地址中 post方式,数据由data字段携带post方式,data中是参数。 $.ajax({ url:"http://localhost/contact2/user/list.do", type:"post", dat原创 2015-04-28 23:04:39 · 10266 阅读 · 3 评论 -
类加载器及其委托机制的深入分析
Java虚拟机可以安装多个类加载器,系统默认三个主要的类加载器,每个加载器负责加载特定位置的类: BootStrap,ExtClassLoader,AppClassLoader。类加载器本身也是一个Java类,因为其他Java类的类加载器本身也要被类加载器加载,所以肯定有一个类加载器不是Java类,这便是BootStrap,BootStrap嵌套在JVM内核中。Java虚拟机中所有类装载器采用具有原创 2015-05-03 10:58:12 · 6958 阅读 · 2 评论 -
jackson 学习笔记
Jackson以优异的解析性能赢得了好评,今天就看看Jackson的一些简单的用法。 Jackson使用之前先要下载,这里一共有三个jar包,想要获得完美的Jackson体验,这三个jar包都不可或缺。1.将一个类以json字符串的形式输出: //将一个类以json字符串的形式输出 @Test public void test1(){ ObjectM原创 2015-04-27 22:05:53 · 8153 阅读 · 0 评论 -
WebService学习笔记系列(三)
网上有一些提供webservice服务的网站,我们要怎么调用呢? 今天来看个如何调用手机归属地查询服务。这个网站上提供了许多webservice服务,其中包括手机归属地查询服务,我们今天就用wsimport的方式来调用这个服务: 打开这个页面,复制手机归属地查询的那个wsdl,然后打开命令行窗口,使用wsimport将需要的Java文件导出来: 拿到生成的Java文件后,拷贝到项目中,原创 2015-05-06 16:58:54 · 7031 阅读 · 0 评论 -
使用JAXB来实现Java合xml之间的转换
使用jaxb操作Java与xml之间的转换非常简单,看个例子就明白了。 //javaBean-->xml @Test public void test1() { try { JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Marshall原创 2015-05-08 19:27:27 · 7188 阅读 · 0 评论 -
WebService学习笔记系列(四)
今天主要来看看服务端的编写及发布。 服务端的编写主要包括三个步骤: 1.编写一个接口,即SEI(server endpoint interface) 2.编写接口的实现类,即SIB (server implements bean) 3.发布服务在接口和实现类上都要用注解说明情况。接口@WebServicepublic interface IMyServer { public int原创 2015-05-08 11:28:57 · 7445 阅读 · 0 评论 -
WebService学习笔记系列(二)
soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议。soap协议分为两个版本,soap1.1和soap1.2。 在学习webservice时我们有一个必备工具叫做tcpmon,该工具可以直接下载得到。使用tcpmon可以嗅探网络中传输的数据,便于我们更好的理解soap协议。 下载好tcpmon之后,打开该软件,如图简单设置 tcpmon相当于一个代理服务器,打开tc原创 2015-05-04 16:39:36 · 8230 阅读 · 0 评论 -
使用Socket模拟一个简单的Webservice调用
webservice是对socket的一个封装,让远程调用调用变得更加简单,那么使用socket究竟有多么麻烦呢?来看看。 做一个简单的天气查询: 服务端:public class SocketServer { public static void main(String[] args) { DataInputStream dataInputStream = null;原创 2015-05-12 10:08:48 · 9133 阅读 · 1 评论 -
Java Stax操作XML简介
使用stax操作xml 非常的简单,它的读取过程像是一个光标在移动。针对不同的节点做不同的处理。 先看一个基于光标的模型处理xml:public class StaxTest { @Test public void test1() { try { // 1.构建XMLStreamReader XMLInputFactor原创 2015-05-09 16:30:11 · 7563 阅读 · 0 评论 -
WSDL阅读方法
我们以天气预报WebService服务为例,来看看怎么阅读一个wsdl文档。 打开一个wsdl文档后,先看底部。binding在这里:portType在这里:好了,看了上面的,我们来说说wsdl说明书的整体结构吧: 1.<service>是整个webservice的服务视图,它包括了所有的服务端点。 2.<binding>为每个端口定义消息格式和协议细节。 3.<portType>描述web原创 2015-05-12 11:57:26 · 11288 阅读 · 0 评论 -
SOAP消息的传递
上一篇说了SOAP消息的创建,那么创建好了的SOAP消息要怎么发送给服务端呢?public class SoapTest { private String wsdlUri = "http://localhost:9999/ns?wsdl"; private String ns = "http://lenve.server/"; @Test public void tes原创 2015-05-11 14:53:29 · 7245 阅读 · 0 评论 -
SOAP消息创建
看了SOAP消息分析之后,大家对soap消息应该有了一个初步的认识,那么怎样自己编写一个soap消息呢? 先来创建一个简单的soap消息: @Test public void test1(){ try { //1.创建消息工厂 MessageFactory factory = MessageFactory.newInst原创 2015-05-11 11:20:52 · 7969 阅读 · 0 评论 -
SOAP消息分析
根据WebService学习笔记系列(二)中的介绍,使用tcpmon可以捕获到我们发出或者接收到的xml内容,接天我们就对这些xml内容做一个简单的分析。还记得在WebService学习笔记系列(四)中我们详细介绍过服务器端程序的编写,本文的服务端程序依然沿用其中的服务端代码,但是系列(四)对于接口上的注解并没有详细的解释,今天先来看看接口上的注解有什么作用。@WebServicepublic i原创 2015-05-11 10:04:40 · 8414 阅读 · 0 评论 -
WebService学习笔记系列(一)
webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言、跨平台的。 webservice的客户端与服务端进行交互的时候使用xml来传递数据。 soap协议,即简单对象访问协议,它是webservice的客户端与服务端进行交互的时候遵守的一个协议。在服务端调用webservice服务时,我们可以通过Java jdk自带的一个命令w原创 2015-05-04 09:32:51 · 8315 阅读 · 0 评论 -
使用泛型定义一个可重用的Dao
dao用来和数据库进行交互,一个项目中,可能有用户表,产品表等等,不可能为每一个表都建立一个dao,使用泛型可以实现通吃。UserDao.javapublic class UserDao <T>{ public int add(T t){ return 0; } public int delete(int id){ return 0; }原创 2015-05-01 11:00:40 · 7269 阅读 · 0 评论 -
Java泛型方法定义及泛型类型推断
泛型的推断 @Test public void test3(){ //类型推断时使用两个类型的最大公约数 int x1 = add(3,4); Number x2 = add(3.5,4); Object obj = add(3,"abc"); } //在返回类型前加上<T> public <T>原创 2015-04-30 22:46:05 · 8784 阅读 · 0 评论 -
JDK8新特性之Lambda表达式
Lambda表达式主要是替换了原有匿名内部类的写法,也就是简化了匿名内部类的写法。lambda语法结构:(参数1,参数2...)->{重写方法的内容,不定义方法名}先看一个使用匿名内部类定义一个新线程的方法: @Test public void test1(){ new Thread(new Runnable() { @Override原创 2015-05-01 17:23:11 · 9498 阅读 · 0 评论 -
CXF整合Spring开发WebService
刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开环境变量配置窗口,点击新建,新建%CXF_HOME%变量,值为你下载的cxf所在的目录,我的是D:\tools\apache-cxf-3.1.0 2.在Path变量中新加一句%CXF_HOME%\原创 2015-05-13 11:16:41 · 7879 阅读 · 0 评论 -
android开发之手势识别
android开发之手势识别原创 2015-05-14 22:54:08 · 7902 阅读 · 0 评论 -
把QQ聊天记录插入数据库中
最近在做毕设,其中一个环节是分析qq聊天记录,在分析之前需要先把qq聊天记录导出,然后存入数据库中,qq聊天记录导出后是文本文档,导出方式: 1.登录qq后,点击任意一个好友,查看与他的聊天记录,点击聊天记录界面的小喇叭图标。 2.点击小喇叭图标后就可以选择自己要导出的聊天记录了,在要导出的人名或者群名上右键单击,选择导出聊天记录,导出格式为文本文档。 导出的文本文档格式性非常强,看下图:原创 2015-05-06 15:27:49 · 12860 阅读 · 0 评论 -
android开发之单点触摸
相对于多点触摸,单点触摸还是很简单的。 新建一个工程,先看看布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"原创 2015-05-15 20:13:07 · 8363 阅读 · 1 评论 -
android之frame动画详解
上一篇我们说了android中的tween动画,这一篇我们说说frame动画,frame动画主要是实现了一种类似于gif动画的效果,就是多张图按预先设定好的时间依次连续显示。 新建一个android项目,名字叫做frameTest,在res文件夹下新建一个文件夹叫做anim,我们的frame动画的xml文件就放在这里。 在anim中新建一个frame.xml文件,内容如下:<?xml versi原创 2015-05-14 09:54:37 · 7898 阅读 · 3 评论 -
android之tween动画详解
android中一共提供了两种动画,其一便是tween动画,tween动画通过对view的内容进行一系列的图像变换(包括平移,缩放,旋转,改变透明度)来实现动画效果,动画效果的定义可以使用xml,也可以使用编码来实现。 下面我们逐一查看tween能够实现的动画效果。 先看看工程的整体结构吧:我们要实现的效果图如图点击按钮则执行相应的动画操作。布局文件activity_main.xml<Linear原创 2015-05-13 20:04:28 · 9786 阅读 · 3 评论 -
android开发之国际化
国际化,听起来高大上,做起来很简单。 我们来实现一个简单的效果,让应用根据系统的语言来做不同的显示,假如android系统默认是英语,应用就以英文的形式显示,如果android系统默认是中文,则应用就显示中文。 新建一个工程,名字叫做I18N,要做国际化,字符串的显示一定要按android规定的来,就是要显示的文字都定义在string里,一般情况下,新建的项目中会有一个values文件夹,va原创 2015-05-15 11:15:22 · 7196 阅读 · 0 评论 -
android中的样式和主题
有的时候我们一个页面要用很多个textview,而且这些textview的样式非常相像,这种情况下我们可以把这些样式抽取出来,然后在每个textview中引用即可,这样修改起来也方便。我们来看一个简单的例子,在一个页面中有三个textview,每个textview显示内容不同但是样式都相像,先来看看显示效果:布局文件:"http://schemas.android.com/apk/原创 2015-05-15 21:22:09 · 7313 阅读 · 0 评论 -
android之Java+html+javascript混合开发
android开发,除了使用原生态的开发方式之外,还可以使用java+html+javascript混合开发的方式来开发,这样可以节省大量的开发时间,同时还可以使不同设备的用户获得相同的用户体验。好了,废话不多说,先来看看今天要做什么。 主要是实现一个简单的注册功能,先用jquery mobile的方式写一个简单的注册页面,点击提交按钮之后跳转到一个新的activity中,同时把用户的注册信息显原创 2015-05-14 22:21:57 · 11786 阅读 · 1 评论 -
gson使用详解
昨天读一篇文章,看到gson这个词,一开始还以为作者写错了,问了度娘之后才发现是我才疏学浅,于是大概了解了一下gson用法,总体来说还是很简单的。Gson.jar下载JavaBean转json //javaBean-->json @Test public void test1(){ Gson gson = new Gson(); Person p原创 2015-05-27 10:41:10 · 5221 阅读 · 0 评论 -
xhEditor与Java结合使用
xhEditor是一个轻量级的html编辑器,使用它可以非常方便的编辑图文内容,然而官方文档中只有php的演示,没有Java版的,最近两天参考网上各种各样的文档,琢磨了一下用法,现已可以正常运行,现在分享出来,不足之处,欢迎指正。 下载好xheditor之后,先在webcontent文件夹中新建目录xheditor,再把以上文件拷贝进去。新建一个index.jsp文件:<%@page import原创 2015-05-23 18:09:47 · 2963 阅读 · 3 评论 -
android自定义控件之模仿优酷菜单
去年的优酷HD版有过这样一种菜单,如下图:应用打开之后,先是三个弧形的三级菜单,点击实体键menu之后,这三个菜单依次旋转退出,再点击实体键menu之后,一级菜单会旋转进入,点击一级菜单,二级菜单旋转进入,点击二级菜单的menu键,三级菜单旋转进入,再次点击二级菜单的旋转键,三级菜单又会旋转退出,这时再点击一级菜单,二级菜单退出,最后点击实体menu键,一级菜单退出。总体来说实现这样的功能: (1原创 2015-05-19 11:50:46 · 8079 阅读 · 2 评论 -
android自定义控件之滚动广告条
在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图:其实在github上有实现这种效果的控件,不过这东西做起来也是很简单,我们今天就来看看该怎么做。先来看看布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:原创 2015-05-19 15:47:42 · 10448 阅读 · 7 评论