开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
Computer Science
Computer Science

Java 历史

James Gosling 最初开始 Java 语言项目是在 1991 年的 7 月。Java 被用在他的许多 set-top box 工程中。这个语言最开始的时候被称为 Oka,这个是因为 James Gosling 办公室外有一颗橡树,同时也考虑过使用 Green 这个名字,最终这个语言被命名为 Java。这个名字是从一堆名字中随机选取的。 Sun 发布了 Java 的 1.0 版本的实现是在 1995 年。这个程序被称为编写一次随处运行(WORA),这样为多平台提供了无成本的运行条件。 在 2006年11月13 日,Sun 发布了Java 免费的开源版本,这个版本是基于 GNU General Public License (GPL) 开源协议的。 在 2007年5月8日,Sun 完成了开源过程,将所有的 Java 源代码开源了,除了 Sun 没有取得版权的一些代码外。 与传统型态不同,Sun公司在推出Java时就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的 Java 软件必须相互兼容。 “Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C#语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。 时间 事件 1995-05 Java语言诞生 1996-01 第一个JDK-JDK1.0诞生 1996-04 10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术 1996-09 约8.3万个网页应用了JAVA技术来制作 1997-02 JDK1.1发布 1997-04 JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录 1997-09 JavaDeveloperConnection社区成员超过十万 1998-02 JDK1.1被下载超过2,000,000次 1998-12 JAVA2企业平台J2EE发布 1999-06 SUN公司发布Java的三个版本:标准版(JavaSE,以前是J2SE)、企业版(JavaEE以前是J2EE)和微型版(JavaME,以前是J2ME) 2000-05 JDK1.3发布 2000-05 JDK1.4发布 2001-06 NOKIA宣布,到2003年将出售1亿部支持Java的手机 2001-09 J2EE1.3发布 2002-02 J2SE1.4发布,自此Java的计算能力有了大幅提升 2004-09 J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0 2005-06 JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字"2":J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME 2006-12 SUN公司发布JRE6.0 2009-04 甲骨文 74 亿美元收购Sun。取得 Java 的版权。 2010-11 由于甲骨文对于Java社区的不友善,因此Apache扬言将退出 JCP 2011-07 甲骨文发布java7.0的正式版。 2014-03 Oracle 公司发布 Java SE 8。   https://www.cwiki.us/pages/viewpage.action?pageId=37492282

2018年11月13日 0Comments 940Browse 0Like Read more
Computer Science

Java 主要特性

