JEP 200:模块化JDK

原文链接   译者:carvendy

JEP 200:模块化JDK

作者  Mark Reinhold
创建  2014/07/22 14:08
更新  2017/03/08 13:58
类型  特性
状态  集成
域   SE
JSR   376
讨论  拼图的开发在openjdk.java.net
努力  XL
持续时间  XL
优先  l
检验人 Alan Bateman, Alex Buckley, Paul Sandoz
支持  Brian Goetz
发行  9
版本  8051618
依赖  JEP 220:模块化运行时镜像
JEP 261:模块系统
JEP 201:模块化源码

阅读全文

常用开源框架扩展清单之原理

一、前言

评价一个框架是否是优秀的,其中必有一点是该框架是否留足了可扩展的接口。我们在实际做项目中很多情况下就是基于某某框架,然后在这个框架留出的扩展接口上进行业务开发,所以很有必要对这些框架留出了哪些扩展点,这些扩展点是干啥用的有个心知肚明的了解。本文针对作者项目中用到的tomcat,spring扩展点进行记录,作为记录笔记,以便查找。
阅读全文

ClassLoader解惑

一、什么是Classloader

一个Java程序要想运行起来,首先需要经过编译生成 .class文件,然后创建一个运行环境(jvm)来加载字节码文件到内存运行,而.class 文件是怎样被加载中jvm 中的就是Java Classloader所做的事情。

那么.class文件什么时候会被类加载器加载到jvm中运行那?比如执行new操作时候,当我们使用Class.forName(“包路径+类名”),Class.forName(“包路径+类名”,classloader),classloader.loadclass(“包路径+类名”);时候就触发了类加载器去类加载对应的路径去查找*.class,并创建Class对象。
阅读全文

《Maven官方文档》选择可移植的Wagon提供者

原文链接   译者:carvendy

选择可移植的Wagon提供者

默认,Maven使用java.net.URLConnectionHttpURLConnection)类提供使用JDK接入仓库使用HTTP/HTTPS协议。不行地,支持这个实现由确定的bug,Maven使用这可能发现不能链接服务端并需要一些配置。一个奇怪的行为例包含着行包装授权头Base64值,当密码很长和使用缓存优先可以授权连接同样的服务端。

Maven 2.2.0 尝试修改这问题通过Wagon实现基于Apache HttpClient。不幸地,很快地HttpClient不支持NTLM(至少,version 2),影响意味着用户在代理服务器在NTLMv2后不能使用Maven 2.2.0。

希望地,解决这些,Maven 2.2.1将支持指定你想使用的Wagon提供者和给定的协议在构建过程中。从role-hint组件为了Wagon,提供者名字将被附加到协议使用的格式==<protocol>-<provider>==。

Maven 2.2.1,两种方式指定Wagon提供者应该使用:命令行,或者==<server>配置部分在settings.xml==。 阅读全文

《JAVA模块化系统》翻译邀请

2017年6月13日份,JAVA模块化系统在JCP执行委员会中投票通过,意味着在JAVA9中我们将能使用JAVA的模块化能力,我们团队也在开发和使用一个模块化框架TITAN。所以并发网本月组织翻译JAVA模块化系统 (拼图项目)。

阅读全文

《Maven官方文档》密码加密

原文链接   译者:carvendy

密码加密

  1. 介绍
  2. 怎么创建一个主密码
  3. 怎么加密服务端密码
  4. 怎么保持主密码可移动驱动器
  5. 提示

阅读全文

常用开源框架中设计模式使用分析

一、前言

说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者可以简化代码,或者可以是代码逻辑开起来清晰,或者对功能扩展很方便…。

设计模式按照使用场景可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。

阅读全文

UML建模图实战笔记

一、前言

UML:Unified Modeling Language(统一建模语言),使用UML进行建模的作用有哪些:

  • 可以更好的理解问题
  • 可以及早的发现错误或者被遗漏的点
  • 可以更加方便的进行组员之间的沟通
  • 支持面向对象软件开发建模,可以更好的描述显示编程的情景。
  • 对于复杂的系统来说,如果概要模型做的好,那么整个系统的模型也就很清晰明了。

阅读全文

JAVA互斥锁(synchronized&Lock):行为分析及源码

JVM中有这样一段注释:

