Java JSON 本章节我们将为大家介绍如何在 Java 语言中使用 JSON。 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。...object.put("list",integers); //null object.put("null",null); System.out.println(object); } 在上述代码中,...integers.forEach(System.out::println); //null System.out.println(object.getString("null")); } 在上例中,...首先从 JSON 格式的字符串中构造一个 JSON 对象,之后依次读取字符串,整数,布尔值以及数组,最后分别打印,打印结果如下: string 2 true 1 2 3 null JSON 对象与字符串的相互转化...由于最近需要使用Gson,而Gson和fastjson在使用上还是有所区别的,所以今天稍微试一下Gson的使用.
("utf-8"); out.print("alert('您还没有登录,请登录') "); out.flush(); out.close(); } 3、java
java中Locks的使用 之前文章中我们讲到,java中实现同步的方式是使用synchronized block。在java 5中,Locks被引入了,来提供更加灵活的同步控制。...Lock和Synchronized Block的区别 我们在之前的Synchronized Block的文章中讲到了使用Synchronized来实现java的同步。...如果使用Lock API,则可以使用 lockInterruptibly()来中断线程。...StampedLock中的stamped类似乐观锁中的版本的概念,当我们在 StampedLock中调用lock方法的时候,就会返回一个stamp,代表锁当时的状态,在乐观读锁的使用过程中,在读取数据之后...本文的例子可以参考https://github.com/ddean2009/learn-java-concurrency/tree/master/Locks
java中FutureTask的使用 FutureTask简介 FutureTask是java 5引入的一个类,从名字可以看出来FutureTask既是一个Future,又是一个Task。...(); log.info(futureTask.get().toString()); } 本文的例子可参考https://github.com/ddean2009/learn-java-concurrency
Java中get和post的用法请参考:Java中Get和Post的使用 1 提供get/post接口 1.1 Controller @RestController @RequestMapping("/...System.out.println("providePostByMap res:" + res + "\n"); return res; } } 2 调用get/post接口 使用...public Map usePost() { //RestTemplate在postForObject时,用MultiValueMap,不可使用
properties 添加locales 生成properties文件 测试实例 package com.mjoker; import org.junit.Test; import java.util.Locale...; import java.util.ResourceBundle; public class BundleTest { @Test public void testCase1()
join()应该是我们在java中经常会用到的一个方法,它主要是将当前线程置为WAITTING状态,然后等待调用的线程执行完毕或被interrupted。...*/ public final void join() throws InterruptedException { join(0); } 我们看下join是怎么使用的...即使t4中的变量已经变成了0。...所以如果我们需要在这种情况下使用的话,我们需要用到join(),或者其他的同步机制。...本文的例子可以参考https://github.com/ddean2009/learn-java-concurrency/tree/master/join
java中DelayQueue的使用 简介 今天给大家介绍一下DelayQueue,DelayQueue是BlockingQueue的一种,所以它是线程安全的,DelayQueue的特点就是插入Queue...中的数据可以按照自定义的delay时间进行排序。...首先要使用DelayQueue,必须自定义一个Delayed对象: @Data public class DelayedUser implements Delayed { private String...我们循环从queue中获取对象。...总结 DelayQueue是一种有奇怪特性的BlockingQueue,可以在需要的时候使用。
java中ThreadLocal的使用 ThreadLocal主要用来为当前线程存储数据,这个数据只有当前线程可以访问。...要存储和获取ThreadLocal中的对象也非常简单,使用get()和set()即可: threadLocalValue.set(1); Integer result = threadLocalValue.get...要想删除ThreadLocal中的存储数据,可以调用: threadLocal.remove(); 下面我通过两个例子的对比,来看一下使用ThreadLocal的好处。...在Map中存储用户数据 我们先看下如果使用全局的Map该怎么用: public class SharedMapWithUserContext implements Runnable { public...如果在ExecutorService环境下,就最好不要使用ThreadLocal,因为在ExecutorService中,线程是不可控的。
java中Memcache的使用 一、什么是Memcached? Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网络连接完成服务。...Memcached把一些数据通过key=value数据存储到内存中,这样访问更加方便快捷。但是随之而来的问题是如果Memcached关闭或者Memcached的服务器关闭那么所保存的内容也就没有了。...memcached-win64-1.4.4-14.zip 然后解压,在相应的文件夹下执行以下的命令启动memCache: memcached.exe -d install memcached.exe -d start 使用...image.png 三、java下使用Memcached(java客户端程序) maven的依赖如下: <?xml version="1.0" encoding="UTF-8"?...memcached.initConn=20 #每个服务器建立最大连接数 memcached.maxConn=50 #自查线程周期工作,其每次休眠时间 memcached.maniSleep=3000 #是否使用
java中CyclicBarrier的使用 CyclicBarrier是java 5中引入的线程安全的组件。它有一个barrier的概念,主要用来等待所有的线程都执行完毕,然后再去执行特定的操作。...假如我们有很多个线程,每个线程都计算出了一些数据,然后我们需要等待所有的线程都执行完毕,再把各个线程计算出来的数据加起来,的到最终的结果,那么我们就可以使用CyclicBarrier。...(这里和Thread的interrupt()方法保持一致) 如果任何线程正在等待状态中,这时候barrier被重置。...或者在线程调用await方法或者正在等待中,barrier被broken,那么将会抛出BrokenBarrierException。...CyclicBarrier的使用 我们在子线程中生成一个随机的整数队列,当所有的线程都生成完毕之后,我们再将生成的整数全都加起来。看下怎么实现。
java中ThreadLocalRandom的使用 在java中我们通常会需要使用到java.util.Random来便利的生产随机数。...但是Random是线程安全的,如果要在线程环境中的话就有可能产生性能瓶颈。...,方法内部使用了AtomicLong,并调用了它的compareAndSet方法来保证线程安全性。...其实在多个线程环境中,Random根本就需要共享实例,那么该怎么处理呢? 在JDK 7 中引入了一个ThreadLocalRandom的类。...本文的例子可以参考https://github.com/ddean2009/learn-java-concurrency/tree/master/ThreadLocalRandom
之前的文章中我们讲到了ExecutorService,通过ExecutorService我们可以提交一个个的task,并且返回Future,然后通过调用Future.get方法来返回任务的执行结果。...Future> futures = executor.invokeAll(callableTasks); executor.shutdown(); } 上面的例子中,...本文的例子可以参考https://github.com/ddean2009/learn-java-concurrency/tree/master/CompletionService
有时我们需要对元素进行配对和交换线程的同步点,使用exchange方法 返回其伙伴的对象,这时我们就需要使用线程类中的Exchanger类了, 我通过一个实例 来简单说明一下他的使用方法及其作用...: import java.util.concurrent.Exchanger; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors
java中Future的使用 Future是java 1.5引入的一个interface,可以方便的用于异步结果的获取。本文将会通过具体的例子讲解如何使用Future。...创建Future 正如上面所说,Future代表的是异步执行的结果,意思是当异步执行结束之后,返回的结果将会保存在Future中。 那么我们什么时候会用到Future呢?...一般来说,当我们执行一个长时间运行的任务时,使用Future就可以让我们暂时去处理其他的任务,等长任务执行完毕再返回其结果。 经常会使用到Future的场景有:1. 计算密集场景。2. 处理大数据量。...接下来我们将会使用ExecutorService来创建一个Future。...多线程环境中运行 如果有两个计算任务,先看下在单线程下运行的结果。
RMI 介绍 RMI (Remote Method Invocation) 模型是一种分布式对象应用,使用 RMI 技术可以使一个 JVM 中的对象,调用另一个 JVM 中的对象方法并获取调用结果。...说到这里,是不是发现使用 RMI 在构建一个分布式应用时十分方便,它和 RPC 一样可以实现分布式应用之间的互相通信,甚至和现在的微服务思想都十分类似。...编组后的参数值(RMI协议中使用的是对象序列化)。...RMI Server Server 端主要是构建一个可以被传输的类 User,一个可以被远程访问的类 UserService,同时这个对象要注册到 RMI 开放给客户端使用。...IDEA 中如何生成 serialVersionUID,在文章末尾也附上了简单教程。
本篇目录 1- 泛型是什么 2- 泛型的作用 3- 泛型的定义 4- 泛型的使用 1 泛型是什么 如下代码是一个使用了泛型的实体类,E表示这里类型使用的了泛型,意思是可以为任意类型,也包括引用数据类型...3 泛型的定义 定义泛型需要在类名或接口名后指定泛型,格式如: public class Test{} 这里的大写英文字母并不是必须是E,但在开发规约中,泛型一般使用E、K、V、T来定义泛型...4 泛型的使用 定义了泛型后,可在类中代码中即可使用该字母作为数据类型来定义变量。...看到这里你们有没有觉得它很熟悉,好像我们在开发中哪里见到过。...没错,Java的很多地方都大规模的使用了泛型,接触最多就是集合框架中泛型,如: List list=new ArrayList(); 这是我们在初始化一个ArrayList实例对象,
结果组合运算 thenCombine和thenCompose thenAcceptBoth和runAfterBoth acceptEither、runAfterEither java9...CompletableFuture是java8引入的一个异步类,它最大的优势是可以在创建的对象中传入一个回调对象,在任务结束后(done或throw exception),自动调用回调对象的回调方法,而不用让主线程阻塞...下面我们看一下,使用Future是怎么完成这个功能的。...输出如下: 洗杯子 烧水 磨咖啡 我是主线程 泡咖啡 如果我们使用CompletableFuture来写,要怎么实现呢?...java9的改进 1.可以设置超时时间,超时后给一个默认值,比如下面代码输出100 ExecutorService executor = MyThreadPoolExecutor.getThreadPoolExecutor
Java对象数组使用 一、Java数组的使用 二、Java的对象数组 2.1 问题提出 2.2 问题解析 2.3 问题拆分 2.4 代码实现 一、Java数组的使用 对象数组其实和Java的数组类似的,...所以要很清楚Java的数组是如何使用的,如果有不懂的可以点下面这个链接Java数组的使用 二、Java的对象数组 2.1 问题提出 为什么会有对象数组呢?...今天我们来教大家如何使用对象数组来解决这个问题,对象数组,我们前面学过Java(OOP)编程—(Java OOP编程),想必大家也对面向对象这个词也会稍微有了一些了解,对象数组就是可以存放多种不同的数据类型...接下来我就来告诉大家如何使用对象数组,完成这个成绩排序的问题 2.3 问题拆分 我们可以把问题简化一下,输入五个学生的成绩,然后进行排序打印输出 先创建一个学生类 给学生类添加学生的信息—姓名,学号,成绩...创建对象数组,给对象数组申请 5 个空间 循环录入信息 根据学生成绩进行排序,然后打印输出 2.4 代码实现 创建一个学生类的属性,包括学生的姓名,学号,成绩 为了方便,我把两个文件放进了同一个包中使用
注意:早前业界没有统一的标准,各服务器都有各自的实现,现在J2EE7的JSR356已经定义了统一的标准,请尽量使用支持最新通用标准的服务器。...服务端不需要在web.xml中做额外的配置,Tomcat启动后就可以直接连接了。 实现 ? ? ? ?...推送数据到客户端 在其他业务方法中调用 ?...其他调试工具 Java实现一个websocket的客户端 依赖: ? 代码: ? ? ? chrome安装一个websocket客户端调试 ?...最后 为了统一的操作体验,对于一些不支持websocket的浏览器,请使用socketjs技术做客户端开发。
领取专属 10元无门槛券
手把手带您无忧上云