Java 网络教程: ServerSocket

原文链接 作者:Jakob Jenkov 译者:homesick

用java.net.ServerSocket实现java服务通过TCP/IP监听客户端连接,你也可以用Java NIO 来代替java网络标准API,这时候需要用到 ServerSocketChannel。

创建一个 ServerSocket连接

以下是一个创建ServerSocket类来监听9000端口的一个简单的代码

ServerSocket serverSocket = new ServerSocket(9000);

阅读全文

Java IO: 字节和字符数组

原文链接  作者: Jakob Jenkov   译者:homesick

内容列表

  • 从InputStream或者Reader中读入数组
  • 从OutputStream或者Writer中写数组

在java中常用字节和字符数组在应用中临时存储数据。而这些数组又是通常的数据读取来源或者写入目的地。如果你需要在程序运行时需要大量读取文件里的内容,那么你也可以把一个文件加载到数组中。当然你可以通过直接指定索引来读取这些数组。但如果设计成为从InputStream或者Reader,而不是从数组中读取某些数据的话,你会用什么组件呢?

阅读全文

《GO并发编程实战》—— 条件变量

QQ20141107-1声明:本文是《Go并发编程实战》的样章,感谢图灵授权并发编程网站发布样章,禁止以任何形式转载此文。

我们在第6章讲多线程编程的时候详细说明过条件变量的概念、原理和适用场景。因此,我们在本小节仅对sync代码包中与条件变量相关的API进行简单的介绍,并使用它们来改造我们之前实现的*myDataFile类型的相关方法。

在Go语言中,sync.Cond类型代表了条件变量。与互斥锁和读写锁不同,简单的声明无法创建出一个可用的条件变量。为了得到这样一个条件变量,我们需要用到sync.NewCond函数。该函数的声明如下:

[code lang=”java”]
func NewCond(l Locker) *Cond
[/code]

阅读全文

Java IO: InputStream

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

InputStream类是Java IO API中所有输入流的基类。InputStream子类包括FileInputStream,BufferedInputStream,PushbackInputStream等等。参考Java IO概述这一小节底部的表格,可以浏览完整的InputStream子类的列表。

阅读全文

Java Reflection(三):构造器

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)
内容索引
获取Constructor对象
构造方法参数
利用Constructor对象实例化一个类

利用Java的反射机制你可以检查一个类的构造方法,并且可以在运行期创建一个对象。这些功能都是通过java.lang.reflect.Constructor这个类实现的。本节将深入的阐述Java Constructor对象。

阅读全文

并发网2014.10月阅读量Top10

ICON4立冬降至,转眼到了月初,并发网10月Top10的阅读量的文章新鲜送到,希望各位看官请笑纳!有任何意见和建议,欢迎告诉我们,我们在努力!~祝大家双十一快乐

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

阅读全文

《GO并发编程实战》—— 锁的使用

QQ20141107-1声明:本文是《Go并发编程实战》的样章,感谢图灵授权并发编程网站发布样章,禁止以任何形式转载此文。

在本节,我们对Go语言所提供的与锁有关的API进行说明。这包括了互斥锁和读写锁。我们在第6章描述过互斥锁,但却没有提到过读写锁。这两种锁对于传统的并发程序来说都是非常常用和重要的。

  1. 互斥锁

互斥锁是传统的并发程序对共享资源进行访问控制的主要手段。它由标准库代码包sync中的Mutex结构体类型代表。sync.Mutex类型(确切地说,是*sync.Mutex类型)只有两个公开方法——Lock和Unlock。顾名思义,前者被用于锁定当前的互斥量,而后者则被用来对当前的互斥量进行解锁。

类型sync.Mutex的零值表示了未被锁定的互斥量。也就是说,它是一个开箱即用的工具。我们只需对它进行简单声明就可以正常使用了,就像这样:

阅读全文

Java IO: 异常处理

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

流与Reader和Writer在结束使用的时候,需要正确地关闭它们。通过调用close()方法可以达到这一点。不过这需要一些思考。请看下边的代码:

[code lang=”java”]
InputStream input = new FileInputStream("c:\\data\\input-text.txt");

int data = input.read();

while(data != -1) {

//do something with data…  

doSomethingWithData(data);

data = input.read();

}

input.close();
[/code]

阅读全文

Java网络教程:URL + URLConnection

原文地址  译者:梁远铭

 

目录

  • HTTP GET和POST
  • 从URLs到本地文件

在java.net包中包含两个有趣的类:URL类和URLConnection类。这两个类可以用来创建客户端到web服务器(HTTP服务器)的连接。下面是一个简单的代码例子:
阅读全文

G1垃圾收集器介绍

原文链接,译者:Greenster

简介

Oracle在JDK7 update 4之后开始完全支持G1垃圾收集器,G1是一个针对多处理器大容量内存的服务器端的垃圾收集器,其目标是在实现高吞吐量的同时,尽可能的满足垃圾收集暂停时间的要求。G1在执行一些Java堆空间中的全区域操作(如:全局标记)时是和应用程序线程并发进行的,因此减少了Java堆空间的中断比例。(译者注:可简单理解为减少了Stop-the-World的时间比例) 阅读全文

《Java特种兵》第一章

1.1 String的例子,见证下我们的功底
1.2 一些简单算法,你会如何理解
1.3 简单数字游戏玩一玩
1.4 功底概述
1.5 功底补充
1.6 常见的目录与工具包
1.7 面对技术,我们纠结的那些事儿
1.8 老A是在逆境中迎难而上者

Java Reflection(二):Classes

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)
使用Java反射机制可以在运行时期检查Java类的信息,检查Java类的信息往往是你在使用Java反射机制的时候所做的第一件事情,通过获取类的信息你可以获取以下相关的内容:
Class对象
类名
修饰符
包信息
父类
实现的接口
构造器
方法
变量
注解

除了上述这些内容,还有很多的信息你可以通过反射机制获得,如果你想要知道全部的信息你可以查看相应的文档JavaDoc for java.lang.Class里面有详尽的描述。

阅读全文

《Java特种兵》5.1 基础介绍

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

5.1 基础介绍

†† 5.1.1 线程基础

本节内容介绍给那些还没接触过Java线程的朋友,希望能有个感性认识。

Java线程,英文名是Thread,所有的Java程序的运行都是在进程中分配线程来处理的。如果是一个main方法,则由一个主线程来处理,如果不创建自定义线程,那么这个程序就是单线程的。如果是Web应用程序,那么就由Web容器分配线程来处理(在4.4.1节中介绍了在Tomcat源码中是如何分配线程的)。

阅读全文

Java Reflection(一):Java反射指南

原文地址   作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com)

Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值。

Java反射机制功能强大而且非常实用。举个例子,你可以用反射机制把Java对象映射到数据库表,就像Butterfly Persistence所做的那样,或者把脚本中的一段语句在运行期映射到相应的对象调用方法上,就像 Butterfly Container在解析它的配置脚本时所做的那样。

阅读全文

《Java特种兵》1.8 老A是在逆境中迎难而上者

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

1.8 老A是在逆境中迎难而上者

小胖哥虽然不是一个“传道者”,但是喜欢小小论道,因为在人生的道路上,很多时候你我都会面临许多纠结的事情,而这个时候我们的态度会决定命运,而道就是道理和方法。
阅读全文

return top