简介
java IDE使用统计比例:
官网地址 http://www.jetbrains.com/
JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson
1.FastJson数度快,无论序列化和反序列化,都是当之无愧的fast
2.功能强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)
3.零依赖(没有依赖其它任何类库)
FastJson对于json格式字符串的解析主要用到了一下三个类:
1.JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换
2.JSONObject:fastJson提供的json对象
3.JSONArray:fastJson提供json数组对象
还在迷茫和彷徨吗,快上车,老司机带你飞!
HttpClient发送key/value数据,返回json格式数据
|
|
|
|
注意:这里不能加下面这行,否则数据会传不到后台
|
|
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。
Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotation类型的父接口。除此之外,Java在java.lang.reflect 包下新增了AnnotatedElement接口,该接口代表程序中可以接受注解的程序元素,该接口主要有如下几个实现类:
(1) Class:类定义
(2) Constructor:构造器定义
(3) Field:累的成员变量定义
(4) Method:类的方法定义
(5) Package:类的包定义
在学习自定义注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。
元注解:元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:
(1) @Target
(2) @Retention
(3) @Documented
(4) @Inherited
这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和相应分参数的使用说明。
@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
ConcurrentHashMap是一个线程安全,并且是一个高效的HashMap,ConcurrentMap,它是一个接口,是一个能够支持并发访问的java.util.map集合,在原有java.util.map接口基础上又新提供了4种方法,进一步扩展了原有Map的功能
|
|
(1) putIfAbsent: 与原有put方法不同的是,putIfAbsent方法中如果插入的key相同,则不替换原有的value值
(2) remove: 与原有remove方法不同的是,新remove方法中增加了对value的判断,如果要删除的key–value不能与Map中原有的key–value对应上,则不会删除该元素
(3) replace(K,V,V): 增加了对value值的判断,如果key–oldValue能与Map中原有的key–value对应上,才进行替换操作
(4) replace(K,V): 与上面的replace不同的是,此replace不会对Map中原有的key–value进行比较,如果key存在则直接替换
CopyOnWriteArrayList是ArrayList的一个线程安全的变体,其中所有可变操作(add、set等等)都是通过对底层数组进行一次新的复制来实现的, 一般在多线程操作时,一个线程对list进行修改。一个线程对list进行foreach时会出现, java.util.ConcurrentModificationException错误。
下面来看一个列子:两个线程,一个线程foreach,一个线程修改list的值。
|
|
ThreadPoolExecutor
ScheduledThreadPoolExecutor