java
_江南一点雨
Java攻城狮
展开
-
小伙伴们提的这个问题,我今天必须解决了!
hello 小伙伴们新年好~给大家拜个晚年~今年虽然倡导就地过年,松哥还是溜回家过年去了,回家那是真舒服啊,公众号都荒废了两周了~不过过年期间也不是一点事没干,过年期间终于抽空把小伙伴们反映很久的一个问题解决了~每次小伙伴们反映 www.javaboy.org 很慢,我都很焦虑,但是这个网站我暂时没办法解决慢的问题,我说说原因。javaboy.org 是我从国外服务商那里买的域名,当时选择这个的原因是不用备案,当天买当天网站就能上线,很快。服务器我也没有自己搭建,选择了 GitHub Pages原创 2021-02-21 15:29:13 · 1853 阅读 · 10 评论 -
Java IO学习笔记
Java流的分类,一般可按以下方式分:按方向分,分为输入流,输出流。按类型分,分为字节流和字符流。 2.1字节流是通过字节来读取数据 2.2字符流是通过字符来读取数据按操作方式分,分为节点流和过滤流。 3.1 可以直接创建的流称为节点流,比如输入流,输出流 3.2 过滤流可以装饰节点流,让流的功能变得更加强大,过滤流采用装饰者模式,对输入流进行包装。比如说BufferedInp原创 2015-04-22 21:00:00 · 8180 阅读 · 0 评论 -
JNI 学习笔记系列(一)
JNI是Java native interface,也即Java本地应用开发接口。JNI相当于一个中间件,通过它可以使Java和C语言之间互相调用。 Java语言不能写驱动程序,因为Java的运行是在Java虚拟机上,虚拟机将底层东西屏蔽掉了,Java不能直接在底层运行,所一不能用Java写驱动程序。 在android开发中有哪些功能的开发需要用到JNI呢?1.wifi热点共享,操作手机网卡,把原创 2015-04-24 20:10:38 · 7496 阅读 · 0 评论 -
JNI 学习笔记系列(二)
c中没有Boolean类型的值,一般是使用1表示true,0表示false,c中也没有String类型的数据,c中的字符串要通过char数组来表示。c中没有byte类型,一般用char表示byte类型。先看看c中数据类型长度:# include# includemain(){ printf("char类型的长度为:%d\n",sizeof(char)); p原创 2015-04-25 16:03:27 · 7108 阅读 · 0 评论 -
使用内省方式操作JavaBean
内省,英文中称作introspector。主要对javaBean进行操作,JavaBean是一个特殊的Java类,该类中方法名符合特定的规则(其实就是getXXX,setXXX),我们一般是利用get,set方法来推断属性的名称,而不是直接根据属性来获得名称,因为属性都是私有的,而get,set方法都是共有的。推断规则:如果第二个字母为小写,则首字母小写,例如:getAge—>age setag原创 2015-04-29 16:16:09 · 7333 阅读 · 0 评论 -
BeanUtils使用概要
BeanUtils是apache提供的的一个工具类,在很多地方我们都要用到这个类。下面说说这个类的简单用法。 相关的使用细节已经在代码的注释中说明了。 @Test public void test5(){ try { Person p = new Person(new Book()); //使用beanUtils给对象的原创 2015-04-29 19:23:38 · 8113 阅读 · 1 评论 -
浅析@Deprecated
如果有一个方法你觉得不合适,想要删除,但是别人已经引用了很多次,删除了会对他人的工作产生影响,那该怎么办? 加入@Deprecated注解即可,看代码: @Test public void test1(){ test2(); } @Deprecated public void test2(){ System.out.println原创 2015-04-29 23:19:55 · 18834 阅读 · 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 · 7845 阅读 · 0 评论 -
JDK8新特性之接口
在JDK7及以前的版本中,接口中都是抽象方法,不能定义方法体,但是从jdk8开始,接口中可以定义静态的非抽象的方法,直接使用接口名调用静态方法,但是它的实现类的类名或者实例却不可以调用接口中的静态方法。也可以定义普通的非抽象的方法,普通的非抽象方法要在返回值前加上default,对于普通的非抽象方法必须使用子类的实例来调用。如果有多个接口定义了相同的默认方法,实现多个这些接口时必须重写默认方法,否则原创 2015-05-02 11:00:35 · 8004 阅读 · 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 · 7406 阅读 · 0 评论 -
通过反射获得泛型的实际类型参数
不知道大家有没有尝试过怎样获得一个泛型的实际类型参数?其实这个功能在hibernate中有广泛的应用,那么具体的操作是怎样的呢? 首先,要想直接通过一个变量拿到泛型类型中的实际参数显然是不可能的,参考hibernate源码,只要把这个变量当作一个方法的参数,再通过反射就可以拿到该泛型类型的实际参数。public class GenericsTest { @Test public vo原创 2015-05-02 16:36:02 · 9328 阅读 · 0 评论 -
Java注解详解
注解相当于一个特殊的类。 定义一个简单的注解并使用,细节在注释中:MyFirstAnnotation.java/** * java在编译的过程中可能会把一些注解文件丢掉,使用 * @Retention(RetentionPolicy.RUNTIME)注解让该注解一直保存到运行阶段 * @Retention(RetentionPolicy.CLASS),保存到编译阶段,默认即此 * @Ret原创 2015-04-30 10:58:26 · 10171 阅读 · 4 评论 -
怎样向泛型集合中插入多种类型数据
泛型,只是在编译的过程中进行语法检查,查看集合中所存放的类型是否符合要求,在这种情况下,我能不能跳过编译器的检查,向一个存放Integer的List中存放一个String类型的数据? 这里要用到Java的反射机制: @Test public void test1(){ try { List<Integer> list = new ArrayLi原创 2015-04-30 18:51:58 · 9701 阅读 · 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 · 7105 阅读 · 0 评论 -
类加载器及其委托机制的深入分析
Java虚拟机可以安装多个类加载器,系统默认三个主要的类加载器,每个加载器负责加载特定位置的类: BootStrap,ExtClassLoader,AppClassLoader。类加载器本身也是一个Java类,因为其他Java类的类加载器本身也要被类加载器加载,所以肯定有一个类加载器不是Java类,这便是BootStrap,BootStrap嵌套在JVM内核中。Java虚拟机中所有类装载器采用具有原创 2015-05-03 10:58:12 · 6934 阅读 · 2 评论 -
jackson 学习笔记
Jackson以优异的解析性能赢得了好评,今天就看看Jackson的一些简单的用法。 Jackson使用之前先要下载,这里一共有三个jar包,想要获得完美的Jackson体验,这三个jar包都不可或缺。1.将一个类以json字符串的形式输出: //将一个类以json字符串的形式输出 @Test public void test1(){ ObjectM原创 2015-04-27 22:05:53 · 8135 阅读 · 0 评论 -
Java Stax操作XML简介
使用stax操作xml 非常的简单,它的读取过程像是一个光标在移动。针对不同的节点做不同的处理。 先看一个基于光标的模型处理xml:public class StaxTest { @Test public void test1() { try { // 1.构建XMLStreamReader XMLInputFactor原创 2015-05-09 16:30:11 · 7531 阅读 · 0 评论 -
WebService学习笔记系列(一)
webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言、跨平台的。 webservice的客户端与服务端进行交互的时候使用xml来传递数据。 soap协议,即简单对象访问协议,它是webservice的客户端与服务端进行交互的时候遵守的一个协议。在服务端调用webservice服务时,我们可以通过Java jdk自带的一个命令w原创 2015-05-04 09:32:51 · 8284 阅读 · 0 评论 -
WebService学习笔记系列(三)
网上有一些提供webservice服务的网站,我们要怎么调用呢? 今天来看个如何调用手机归属地查询服务。这个网站上提供了许多webservice服务,其中包括手机归属地查询服务,我们今天就用wsimport的方式来调用这个服务: 打开这个页面,复制手机归属地查询的那个wsdl,然后打开命令行窗口,使用wsimport将需要的Java文件导出来: 拿到生成的Java文件后,拷贝到项目中,原创 2015-05-06 16:58:54 · 7012 阅读 · 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 · 7172 阅读 · 0 评论 -
WSDL阅读方法
我们以天气预报WebService服务为例,来看看怎么阅读一个wsdl文档。 打开一个wsdl文档后,先看底部。binding在这里:portType在这里:好了,看了上面的,我们来说说wsdl说明书的整体结构吧: 1.<service>是整个webservice的服务视图,它包括了所有的服务端点。 2.<binding>为每个端口定义消息格式和协议细节。 3.<portType>描述web原创 2015-05-12 11:57:26 · 11183 阅读 · 0 评论 -
使用Socket模拟一个简单的Webservice调用
webservice是对socket的一个封装,让远程调用调用变得更加简单,那么使用socket究竟有多么麻烦呢?来看看。 做一个简单的天气查询: 服务端:public class SocketServer { public static void main(String[] args) { DataInputStream dataInputStream = null;原创 2015-05-12 10:08:48 · 9112 阅读 · 1 评论 -
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 · 7216 阅读 · 0 评论 -
SOAP消息创建
看了SOAP消息分析之后,大家对soap消息应该有了一个初步的认识,那么怎样自己编写一个soap消息呢? 先来创建一个简单的soap消息: @Test public void test1(){ try { //1.创建消息工厂 MessageFactory factory = MessageFactory.newInst原创 2015-05-11 11:20:52 · 7925 阅读 · 0 评论 -
SOAP消息分析
根据WebService学习笔记系列(二)中的介绍,使用tcpmon可以捕获到我们发出或者接收到的xml内容,接天我们就对这些xml内容做一个简单的分析。还记得在WebService学习笔记系列(四)中我们详细介绍过服务器端程序的编写,本文的服务端程序依然沿用其中的服务端代码,但是系列(四)对于接口上的注解并没有详细的解释,今天先来看看接口上的注解有什么作用。@WebServicepublic i原创 2015-05-11 10:04:40 · 8361 阅读 · 0 评论 -
WebService学习笔记系列(四)
今天主要来看看服务端的编写及发布。 服务端的编写主要包括三个步骤: 1.编写一个接口,即SEI(server endpoint interface) 2.编写接口的实现类,即SIB (server implements bean) 3.发布服务在接口和实现类上都要用注解说明情况。接口@WebServicepublic interface IMyServer { public int原创 2015-05-08 11:28:57 · 7414 阅读 · 0 评论 -
WebService学习笔记系列(二)
soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议。soap协议分为两个版本,soap1.1和soap1.2。 在学习webservice时我们有一个必备工具叫做tcpmon,该工具可以直接下载得到。使用tcpmon可以嗅探网络中传输的数据,便于我们更好的理解soap协议。 下载好tcpmon之后,打开该软件,如图简单设置 tcpmon相当于一个代理服务器,打开tc原创 2015-05-04 16:39:36 · 8197 阅读 · 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 · 8756 阅读 · 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 · 7248 阅读 · 0 评论 -
JDK8新特性之Lambda表达式
Lambda表达式主要是替换了原有匿名内部类的写法,也就是简化了匿名内部类的写法。lambda语法结构:(参数1,参数2...)->{重写方法的内容,不定义方法名}先看一个使用匿名内部类定义一个新线程的方法: @Test public void test1(){ new Thread(new Runnable() { @Override原创 2015-05-01 17:23:11 · 9468 阅读 · 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 · 7864 阅读 · 0 评论 -
把QQ聊天记录插入数据库中
最近在做毕设,其中一个环节是分析qq聊天记录,在分析之前需要先把qq聊天记录导出,然后存入数据库中,qq聊天记录导出后是文本文档,导出方式: 1.登录qq后,点击任意一个好友,查看与他的聊天记录,点击聊天记录界面的小喇叭图标。 2.点击小喇叭图标后就可以选择自己要导出的聊天记录了,在要导出的人名或者群名上右键单击,选择导出聊天记录,导出格式为文本文档。 导出的文本文档格式性非常强,看下图:原创 2015-05-06 15:27:49 · 12767 阅读 · 0 评论 -
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 · 5182 阅读 · 0 评论 -
xhEditor与Java结合使用
xhEditor是一个轻量级的html编辑器,使用它可以非常方便的编辑图文内容,然而官方文档中只有php的演示,没有Java版的,最近两天参考网上各种各样的文档,琢磨了一下用法,现已可以正常运行,现在分享出来,不足之处,欢迎指正。 下载好xheditor之后,先在webcontent文件夹中新建目录xheditor,再把以上文件拷贝进去。新建一个index.jsp文件:<%@page import原创 2015-05-23 18:09:47 · 2944 阅读 · 3 评论 -
java转义xml中的多余尖括号
xml中的敏感字符是尖括号,如果xml的值中含有尖括号,那么在解析的时候就会报错,如:<?xml version="1.0" encoding="UTF-8"?><books><book><id>1</id><name><三国<><演><演>义</name><price>4<>5</price><author>罗贯中</author></book></books>需要先对这些xml文件进行处理。原创 2015-07-01 09:45:31 · 8704 阅读 · 1 评论 -
处理json中影响解析的多余引号
在xml中,敏感字符是尖括号,在json中,敏感字符是引号,上文中我们介绍了如何处理xml中的敏感字符,本文说说如何处理json中的敏感字符。 思路与上文相同,不再赘述。直接上代码: json–>javaBean @Test public void test1() { String json = "{\"id\":\"1\",\"name\":\"红\"楼\"'梦\原创 2015-07-01 12:02:49 · 9240 阅读 · 0 评论 -
ubuntu中安装jdk
参考文献:ubuntu 13.04 安装 JDK先去oracle官网下载jdk,这一段我就不赘述了。下载好之后先解压,解压方式参见 linux常用的压缩与解压缩命令 ,解压之后,将文件剪贴至/usr/lib/中的jvm文件夹中,同时把文件名更换为java,如果没有这个文件夹就自己建一个,剪贴以及新建文件夹命令参见ubuntu文件管理常用命令 。上面工作做完之后,就可以添加环境变量了sudo vi ~原创 2015-07-06 17:49:22 · 2294 阅读 · 0 评论 -
Spring常用配置(二)
OK,上篇博客我们介绍了Spring中一些常见的配置,上篇博客中介绍到的都是非常常见的注解,但是在Spring框架中,常见的注解除了上篇博客提到的之外,还有许多其他的注解,只不过这些注解相对于上文提到过的注解使用频率稍微低一些,当然这个使用频率只是相对而言。OK,那么接下来我们就再来了解Spring中的几个注解。Spring Aware一般情况下,我们在使用Spring框架时,Bean和Spring原创 2016-12-14 21:32:38 · 10348 阅读 · 0 评论 -
SpringMVC基础配置(通过注解配置,非xml配置)
SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发的时候,偶尔需要搭建一个后台服务,都是毫不犹豫的选择了SpringMVC作为首选。不过在之前使用SpringMVC的时候都是使用xml文件来进行配置的,那么这里我想换一种方式,通过Java注解来配置Sp原创 2016-12-15 21:29:44 · 16797 阅读 · 9 评论 -
Spring常用配置
上篇文章我们简单介绍了Spring的基本配置,算是一个简单的入门,这篇文章我们再一起来看看Spring在使用的过程中一些其他的常见配置。Bean的ScopeSpring中的Scope注解主要是为了解决Bean的实例问题,就是Bean在不同的场合下到底该有几个实例,是单例模式还是其他模式?一般来说,Spring的Scope有如下几种: 1.Singleton:表示该Bean是单例模式,在Sprin原创 2016-12-14 09:56:20 · 22923 阅读 · 10 评论