一.什么是IO Stream Stream 是在编程语言中对输入输出的总称 (一种比喻的称谓.Stream 为流水,输入输出实际上就是指数据的流动,数据由一个地方运动的另一个地方,就像流水一样,程序员将输入输出比作流水,再恰当不过了).  流按照其所载内容分类,大致可分为字节流和字符流两大类. 1.字节流 (Byte Stream) 在计算机中,byte是相当于机器语言中的单词,他在Java中统一由InputStream和OutputStream作处理.   2.字符流(Character St…
1. package com.io.Stream; import java.io.*; public class NyFileInputStream1 { /** * 读取文件的streamIO * * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new NyFileInputStream1(); } public NyFileInputStream1(){…
转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 JAVA基础(3)——容器(1)——常用容器分类 JAVA基础(4)——容器(2)——普通容器 JAVA基础(5)——并发(1)——总体认识 JAVA基础(6)——并发(2)——原子 JAVA基础(7)——并发(3)——锁机制 JAVA基础(8)——并发(4)——线程池 JAVA基础(9)——容器(…
1.引言 很多初涉网络编程的程序员,在研究Java NIO(即异步IO)和经典IO(也就是常说的阻塞式IO)的API时,很快就会发现一个问题:我什么时候应该使用经典IO,什么时候应该使用NIO? 在本文中,将尝试用简明扼要的文字,阐明Java NIO和经典IO之间的差异.典型用例,以及这些差异如何影响我们的网络编程或数据传输代码的设计和实现的. 本文没有复杂理论,也没有像网上基它文章一样千篇一律的复制粘贴,有的只是接地气的通俗易懂,希望能给你带来帮助. (本文同步发布于:http://www.5…
我们都知道,java中对类型的检查是很严格的,所以我们平操作时,也往往很小心. 如题: (T[]) new Object[size],这种写法是一般我们是不会干的!但是有点经验的同学,还是会遇到这样写的.那么,今天咱们就来看看,像这样的写法对不对,也顺便深入理解java的类型转换机制吧! 问题1: 如题 (T[]) new Object[size]  的写法对不对? 答案是肯定的,没毛病. 为啥呢? 因为 java 的泛型只是语法糖,在java编译后,就不见了,到最后都会转为 object 类型…
异常问题: Caused by: org.elasticsearch.index.query.QueryShardException: Failed to parse query [LOL: Uzi和Mlxg偶遇飞机故障, 二人被赶下飞机, Uzi句话暴露关系!] at org.elasticsearch.index.query.QueryStringQueryBuilder.doToQuery(QueryStringQueryBuilder.java:1042) ~[elasticsearch…
Java网络编程与NIO详解2:JAVA NIO一步步构建IO多路复用的请求模型 知识点 nio 下 I/O 阻塞与非阻塞实现 SocketChannel 介绍 I/O 多路复用的原理 事件选择器与 SocketChannel 的关系 事件监听类型 字节缓冲 ByteBuffer 数据结构 场景 接着上一篇中的站点访问问题,如果我们需要并发访问10个不同的网站,我们该如何处理? 在上一篇中,我们使用了java.net.socket类来实现了这样的需求,以一线程处理一连接的方式,并配以线程池的控制…
沉淀再出发:关于java中的AQS理解 一.前言 在java中有很多锁结构都继承自AQS(AbstractQueuedSynchronizer)这个抽象类如果我们仔细了解可以发现AQS的作用是非常大的,但是AQS的底层其实也是使用了大量的CAS,因此我们可以看到CAS的重要性了,但是CAS也是有缺陷的,但是在大部分使用的情况下,我们往往忽略了这种缺陷. 二.AQS的认识 2.1.AQS的基本概念 AQS(AbstractQueuedSynchronizer)就是抽象的队列式的同步器,AQS定义了…
前言:上一篇多线程系列之 java多线程的个人理解(一) 讲到了线程.进程.多线程的基本概念,以及多线程在java中的基本实现方式,本篇主要接着上一篇继续讲述多线程在实际项目中的应用以及遇到的诸多问题和解决方案 文章结构: 多线程在实际项目中应用 多线程的优缺点 1.多线程在实际项目中应用 项目分享(一) ​ 背景:重庆移动代维管理系统项目,主要负责对重庆移动各代维公司,分公司,代维人员,以及各类代维业务和资产的统筹管理:其中的装维管理模块,是在代维系统中占有一席之地,主要保障移动宽带装机的线上…
为了说明 io流中的装饰者模式对理解io流的重要性,我想先简要介绍以下io的装饰模式. 装饰(decorator)你也可以翻译成修饰.比如:一个会精通化学数学的物理学家.在这个"物理学家"前面有两个修饰语分别是化学和数学.这两个修饰语就相当于把物理学家这个人让他又有了两项本领(功能)也就是会数学和化学.同样的装饰模式也就是不断给concrete Component增加修饰语,以扩展它自身的功能. 装饰模式简介: Decorator Pattern的四大角色:1.Component (抽…
Java工厂模式解耦 -- 理解Spring IOC 最近看到一个很好的思想来理解Spring IOC,故记录下来. 资源获取方式 主动式:(要什么资源都自己创建) 被动式:(资源的获取不是我们创建,而是交给一个容器来创建和设置) 工厂模式获取资源 主要思想: 使用工厂模式以及Java反射机制来获取资源(类). 使用容器(Map)来存储所有资源,当需要的时候由工厂从容器中取出. 使用读取配置文件的方式向容器中注入组件(类). 作用: 降低组件之间的耦合性. 代码 com.lin.dao下: pa…
摘要:NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多. 本文分享自华为云社区<java中的NIO和IO到底是什么区别?20个问题告诉你答案[奔跑吧!JAVA]>,原文作者:breakDraw . NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多. Q: NIO和标准IO有什么区别…
Java语言的个人理解(比价深层次吧) 大四的生活确实十分的奢靡,不锻炼,不读书,几乎就是当一天和尚撞一天钟的生活,太颓废了,还好自己不是这个样子,不过身体确实差了很多,昨天跑了一圈内环(4KM),今天就走不动路了,所以还是过一些比较充实的生活.还是回到学习上来吧,这一节主要的是“水”(粤方言)一下关于Java的宏观知识. 作为Java语言的爱好者,应该对于Java语言有着比较深入的认识,不但要认识到这门编程语言的优点,也应该关注他的缺点.这样才会让我们在实际的开发中避开这些缺点,或者是找一些其…
Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用  "equals" 3.String  类不可更改 String 使用非常方便,因此一般涉及字符串时都用该类进行字符串处理至于String类的类在机制,则极少去探究. 直到读到下面这个例子. class X{     public static String strX="hello";}…
java的final变量理解 final基本类型是数值不能改变 final对象是引用不能改变,对象其自身是可以被修改的.…
谈谈我对Java中CallBack的理解 http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了."回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)…
黑马程序员:Java基础总结 GUI&网络&IO综合开发   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络架构 C/S:Client/Server 客户端,服务端. 特点: 1,需要在客户端和服务端都需要按照编写的软件. 2,维护较麻烦. 好处:可以减轻服务端的压力,如网络游戏. B/S:Browser/Server 浏览器 ,服务端. 1,客户端不用单独编写软件.      因为客户端用的就是浏览器. 2,对于软件升级,只要考虑服务端即可. 弊端:所…
Java温故而知新-杨辉三角形 一. 先说需求 需求 打印输出杨辉三角形,行数可变,支持50行内的任意数. 预期结果如图所示 1 这是第几行呢,是第1 1 1 这是第几行呢,是第2 1 2 1 这是第几行呢,是第3 1 3 3 1 这是第几行呢,是第4 1 4 6 4 1 这是第几行呢,是第5 1 5 10 10 5 1 这是第几行呢,是第6 1 6 15 20 15 6 1 这是第几行呢,是第7 1 7 21 35 35 21 7 1 这是第几行呢,是第8 1 8 28 56 70 56 28…
1.错误描述 2014-7-13 1:34:46 org.apache.catalina.startup.HostConfig undeploy 信息: Undeploying context [/blazeds] 2014-7-13 1:34:46 org.apache.catalina.core.ApplicationContext log 严重: Servlet MessageBrokerServlet threw unload() exception javax.servlet.Serv…
原因:php 给android 写接口出现java.net.ProtocolException:unexpected end of stream,查找android方面原因时发现数据超长 ,发现html源代码被截断了,原因在nginx转发上,查询nginx转发日志: 给与相关文件夹777权限:解决 chmod -R 777 某文件夹的绝对路径 原因是:数据过长,nginx会先把数据写入缓存区 Nginx 的 buffer 机制,对于来自 FastCGI Server 的 Response,Ngi…
0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有领会到的心得和踩过的坑,将会对这些文章进行更新. 另外,人脑更喜欢图胜过文字,有些流程先用文字码在那儿,后面有时间再画图. 1.「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势 2.「深入理解Java虚拟机」学习笔记(2)- JVM内存区域 3.[Java]「深入理解Java虚拟机…
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一—继承. 继承 在讲解之前我们先看一个例子,该例子是前篇博文(java提高篇之理解java的三大特性——封装)的. 从这里我们可以看出,Wife.Husband两个类除了各自的hu…
1.0.0 Summary Tittle:[Java]-NO.13.Java.1.Foundation.1.001-[Java IO]- Style:Java Series:Foundation Since:2017-05-17 End:.... Total Hours:... Degree Of Diffculty:8 Degree Of Mastery:8 Practical Level:8 Desired Goal:8 Archieve Goal:.... Gerneral Evaluat…
[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一---继承.…
算上大学,尽管接触Java已经有4年时间并对基本的API算得上熟练应用,但是依旧觉得自己对于Java的特性依然是一知半解.要成为优秀的Java开发人员,需要深入了解Java平台的工作方式,其中类加载机制和JVM字节码这样的核心特性.今天我将记录一下我在新的学习路程中对Java类加载机制的理解. 1.类加载机制 类加载是一个将类合并到正在运行着的JVM进程中的过程.首先要加载一个类,我们必须先得将类文件加载进来并连接,并且要加上大量的验证,随后会生成一个代表着这个类的class对象,然后就可以通过…
对Java通配符的个人理解(以集合为例) 前言:最近在学习Java,当学到了泛型的通配符时,不是很理解PECS(Producer Extends Consumer Super)原则,以及<? extends E> 不能使用add方法和<? super E> 不能使用get方法(注意:仅能使用Object o = list.get(0);取得是Object对象),所以我对它进行了学习和理解,这篇博文用了简单通俗的方法去讲解add和get在通配符中的使用场景以及PECS原则.可能本人的…
Java – How to convert Array to Stream 1. Object Arrayspackage com.mkyong.java8; import java.util.Arrays;import java.util.stream.Stream; public class TestJava8 { public static void main(String[] args) { String[] array = {"a", "b", "…
Java 内省(Introspector)深入理解 一些概念: 内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则.如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”.方法比较少.这些信息储存在类的私有变量中,通过set().get()获得. 例如类U…
cpu个数.核数.线程数.Java多线程关系的理解 2017年12月08日 15:35:37 一 cpu个数.核数.线程数的关系 cpu个数:是指物理上,也及硬件上的核心数: 核数:是逻辑上的,简单理解为逻辑上模拟出的核心数: 线程数:是同一时刻设备能并行执行的程序个数,线程数=cpu个数 * 核数 二 cpu线程数和Java多线程 首先明白几个概念: (1) 单个cpu线程在同一时刻只能执行单一Java程序,也就是一个线程 (2) 单个线程同时只能在单个cpu线程中执行 (3) 线程是操作系统…
对JAVA的集合的理解是相对于数组 1.数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) 2.JAVA集合可以存储和操作数目不固定的一组数据.  3.所有的JAVA集合都位于 java.util包中! 4.JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. 5.JAVA集合主要分为三种类型: Set(集) List(列表) Map(映射) Collection 接口 6.Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List…