Java NIO系列教程(十一) Java NIO与IO 当学习了 Java NIO 和 IO 的 API 后,一个问题马上涌入脑海: 我应该何时使用 IO,何时使用 NIO 呢?在本文中,我会尽量清晰地解析 Java NIO 和 IO 的差异.它们的使用场景,以及它们如何影响您的代码设计. 下表总结了 Java NIO 和 IO 之间的主要差别,我会更详细地描述表中每部分的差异. IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器 一.面向流与面向缓冲 Java NIO 和 IO…
原文地址:http://www.work100.net/training/java-collection.html 更多教程:光束云 - 免费课程 集合 序号 文内章节 视频 1 概述 2 集合接口 3 集合实现类(集合类) 4 集合算法 5 如何使用迭代器 6 如何使用比较器 7 总结 请参照如上章节导航进行阅读 1.概述 早在 Java 2 中之前,Java 就提供了特设类.比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组. 虽…
原文地址:http://www.work100.net/training/java-email.html 更多教程:光束云 - 免费课程 邮件收发 序号 文内章节 视频 1 概述 2 发送一封简单的邮件 3 发送一封HTML邮件 4 发送带有附件的邮件 5 用户认证 请参照如上章节导航进行阅读 1.概述 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) . 您可以从 Jav…
原文地址:http://www.work100.net/training/java-multi-threading.html 更多教程:光束云 - 免费课程 多线程 序号 文内章节 视频 1 概述 2 一个线程的生命周期 3 线程的优先级 4 创建一个线程 5 通过实现Runnable接口来创建线程 6 通过继承Thread来创建线程 7 通过继承Thread来创建线程 8 通过Callable和Future创建线程 9 创建线程的三种方式的对比 10 线程的几个主要概念 11 多线程的使用 请…
原文地址:http://www.work100.net/training/java-applet.html 更多教程:光束云 - 免费课程 Applet 序号 文内章节 视频 1 概述 2 Applet的生命周期 3 一个简单Applet程序 4 Applet类 5 Applet的调用 6 获得Applet参数 7 指定Applet参数 8 应用程序转换成Applet 9 事件处理 10 显示图片 11 播放音频 请参照如上章节导航进行阅读 1.概述 Applet 是一种 Java 程序.它一般…
一. 出现背景: 在JDK1.5之前,我们定义常量是这种:public static final String RED = "RED"; 在JDK1.5中增加了枚举类型,我们能够把相关的常量分组到一个枚举类中: public enum Color { RED, GREEN, BLUE; } 使用的时候能够这样:Color c = Color.RED 二. 枚举特点: 1. 枚举enum是一个特殊的Java类.它继承自java.lang.Enum,继承了非常多Enum的方法.但枚举类是一…
原文地址:http://www.work100.net/training/java-documentation.html 更多教程:光束云 - 免费课程 文档注释 序号 文内章节 视频 1 概述 2 javadoc标签 3 文档注释 4 javadoc输出什么 请参照如上章节导航进行阅读 1.概述 Java 支持三种注释方式.前两种分别是 // 和 /* */,第三种被称作说明注释,它以 /** 开始,以 */ 结束. 说明注释允许你在程序中嵌入关于程序的信息.你可以使用 javadoc 工具软…
原文地址:http://www.work100.net/training/java-generic.html 更多教程:光束云 - 免费课程 泛型 序号 文内章节 视频 1 概述 2 泛型方法 3 泛型类 4 类型通配符 请参照如上章节导航进行阅读 1.概述 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数. 假定我们有这样一个需求…
原文地址:http://www.work100.net/training/java-serialization.html 更多教程:光束云 - 免费课程 序列化 序号 文内章节 视频 1 概述 2 序列化对象 3 反序列化对象 请参照如上章节导航进行阅读 1.概述 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信息和存储在对象中数据的类型. 将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是…
原文地址:http://www.work100.net/training/java-networking.html 更多教程:光束云 - 免费课程 网络编程 序号 文内章节 视频 1 概述 2 Socket编程 3 ServerSocket类的方法 4 Socket类的方法 5 InetAddress类的方法 6 Socket客户端实例 7 Socket服务端实例 请参照如上章节导航进行阅读 1.概述 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net…
原文地址:http://www.work100.net/training/java-data-structure.html 更多教程:光束云 - 免费课程 数据结构 序号 文内章节 视频 1 概述 2 枚举(Enumeration) 3 向量(Vector) 4 栈(Stack) 5 字典(Dictionary) 6 哈希表(Hashtable) 7 属性(Properties) 请参照如上章节导航进行阅读 1.概述 Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口…
<I/O模型之四:Java 浅析I/O模型> 一.阻塞IO与非阻塞IO 阻塞IO: 通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据.同样,写入调用将会阻塞直至数据能够写入.传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求.这种模式带来的一个问题就是线程数量的剧增,大量的线程会增大服务器的开销.大多数的实现为了避免这个问题,都采用了线程池模型,并设置线程池线…
这个系列的文章,我们开始玩一玩IO方面的知识,对于IO和NIO,我们经常会接触到,了解他们的基本内容,对于我们的工作会有特别大的帮助.这篇博文我们仅仅是介绍IO和NIO的基本概念,以及一些关键词. 基本概念 IO是主存和外部设备(硬盘.终端和网络)进行数据拷贝的过程.IO是操作系统的底层功能实现,底层通过I/O指令完成对数据的操作. java标准IO回顾 Java 标准 IO 类库是 io 面向对象的一种抽象.基于本地方法的底层实现,我们无须关注底层实现.InputStream\OutputSt…
Java NIO中的DatagramChannel是一个能收发UDP包的通道.因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入.它发送和接收的是数据包. 打开 DatagramChannel 下面是 DatagramChannel 的打开方式: 1 DatagramChannel channel = DatagramChannel.open(); 2 channel.socket().bind(new InetSocketAddress(9999)); 这个例子打开的 Datagr…
Java XML校验API可以通过XSD(XML Schema Definition)校验XML文件内容的合法性. 在以下的案例中使用javax.xml.validation.Validator 类通过一个xsd文件来鉴定XML内容合法性. 以下是我们将要用于校验的xsd文件和xml文件的内容. Employee.xsd <? xml version="1.0" encoding="UTF-8"?> <schema xmlns="http…
介绍一个学JAVA的零基础学习JAVA的网站,推介一个学习JAVA的系列教程-狗鱼IT教程 下面是java的系教程: 1、[java教程]Java 教程 2、[java教程]Java 简介 3、[java教程]Java 开发环境配置 4、[java教程]Java 基础语法 5、[java教程]Java 对象和类 6、[java教程]Java 基本数据类型 7、[java教程]Java 变量类型 8、[java教程]Java 修饰符 9、[java教程]Java 运算符 10、[java教程]Ja…
原文链接     作者:Jakob Jenkov     译者:airu     校对:丁一 Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的. 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存. 下面是NIO Buffer相关的话题列表: Buffer的基本用法 Buffer的capacity,position和limit Buffer…
7本免费的Java电子书和教程 1. Thinking in Java (Third Edition) 本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书.这本书可以帮助你系统的学习Java,里面包含有很多好的代码示例.第三版仍旧是免费的,直到第四版才开始收费,不过仍旧值得买一本收藏. Think in Java 免费下载: Thinking in Java 2. The Java Tutorials 这个教程来自于Oracle/Sun.对于初学者是不错的选择.我们可以根据…
Java NIO系列教程(十)DatagramChannel 转载自并发编程网 – ifeve.com,本文链接地址: Java NIO系列教程(十) Java NIO DatagramChannel…
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. enum Signal { GREEN, YELLOW, RED } pu…
ylbtech-Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用 1.返回顶部 1. Java 实例 - Enum(枚举)构造函数及方法的使用  Java 实例 以下实例演示了Enum(枚举)构造函数及方法的使用: Main.java 文件 enum Car { lamborghini(900),tata(2),audi(50),fiat(15),honda(12); private int price; Car(int p) { p…
ylbtech-Java-Runoob-高级教程-实例-数组:12. Java 实例 – 数组差集 1.返回顶部 1. Java 实例 - 数组差集  Java 实例 以下实例演示了如何使用 removeAll() 方法来计算两个数组的差集: Main.java 文件 import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList objArray = new A…
ylbtech-Java-Runoob-高级教程-实例-字符串:12. Java 实例 - 字符串优化 1.返回顶部 1. Java 实例 - 字符串优化  Java 实例 以下实例演示了通过 String.intern() 方法来优化字符串: StringOptimization.java 文件 public class StringOptimization { public static void main(String[] args){ String variables[] = new S…
摘自:http://www.runoob.com/java/java-examples.html 1.数组排序及元素查找 以下实例演示了如何使用sort()方法对Java数组进行排序,及如何使用 binarySearch() 方法来查找数组中的元素, 这边我们定义了 printArray() 方法来打印数组: package javaLearn; import java.util.Arrays; public class MainClass{ public static void main(St…
1.文件写入 import java.io.*; public class MainClass{ public static void main(String[] args){ try{ BufferedWriter out = new BufferedWriter(new FileWriter("testwrite.txt")); out.write("lalala"); out.close(); System.out.println("创建成功 !&q…
本文地址 可以拜读: 从零开始学 Java 分享提纲: 1. Java数据结构 2. Java 集合框架 3. Java泛型 4. Java序列化 5. Java网络编程 6. Java发送Email 7. Java多线程编程 8. Java Applet基础 9. Java MySQL连接 1. java数据结构 1)[概述] Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(…
摘自 :http://www.runoob.com/java/java-url-processing.html Java URL 处理 URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是如何处理URL的.URL可以分为如下几个部分. protocol://host:port/path?query#fragment protocol(协议)可以是HTTP.HTTPS.FT…
摘自:http://www.runoob.com/java/java-networking.html JAVA网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net包中J2SE的API包含有类和接口,他们提供低层次的通信细节.你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节. java.net包中提供了两种常见的网络协议的支持: TCP:TCP是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信.通常用于互联网协议,被称TCP…
目录 1.Java面向对象方法 1.1. 创建类和对象的方法 1.2. this的使用 1.3. 静态域和静态方法 1.3.1. 静态域:属于类的级别 1.3.2.静态常量 1.3.3 静态方法 1.3.4. 工厂方法 1.3.5. main方法 1.4. 对象构造 1.4.1. 对象重载 1.4.2. 类的构造器以及初始化 1.5. 包 2. Java的继承 2.1. 继承的语法 2.2. 继承中的对象转型 2.2.1. 对象向上转型 2.2.2. 对象向下转型 2.3. 阻止继承:final…
原文源自http://www.jb51.net/article/73827.htm 方法调用Java支持两种调用方法的方式,根据方法是否返回值来选择. 当程序调用一个方法时,程序的控制权交给了被调用的方法.当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序. 当方法返回一个值的时候,方法调用通常被当做一个值.例如: int larger = max(30, 40); 如果方法返回值是void,方法调用一定是一条语句.例如,方法println返回void.下面的调用是个语句: Sy…