[code lang=”java”]
// The base-class, PlatformEvent, is platform-specific while the ParkEvent is
// platform-independent. PlatformEvent provides park(), unpark(), etc., and
// is abstract — that is, a PlatformEvent should never be instantiated except
// as part of a ParkEvent.
// Equivalently we could have defined a platform-independent base-class that
// exported Allocate(), Release(), etc. The platform-specific class would extend
// that base-class, adding park(), unpark(), etc.
//
// A word of caution: The JVM uses 2 very similar constructs:
// 1. ParkEvent are used for Java-level "monitor" synchronization.
// 2. Parkers are used by JSR166-JUC park-unpark.
//
// We’ll want to eventually merge these redundant facilities and use ParkEvent.
[/code]

阅读全文

并发队列中迭代器弱一致性原理探究

一、前言

并发队列里面的Iterators是弱一致性的,next返回的是队列某一个时间点或者创建迭代器时候的状态的反映。当创建迭代器后,其他线程删除了该元素时候并不会抛出java.util.ConcurrentModificationException异常,能够保持创建迭代器后的元素一定被正确的next出来。

阅读全文

Java NIO系列教程(十 五)Java NIO Path

原文链接  译者:章筱虎

Path接口是java NIO2的一部分。首次在java 7中引入。Path接口在java.nio.file包下,所以全称是java.nio.file.Path。 java中的Path表示文件系统的路径。可以指向文件或文件夹。也有相对路径和绝对路径之分。绝对路径表示从文件系统的根路径到文件或是文件夹的路径。相对路径表示从特定路径下访问指定文件或文件夹的路径。相对路径的概念可能有点迷糊。不用担心,我将在本文的后面详细介绍相关细节。

不要将文件系统的path和操作系统的环境变量path搞混淆。java.nio.file.Path接口和操作系统的path环境变量没有任何关系。

在很多方面,java.nio.file.Path接口和java.io.File有相似性,但也有一些细微的差别。在很多情况下,可以用Path来代替File类。

阅读全文

《Maven官方文档》目录指南

原文链接   译者:carvendy

文档

Maven入门

介绍

阅读全文

《Maven官方文档》使用镜像仓库

原文链接  译者:carvendy

使用镜像仓库

在你指定的仓库中选择你想下载的确定工具,利润依赖或者maven插件。仓库可以什么在项目里,意味着如果你有一个自定义仓库,你将分析你的项目和容易地获取正确的配置。可是,你可能想使用一些可替换的镜像来作为特殊仓库而不改变项目文件。

使用镜像的一些原因:

  • 这是一个在网络上同步的镜像,位置很近也很快。
  • 你想替换掉一个特别的仓库使用你自己的网络仓库将会有更好的控制权
  • 你想使用仓库管理来提供本地缓存镜像,需要使用它的URL。

阅读全文

《Spring 5 官方文档》22. WebSocket Support

原文链接  译者信息:Dan  QQ:903585177

22. WebSocket 支持

参考文档的这一部分涵盖了Spring框架对Web应用程序中WebSocket风格消息传递的支持,包括使用STOMP作为应用程序级WebSocket子协议。

Section 22.1, “Introduction” 建立一个WebSocket的大致框架,涵盖应用挑战,设计考虑以及何时适合的想法。

Section 22.2,“WebSocket API” 介绍了服务端的Spring WebSocket API,Section 22.3,“SockJS Fallback Options” 介绍了SockJS 协议,并且展示如何配置和使用它.

Section 22.4.1, “Overview of STOMP” 介绍 STOMP 信息协议. Section 22.4.2, “Enable STOMP over WebSocket” 展示如何在Spring配置STOMP. Section 22.4.4, “Annotation Message Handling” 以下部分说明如何编写注释消息处理方法,发送消息,选择消息代理选项,以及与特殊“用户”目的地的工作. 最后, Section 22.4.18,“Testing Annotated Controller Methods” 列出了测试STOMP / WebSocket应用程序的三种方法.

阅读全文

《TensorFlow官方文档》翻译邀请

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。人工智能已经是越来越火的技术,6月份并发网组织大家翻译《TensorFlow官方文档》(需要翻墙),本次翻译快速开始部分,后续翻译编程指南官方教程,欢迎有兴趣的同学参与。

阅读全文

return top