Java 有下面的一些主要特性。 面向对象 在 Java 中,所有的都是对象。正式因为 Java 基于对象模型,所以 Java 更加容易进行扩展。 Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。 平台独立性 与其他许多语言不同(包括 C/C++),当 Java 被编译后,Java 程序并没有被编译成只针对某一特定平台使用的的机器语言,而是编译成了一个平台独立的 2 进制代码(byte code)。这个二进制代码通过 Web 进行分发并且通过 Java 虚拟机(JVM)运行。所以你的程序与平台具有无关性。 Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 简单 Java 被设计Wie简单易学。如果你能够理解基本的 OOP(面向对象编程)概念,Java 对你来说应该不会很难。同时,Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。 另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。 安全 通过启用 Java 的安全特性,能够开发出无病毒,无篡改的系统,授权也是基于公钥加密的。 Java 通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 体系结构中立 Java 的编译器创建了一个体系结构中立的对象格式,这样的体系结构能够让 Java 编译过的代码在多处理器环境下运行。当然这个环境需要安装 Java 运行虚拟机。 Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 便携 正是基于平台的独立性和不实现特定的一些特性能够让 Java 更加具有便携性。Java 的编译器是使用 ANSI C 编写的,这个编译器具有明确的界限,同时还是 POSIX 的子集。 健壮性 Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。同时,Java 通过努力编译时和运行时的错误检查来消除可能的错误。 多线程 通过 Java 的多线程特性,我们能够允许程序可以同时进行多个任务。这个设计能够让程序员开发构建互动的程序,能够让程序和系统运行得更加顺畅。 在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。 高性能 通过 JIT(Just-In-Time)编译器,Java 具有无以伦比的高性能。 与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。 分布式 Java 被设计在分布式的互联网环境下进行开发。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(Java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 动态 Java 被设计为更加动态,因为 Java 相对 C/C++ 来说使用了更加动态的语言。Java 程序能够携带更加广泛的运行时(run-time)信息。这些信息能够被用来在运行时对对象进行访问。 Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。   https://www.cwiki.us/display/JAVAZH/Overview

2018年11月13日 0Comments 950Browse 0Like Read more
Computer Science

Java 概述

Java 是由 Sun Microsystems 公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称(Java 1.0 [J2SE])。由James Gosling和同事们共同研发,并在1995年正式推出。 Java 标准版(Java Standard Edition)的最新发行版本为 Java SE 8。Java 具有很多高级特性并且能够被广泛的应用,Java 有多个配置版本以便于更加适宜不同的开发需求。例如:针对企业应用的 J2EE,针对移动应用使用的 J2ME。 新的 J2 版本被命名为 Java SE,Java EE 和 Java ME。 JavaSE(J2SE)(Java2 Platform Standard Edition,Java 平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,Java 平台企业版) JavaME(J2ME)(Java 2 Platform Micro Edition,Java 平台微型版) Java 能够确保一次编码,多处运行。 https://www.cwiki.us/display/JAVAZH/Overview

2018年11月13日 0Comments 982Browse 0Like Read more
Computer Science

Apache HttpClient 使用 POST 方法

可以使用下面的代码将需要查询的内容发送到 Apple.com 查找对话框。 String url = "https://selfsolve.apple.com/wcResults.do"; HttpClient client = HttpClientBuilder.create().build(); HttpPost post = new HttpPost(url); // add header post.setHeader("User-Agent", USER_AGENT); List<NameValuePair> urlParameters = new ArrayList<NameValuePair>(); urlParameters.add(new BasicNameValuePair("sn", "C02G8416DRJM")); urlParameters.add(new BasicNameValuePair("cn", "")); urlParameters.add(new BasicNameValuePair("locale", "")); urlParameters.add(new BasicNameValuePair("caller", "")); urlParameters.add(new BasicNameValuePair("num", "12345")); post.setEntity(new UrlEncodedFormEntity(urlParameters)); HttpResponse response = client.execute(post); System.out.println("Response Code : " + response.getStatusLine().getStatusCode()); BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); }  

2018年11月09日 0Comments 3737Browse 0Like Read more
Computer Science

Apache HttpClient 使用 Get 方法

如何使用 Apache HttpClient 使用 Get 方法从网站上下载数据。 可以使用下面的方法来获得 Google 的查询结果。 String url = "http://www.google.com/search?q=httpClient"; HttpClient client = HttpClientBuilder.create().build(); HttpGet request = new HttpGet(url); // add request header request.addHeader("User-Agent", USER_AGENT); HttpResponse response = client.execute(request); System.out.println("Response Code : " + response.getStatusLine().getStatusCode()); BufferedReader rd = new BufferedReader( new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readLine()) != null) { result.append(line); }  

2018年11月09日 0Comments 1006Browse 1Like Read more
Computer Science

Jersey 2.x 运行项目

现在我们已经有可以可以运行的项目了,让我们队这个项目进行一些测试吧。 你需要运行下面的一些命令行: mvn clean test 这个命令将会对项目进行编译后运行单元测试。 你应该会看到和下面类似的输出表示项目编译成功了: Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.742 s [INFO] Finished at: 2018-03-27T15:05:50-04:00 [INFO] Final Memory: 17M/205M [INFO] ------------------------------------------------------------------------ 上面的输出表示的是项目已经被编译测试通过了。 我们可以开始使用独立启动方式启动项目了,希望直接启动项目,需要运行下面的 mvn 项目启动命令: mvn exec:java 这时候,项目应该已经正常启动了,很快你应该可以在控制台上看到下面的输出: Mar 27, 2018 3:10:28 PM org.glassfish.grizzly.http.server.NetworkListener start INFO: Started listener bound to [localhost:8080] Mar 27, 2018 3:10:28 PM org.glassfish.grizzly.http.server.HttpServer start INFO: [HttpServer] Started. Jersey app started with WADL available at http://localhost:8080/myapp/application.wadl Hit enter to stop it... 项目这个时候已经运行了,有关项目的 WADL 描述文件可以通过 http://localhost:8080/myapp/application.wadl URL 访问到。 你可以考虑在你的控制台中通过命令中 curl http://localhost:8080/myapp/application.wadl 访问这个项目的描述文件,你也可以直接将这个链接拷贝粘贴到浏览器中直接进行查看。 如果一切正常的话,你应该可以看到你部署的 RESTful 应用程序的的 WADL 格式的 XML 文档。希望查看更多有关 WADL 的内容,请查看章节  Chapter 17, WADL Support。 部署成功后最后一件可以尝试的事情就是与部署的 /myresource 资源进行数据交互。 你可以考虑直接把  http://localhost:8080/myapp/myresource 链接复制粘贴到浏览器中,你也可以通过 curl 执行命令。 有关 curl 执行命令的结果如下: $ curl http://localhost:8080/myapp/myresource Got it! 你可以看到,当你执行上面的命令后,控制台输出了 Got it!消息,这个消息是服务器发送给我们的资源。 我们也可以通过参数 -i 让 curl 提供更多的信息给我们来让我们了解有关消息发送响应的相关信息。 curl -i http://localhost:8080/myapp/myresource HTTP/1.1 200 OK Content-Type: text/plain Date: Sun, 26 May 2013 18:27:19 GMT Content-Length: 7 Got it! 注意到Content-Type: text/plain是在 MyResource 类中用@Produces 注解的。 如果想看到更多返回信息,或者想了解 curl 客户端和运行的 Grizzly I/O 容器的交互,可以变换不同的 curl 命令参数。例如下面的例子可以让 curl 客户端输出更多有关于服务器通信和交互的相关信息: $ curl -v http://localhost:8080/myapp/myresource * About to connect() to localhost port 8080 (#0) * Trying ::1... * Connection refused * Trying 127.0.0.1... * connected * Connected to localhost (127.0.0.1) port 8080 (#0) > GET /myapp/myresource HTTP/1.1 > User-Agent: curl/7.25.0 (x86_64-apple-darwin11.3.0) libcurl/7.25.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.22 > Host: localhost:8080 > Accept: */* > < HTTP/1.1 200 OK < Content-Type: text/plain < Date: Sun, 26 May 2013 18:29:18 GMT < Content-Length: 7 < * Connection #0 to host localhost left intact Got it!* Closing connection #0 https://www.cwiki.us/display/JERSEYZH/Running+the+Project

2018年11月08日 0Comments 1245Browse 0Like Read more
Computer Science

Jersey 2.x 探索新建的工程

如果用 Jersey maven archetype 成功创建了这个项目,那么在你当前的路径下就已经创建了一个名为simple-service项目。它包含了一个标准的Maven项目结构: 说明 文件目录 在项目根目录下的的项目构建和管理配置描述文件  pom.xml 项目源代码文件 src/main/java 项目测试源代码 src/test/java 在原文路径下的com.example包中有两个 class 文件,这个 Main 类主要是负责启动 Grizzly 容器,同时也为这个容器配置和部署 JAX-RS 应用。 在同一个包内的另外一个类 MyResource 类是 JAX-RS 的一个实现的源代码,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package com.example;   import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType;   /**  * Root resource (exposed at "myresource" path)  */ @Path("myresource") public class MyResource {       /**      * Method handling HTTP GET requests. The returned object will be sent      * to the client as "text/plain" media type.      *      * @return String that will be returned as a text/plain response.      */     @GET     @Produces(MediaType.TEXT_PLAIN)     public String getIt() {         return "Got it!";     } } 一个 JAX-RS 资源是一个可以处理绑定了资源的URI的HTTP请求的带有注解的POJO,详细内容可以看第三章。在我们的例子中,单一的资源暴露了一个公开的方法,能够处理HTTP GET请求,绑定在/myresourceURI路径下,可以产生媒体类型为“text/plain”的响应消息。在这个示例中,资源返回相同的“Got it!”应对所有客户端的要求。 在src/test/java目录下的 MyResourceTest 类是对 MyResource 的单元测试,他们具有相同的包 com.example 中。但是这个单元测试类被放置到 maven 工程中的测试源代码目录下 src/test/java(为了增加代码的简洁性,一些代码的注释和 JUnit 的导入类被省略了)。 package com.example;   import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget;   import org.glassfish.grizzly.http.server.HttpServer;   ...   public class MyResourceTest {       private HttpServer server;     private WebTarget target;       @Before     public void setUp() throws Exception {         server = Main.startServer();           Client c = ClientBuilder.newClient();         target = c.target(Main.BASE_URI);     }       @After     public void tearDown() throws Exception {         server.stop();     }       /**      * Test to see that the message "Got it!" is sent in the response.      */     @Test     public void testGetIt() {         String responseMsg = target.path("myresource").request().get(String.class);         assertEquals("Got it!", responseMsg);     } } 在这个单元测试中静态方法 Main.startServer()首先将 Grizzly 容器启动,然后服务器应用部署到测试中的 setUp() 方法。接下来,一个JAX-RS 客户端组件在相同的测试方法创建。 先是一个新的JAX-RS客户端实例生成,接着JAX-RS web target 部件指向我们部署的应用程序上下文的 root:http://localhost:8080/myapp/( Main.BASE_URI 的常量值)存储在单元测试类目标区。这个区被用于实际的单元测试方法(testgetit())。 在 testgetit() 方法中,JAX-RS 客户端 API 是用来连接并发送 HTTP GET 请求的 MyResource JAX-RS 资源类侦听在/myresource 的URI。同样作为 JAX-RS API 方法调用链的一部分,回应以Java字符串类型被读到。在测试方法的第二行,响应的内容(从服务器返回的字符串)跟测试断言预期短语比较。要了解更多有关使用 JAX-RS 客户端API,请参阅第5章客户端API。 https://www.cwiki.us/display/JERSEYZH/Exploring+the+Newly+Created+Project

2018年11月08日 0Comments 1081Browse 0Like Read more
Computer Science

Jersey 2.x 从Maven Archetype 创建一个新项目

创建 Jersey 工程需要使用 Apache 的 Maven 软件工程和管理工具。所有的Jersey产品模块都可以在 Maven中央库 中找到。这样的话 Jersey 可以非常容易和其他基于 Maven 的项目进行配置(non-SNAPSHOT)。 Jersey 已经部署到中央仓库中了,因此你不需要配置其他仓库来让 Jersey 可以工作。 有关 SNAPSHOT 版本 如果你想要使用最新的 Jersey 模块的 SNAPSHOT 版本(SNAPSHOT 版本代表不稳定、尚处于开发中的版本),需要在 pom.xml 中添加如下内容: <repository>     <id>snapshot-repository.java.net</id>     <name>Java.net Snapshot Repository for Maven</name>     <url>https://maven.java.net/content/repositories/snapshots/</url>     <layout>default</layout> </repository> 使用 Maven 的工程创建一个 Jersey 项目是最方便的,让我们用这种方法来看一下它是怎么实现的。让我们创建一个新的 Jersey 项目,运行在Grizzly容器。 我们使用 Jersey-provided 的 maven archetype。创建一个项目,需要执行下面的代码: mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \ -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \ -DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \ -DarchetypeVersion=2.26 在你的项目里面随意调整 pom.xml 内的 groupId,包名和版本号就可以成为一个新的项目。   https://www.cwiki.us/display/JERSEYZH/Creating+a+New+Project+from+Maven+Archetype

2018年11月08日 0Comments 1138Browse 0Like Read more
Computer Science

Jersey 2.x 服务器端应用支持的容器

基于 JAX-RS Servlet-based 部署的一部分标准,能运行在任何支持 Servlet 2.5 和更高标准的的容器上。Jersey 提供支持程序化部署在下面的容器中:Grizzly 2 (HTTP 和 Servlet), JDK Http server,Simple Http server 和 Jetty Http server 本章节仅仅提供了需要 Maven 提供的依赖,有关更多的细节,请参考 Chapter 4, Application Deployment and Runtime Environments 页面中的内容。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <dependency>     <groupId>org.glassfish.jersey.containers</groupId>     <artifactId>jersey-container-grizzly2-http</artifactId>     <version>2.27</version> </dependency>   <dependency>     <groupId>org.glassfish.jersey.containers</groupId>     <artifactId>jersey-container-grizzly2-servlet</artifactId>     <version>2.27</version> </dependency>   <dependency>     <groupId>org.glassfish.jersey.containers</groupId>     <artifactId>jersey-container-jdk-http</artifactId>     <version>2.27</version> </dependency>   <dependency>     <groupId>org.glassfish.jersey.containers</groupId>     <artifactId>jersey-container-simple-http</artifactId>     <version>2.27</version> </dependency>   <dependency>     <groupId>org.glassfish.jersey.containers</groupId>     <artifactId>jersey-container-jetty-http</artifactId>     <version>2.27</version> </dependency>   <dependency>     <groupId>org.glassfish.jersey.containers</groupId>     <artifactId>jersey-container-jetty-servlet</artifactId>     <version>2.27</version> </dependency> https://www.cwiki.us/display/JERSEYZH/Common+Jersey+Use+Cases

2018年11月07日 0Comments 1039Browse 0Like Read more
Computer Science

Jersey 2.x JDK 上的客户端应用

如应用是运行在 JDK 上的话,你只需要使用 JAX-RS 中的客户端部分就可以了,这个根据你使用的客户端有所调整。 这里有一系列的模块是可以供你使用的,例如 grizzly 或 apache 或 jetty connector(请参考下面的的依赖表格)。Jersey 客户端默认使用 JDK 进行运行(使用的是 HttpUrlConnection)。 请参考 Chapter 5, Client API 获得更多的细节。 1 2 3 4 5 <dependency>     <groupId>org.glassfish.jersey.core</groupId>     <artifactId>jersey-client</artifactId>     <version>2.27</version> </dependency> 当前可用的连接器: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <dependency>     <groupId>org.glassfish.jersey.connectors</groupId>     <artifactId>jersey-grizzly-connector</artifactId>     <version>2.27</version> </dependency>   <dependency>     <groupId>org.glassfish.jersey.connectors</groupId>     <artifactId>jersey-apache-connector</artifactId>     <version>2.27</version> </dependency>   <dependency>     <groupId>org.glassfish.jersey.connectors</groupId>     <artifactId>jersey-jetty-connector</artifactId>     <version>2.27</version> </dependency> https://www.cwiki.us/display/JERSEYZH/Common+Jersey+Use+Cases

2018年11月07日 0Comments 1194Browse 0Like Read more
1…179180181182183…237
Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (513)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1