Java IO: 字节和字符数组

原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

Java中的字节和字符数组,经常被用于临时存储应用程序内部的数据,所以数组也是常见的数据来源以及数据流目的地。如果你在程序执行过程中需要频繁访问文件的内容,你可能会愿意将文件加载到数组中去。当然你可以通过索引直接访问这些数组。但是如果你有一个组件的设计初衷是从InputStream或者Reader而非数组中读取某些数据呢?

阅读全文

《Java特种兵》1.1 String的例子,见证下我们的功底

本文是《Java特种兵》的样章,感谢博文视点和作者授权本站发布

1.1 String的例子,见证下我们的功底

哇塞,第1节就开始讲代码例子,受不了啦,胖哥,你坏死了!所有的书第1节都是写这个领域有什么东西的。

哈哈,小胖哥天生就是个逆天之人哦,希望你能先实践有了感性认识后,再进行理论了解内在。

下面的代码改编于网络牛人的一段程序,先看代码清单1-1。

阅读全文

Akka笔记之日志及测试

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

在前两篇笔记中(第一篇第二篇),我们简单地介绍了一下Actor以及它的消息传递是如何工作的。在本篇中,我们将看下如何解决TeacherActor的日志打印及测试的问题。

阅读全文

Akka笔记之消息传递

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

在Akka笔记第一篇的介绍中,我们大致介绍了下Akka工具箱中的Actor。在第二篇当中,我们来看一下Actor消息传递的功能。这里还是延用之前使用的那个学生-老师的例子。

在Actor消息的第一部分中,我们会创建一个老师的Actor,但学生Actor则先不创建,而是使用一个叫做StudentSimulatorApp的主程序。

阅读全文

Akka笔记之Actor简介

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

写过多线程的人都不会否认,多线程应用的维护是件多么困难和痛苦的事。我说的是维护,这是因为开始的时候还很简单,一旦你看到性能得到提升就会欢呼雀跃。然而,当你发现很难从子任务的错误中恢复或者有些僵尸BUG很难复现再或者你的分析器显示你的线程在写入一个共享状态前大部分时间都浪费在阻塞上面的时候,痛苦降临了。

我刻意没提Java的并发API,以及它里面的集合类使得多线程编程变得多么轻松简单,因为我相信既然你们点进了这篇文章,那就说明你希望能更好地控制你的子任务,或者你就是不喜欢使用锁以及同步块,希望能有一种更高层次的抽象。

阅读全文

Java网络教程

译者:贾毅  校对:方腾飞

本系列尚未翻译完成,有兴趣参与翻译的请在本文评论处留言。

1 Java 网络教程: 基础
2 Java 网络教程: Socket
3 Java 网络教程: ServerSocket
4 Java Networking: UDP DatagramSocket
5 Java 网络教程: URL + URLConnection
6 Java网络教程:JarURLConnection
7 Java 网络教程: InetAddress
8 Java网络教程:Protocol Design

阅读全文

Java IO: 网络

原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 校对:方腾飞

Java中网络的内容或多或少的超出了Java IO的范畴。关于Java网络更多的是在我的Java网络教程中探讨。但是既然网络是一个常见的数据来源以及数据流目的地,并且因为你使用Java IO的API通过网络连接进行通信,所以本文将简要的涉及网络应用。

阅读全文

Java IO: 管道

原文链接 作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com)

Java IO中的管道为运行在同一个JVM中的两个线程提供了通信的能力。所以管道也可以作为数据源以及目标媒介。

你不能利用管道与不同的JVM中的线程通信(不同的进程)。在概念上,Java的管道不同于Unix/Linux系统中的管道。在Unix/Linux中,运行在不同地址空间的两个进程可以通过管道通信。在Java中,通信的双方应该是运行在同一进程中的不同线程。

阅读全文

Java IO: 文件

原文链接  作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com)

在Java应用程序中,文件是一种常用的数据源或者存储数据的媒介。所以这一小节将会对Java中文件的使用做一个简短的概述。这篇文章不会对每一个技术细节都做出解释,而是会针对文件存取的方法提供给你一些必要的知识点。在之后的文章中,将会更加详细地描述这些方法或者类,包括方法示例等等。

阅读全文

Java IO 概述

原文链接 作者: Jakob Jenkov   译者: 李璟(jlee381344197@gmail.com)  校对:方腾飞

在这一小节,我会试着给出Java IO(java.io)包下所有类的概述。更具体地说,我会根据类的用途对类进行分组。这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得更加容易。

阅读全文

并发网每月TOP10文章

ICON5并发网从七月份开始,每月推送网站的TOP10文章,你值得阅读。感谢小编卢爱然的编辑,感谢UED冯念制作的图标

Java IO教程

原文链接 作者:Jakob Jenkov  译者:Connor (cronnorc@gmail.com) ,李璟  校对:方腾飞

Java IO 是一套Java用来读写数据(输入和输出)的API。大部分程序都要处理一些输入,并由输入产生一些输出。Java为此提供了java.io包。

如果你浏览下java.io包,会对其中各样的类选择感到迷惑。这些类的作用都是什么?对于某个任务该选择哪个类?怎样创建你自己的类做插件?这个手册的目的就是给你介绍这些类是如何组织的,以及怎样使用他们,因此你就不会疑惑需要时怎样选取合适的类,或者是否有一个满足你需求的类已经存在了。

阅读全文

Java中的Atomic包使用指南

本文首发于并发网,作者:方腾飞

引言

Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。

阅读全文

Java类锁和对象锁实践

感谢[jiehao]同学的投稿,投稿可将文章发送到tengfei@ifeve.com

类锁和对象锁是否会冲突?对象锁和私有锁是否会冲突?通过实例来进行说明。

一、相关约定

为了明确后文的描述,先对本文涉及到的锁的相关定义作如下约定:

1. 类锁:在代码中的方法上加了static和synchronized的锁,或者synchronized(xxx.class)的代码段,如下文中的increament();

2.对象锁:在代码中的方法上加了synchronized的锁,或者synchronized(this)的代码段,如下文中的synOnMethod()和synInMethod();

3.私有锁:在类内部声明一个私有属性如private Object lock,在需要加锁的代码段synchronized(lock),如下文中的synMethodWithObj()。

阅读全文

线上性能问题初步排查方法

本文首发于并发网,作者:方腾飞

引言

有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程,本文只是简单的介绍一些常用的工具,帮助定位线上问题。

阅读全文

return top