其他技术区
java在线 标签描述

原文链接作者: Jakob Jenkov 译者: 李璟 PipedOutputStream可以往管道里写入读取字节流数据,代码如下: OutputStream output = new PipedOutputStream(pipedInputStream); while(moreData) {     int data = getMoreData();     output.write(d...

  TEZNKK3IfmPf   2023年11月15日   49   0   0 java在线

作者: Jakob Jenkov 译者: 李璟 本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader、BufferedWriter、FilterReader、FilterWriter。 BufferedReader 原文链接 BufferedReader能为字符输入流提供缓冲区,可以提高许多IO处理的速度。你可以一次读取一大块的数据,而不需要每次从网络或者磁盘中一次读取一个字节。特别是在访问大量磁盘数据时,缓冲通常会让IO快上许多。 BufferedReader和BufferedInputStream的主要区...

  TEZNKK3IfmPf   2023年11月15日   67   0   0 程序开发语言java在线

作者: Jakob Jenkov 译者: 李璟。 本章节将简要介绍管道与字符数组相关的reader和writer,主要涉及PipedReader、PipedWriter、CharArrayReader、CharArrayWriter。 PipedReader 原文链接 PipedReader能够从管道中读取字符流。与PipedInputStream类似,不同的是PipedReader读取的是字符而非字节。换句话说,PipedReader用于读取管道中的文本。代码如下: Reader reader = new P...

  TEZNKK3IfmPf   2023年11月15日   32   0   0 程序开发语言java在线

原文地址:作者:JakobJenkov  译者:张坤 CAS(Compareandswap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。这听起来可能有一点复杂但是实际上你理解之后发现很简单,接下来,让我们跟深入的了解一下这项技术。 CAS的使用场景 在程序和算法中一个经常出现的模式就是“checkandact”模式。先检查后操作模式发生在代码中首先检查一个变量的值,然后再基于这个值做一些操作。下面是一个简单的示例: class MyL...

  TEZNKK3IfmPf   2023年11月15日   21   0   0 java在线

原文地址译者:叶文海。译者注:这是一篇在Stackoverflow上面的一个经典问题,也是Java开发者容易混淆的一个问题,我节选了其中两个vote最高的回复进行翻译。  问题:我一直认为Java的参数是按引用传递,然而我看过一些文章里说Java的参数并不是按引用传递的,比如这篇,这让我很迷惑。Java中的参数到底是按引用传递还是按值传递? 回答1: 在Java里参数是按值来传递的。比较难理解的可能是Java传递的是对象的引用,但这些引用是按值传递。比如: public static void main( String[] ...

  TEZNKK3IfmPf   2023年11月15日   49   0   0 java在线

原文链接  译者:carvendy 综述   本页提供在Istio中,如何管理流量,包括流量管理原则的好处。假设你已经读了什么是Istio?,并且熟悉与Istio相关的高可用架构。你可以本章节的其他指南中,找到个别的流量管理特性。 领航员(Pilot)和使者(Envoy)   在Istio中流量管理使用的核心组件就是领航员(Pilot),在一个详细的Istio服务网格中,它管理和配置所有使者代理发布。可以制定你想要使用的规则在使者代理之间路由流量,还可以配置失败恢复的特性,例如:超时、重试和熔断。在网格中,维持着所有服务的权威模型,并使用使者代理可以让其他服务在网格中发现其他服务。 &nbs...

  TEZNKK3IfmPf   2023年11月15日   60   0   0 java在线

原文链接 译者:carvendy jdk1.4项目使用JDK1.5构建指南 你自从Maven2.2.0需要JDK1.5来执行,很多用户他们的项目依然使用java1.4或者更老的版本,他们将需要做一些调整。理想的情况下,你可以通过使用JDK1.4编译和测试来解决这个问题,提供适当的工具链配置。无论如何,当前版本编译插件(2.0.2)不是工具链能做的,所以构建一个妥当的构建使用Maven2.2.0来构建java面板,比1.5还要老的需要更多其他的配置。 第一步:源码和目标的配置 第一步支持比JDK1.5更老的在你构建需要的:源码和目标的API版本为你编译插件而配置。自从JDK1.5以上依...

  TEZNKK3IfmPf   2023年11月15日   29   0   0 java在线

一、前言 在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是A系统调用B系统服务,B系统调用C系统的服务。当尾部应用C发生故障而系统B没有服务降级时候可能会导致B,甚至系统A瘫痪,这种现象被称为雪崩现象。所以在系统设计时候要使用一定的降级策略,来保证当服务提供方服务不可用时候,服务调用方可以切换到降级后的策略进行执行。 二、Hystrix中基于自反馈调节熔断状态的算法原理 我们可以把熔断器想象为一个保险丝,在电路系统中,一般在所有的家电系统连接外部供电的线路中间都会加一个保险丝,当外部电压过高,达到保险丝的熔点时候,保险丝就会被熔断,从而可以切断家电系统与外部电路的联通,进...

  TEZNKK3IfmPf   2023年11月15日   18   0   0 java在线

原文链接   译者:carvendy 使用Maven2为不同环境构建 构建同一个组件到不同的环境是经常让人苦恼的。你有多个环境,为了实例化测试和生产服务或者可能是一个服务的集合他们使用了不同的配置文件。在指南中我将解释怎么样使用配置属性来构建和打包组件并指定环境。看看构建配置属性解释为了配置属性的概念更深入的解释。笔记: 指南指出你必须要有基本的Maven2. 将使用一种方式配置Maven,简单地解决了配置安装。由简单配置安装你,我的意思是你只能有一个文件或者小集合文件来指定环境。有其他更好的方法来处理两个和许多尺寸配置问题····· 这个例子使用标准的文档结...

  TEZNKK3IfmPf   2023年11月15日   39   0   0 java在线

作者: Jakob Jenkov 译者: 李璟 Reader 原文链接 Reader是Java IO中所有Reader的基类。Reader与InputStream类似,不同点在于,Reader基于字符而非基于字节。换句话说,Reader用于读取文本,而InputStream用于读取原始字节。 请记住,Java内部使用UTF8编码表示字符串。输入流中一个字节可能并不等同于一个UTF8字符。如果你从输入流中以字节为单位读取UTF8编码的文本,并且尝试将读取到的字节转换成字符,你可能会得不到预期的结果。 read()方法返回一个包含了读取到的字符内...

  TEZNKK3IfmPf   2023年11月15日   23   0   0 java在线

原文链接作者: Jakob Jenkov  System.in, System.out, System.err这3个流同样是常见的数据来源和数据流目的地。使用最多的可能是在控制台程序里利用System.out将输出打印到控制台上。 JVM启动的时候通过Java运行时初始化这3个流,所以你不需要初始化它们(尽管你可以在运行时替换掉它们)。 System.in System.in是一个典型的连接控制台程序和键盘输入的InputStream流。通常当数据通过命令行参数或者配置文件传递给命令行Java程序的时候,System.in并不是很常用。图形界...

  TEZNKK3IfmPf   2023年11月15日   24   0   0 程序开发语言java在线

原文地址    译文地址 译者:jackWang Groovy语言一直在努力亲近Java开发人员。在设计Groovy语言的时候,我们遵循最小标新立异原则,努力让那些Java开发背景的开发者容易上手并学会。下面我们列举Groovy和Java的一些主要区别。 1默认导入 下面的包和类是默认导入的,也就是说不必精确使用import语句来导入它们: java.io. java.lang. java.math.BigDecimal java.math.BigInteger java.net. java.util. groovy.lang. groovy...

  TEZNKK3IfmPf   2023年11月15日   24   0   0 java在线

原文链接作者:JakobJenkov 译者:李璟。校对:方腾飞 在这一小节,我会试着给出JavaIO(java.io)包下所有类的概述。更具体地说,我会根据类的用途对类进行分组。这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得更加容易。 输入和输出–数据源和目标媒介 术语“输入”和“输出”有时候会有一点让人疑惑。一个应用程序的输入往往是另外一个应用程序的输出。那么OutputStream流到底是一个输出到目的地的流呢,还是一个产生输出的流?InputStream流到底会不会输出它的数据给读取数据的程序呢?就我个人而言,在第一天学习JavaIO的时...

  TEZNKK3IfmPf   2023年11月15日   21   0   0 java在线

原文链接 作者:JakobJenkov  译者:Connor。李璟 校对:方腾飞 JavaIO是一套Java用来读写数据(输入和输出)的API。大部分程序都要处理一些输入,并由输入产生一些输出。Java为此提供了java.io包。 如果你浏览下java.io包,会对其中各样的类选择感到迷惑。这些类的作用都是什么?对于某个任务该选择哪个类?怎样创建你自己的类做插件?这个手册的目的就是给你介绍这些类是如何组织的,以及怎样使用他们,因此你就不会疑惑需要时怎样选取合适的类,或者是否有一个满足你需求的类已经存在了。 Java.io包的范围 java.io包并没有...

  TEZNKK3IfmPf   2023年11月15日   22   0   0 API数据接口java在线

原文链接  作者:MarekPiechut  译者:陈振阳 我经常遇到一些这样的Java程序员,他们不确定应该如何恰当的实现单例模式。 我不考虑在线程的环境中合适的实现。但是使用你能在网络上找到的大多数常见的实现方式,你可以轻松地创建你想要的多种单例实现。 假设你有下面这种常见的单例的实现: public final class NonSafeSingleton implements Serializable {     private sta...

  TEZNKK3IfmPf   2023年11月15日   28   0   0 java在线

原文链接 译者:carvendy 插件前缀解析策略 当你执行maven的时候使用一个标准的生命周期,这些插件参与的生命周期就像是一个相当简单的进程。无论如何,当你从命令行中引用一个指令,例如clean,Maven必须有一些可靠的方式让clean插件前缀为maven-clean-plugin。这提供了简洁的命令行调用,当保存这些描述性的插件的真实工件id。 对于很多复杂性的问题,不是所有插件应该被强制使用同样的组id(在仓库中)。从这些组id在一个项目中假定被控制,和对于Maven多个项目可能使用的插件,它跟随着插件前缀匹配必须容纳多个插件组id。对于地址关系,Maven提供了一块新的...

  TEZNKK3IfmPf   2023年11月15日   38   0   0 java在线

原文链接 作者:JakobJenkov 译者:祖强 为了高效的使用和理解Java集合Api,对集合中包含的接口有一个概览是很有用的。所以,我将在这里提供这些。 接口有两个“组”,Collection‘s和Map‘s。 下面的图表是Collection接口层级的一个概览: 下面的图表是Map接口层级的一个概览:                  

  TEZNKK3IfmPf   2023年11月15日   26   0   0 java在线

原文链接     译者:小村长 最近两个项目中用到了RocketMQ消息中间件,每次都是在网上找几个Demo,而没有去看它的官方文档。年前面试某大型互联网企业。RocketMQ多有提及。今借此机会翻译一篇RocketMQ的官方文档。希望能够对大家的工作和学习有所帮助。 由于RocketMQ是互联网企业解耦常用的消息中间件,希望大家在使用的时候也多多思考几个问题: 第一,RocketMQ由几部分组成以及每个组件的作用。 第二,RocketMQ消息怎么保证可靠性以及高可用性。 第三,RocketMQ消息种类以及怎么保证消息有序。 最后,我还是建议...

  TEZNKK3IfmPf   2023年11月15日   44   0   0 apachejava在线

原文链接作者: Jakob Jenkov 译者: 李璟。校对:方腾飞 Java中网络的内容或多或少的超出了Java IO的范畴。关于Java网络更多的是在我的Java网络教程中探讨。但是既然网络是一个常见的数据来源以及数据流目的地,并且因为你使用Java IO的API通过网络连接进行通信,所以本文将简要的涉及网络应用。 当两个进程之间建立了网络连接之后,他们通信的方式如同操作文件一样:利用InputStream读取数据,利用OutputStream写入数据。换句话来说,Java网络API用来在不同进程之间建立网络连接,而Java&n...

  TEZNKK3IfmPf   2023年11月15日   58   0   0 java在线

原文链接     译者:小村长 RocketMQlogappender提供log4jappender,log4j2appender和logbackappender供业务使用,下面是配置示例. log4j 当使用log4j属性配置文件时,config如下. log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender log4j.appender.mq.Tag=yourTag log4j.appender.mq.Topic=yourLogTopic lo...

  TEZNKK3IfmPf   2023年11月15日   26   0   0 java在线