Java语言系统学习
Java 编程思想 包括对象导论、一切皆对象、操作符、控制执行流程、初始化和清理、访问权限控制等Java基础知识。包括对Java知识的深入理解。
Master.TJ
https://github.com/fengruotj
展开
-
NIO详解(二): BIO 浅谈 同步 异步与阻塞 非阻塞
在我们了解Java NIO/BIO的网络通信之前,我们先了解一下常用的阻塞/非阻塞模型以及同步/异步的概念一、阻塞和非阻塞从简单的开始,我们以经典的读取文件的模型举例。(对操作系统而言,所有的输入输出设备都被抽象成文件。)在发起读取文件的请求时,应用层会调用系统内核的I/O接口。如果应用层调用的是阻塞型I/O,那么在调用之后,应用层即刻被挂起,一直出于等待数据返回的状态,直到系统内核从...原创 2018-11-07 21:19:44 · 6267 阅读 · 5 评论 -
Java基础:char类型字节占用数
1. 前言最近在研究InputStream、OutputStream和Reader、Writer这两大Java I/O输入输出抽象类。我们都知道对于InputStream、OutputStream是面向字节传输的(一次读取一个字节),对于Reader、Writer是面向字符传输(一次读取一个字符或者读取一行readline).在这其中我遇到了困惑,char类型到底是占用多少字节,因为在使用Inp...原创 2018-12-24 17:14:43 · 3246 阅读 · 1 评论 -
Java基础:Java异常处理
1.前言前段时间在学习Java并发编程的艺术这本书中,了解到了一个很有意思的InterruptException.在Java中有些异常是能够直接终止JVM程序的执行的,有些异常在抛出异常之后还能继续执行,比如InterruptException就是这样的异常。那么本次博客就将带领读者了解一下什么情况下的异常会终止程序的执行,什么情况下的异常只会抛出异常,而不会终止程序的运行。2. 问题下面我...原创 2018-12-24 11:25:00 · 466 阅读 · 0 评论 -
Java编程思想 第十五章:泛型
1. 泛型“泛型”意思就是适用于许多类型。使用泛型的目的之一: 指定容器持有什么类型,让编译器确保正确性,而不是在运行期发现错误。这个容器可以看成是有其他类型对象作为成员的类,而不单单只是JDK中的容器类。2.简单的泛型2.1 元组元组是对象,是一个将多个对象打包存储于其中的单一对象。Java中没有元组这个类库,Python中有元组这一概念。可以通过泛型构建自己的元组类库。...原创 2018-12-17 11:02:54 · 774 阅读 · 0 评论 -
Java编程思想 第十三章:字符串
1.不可变StringString对象是不可变的,每一个看似修改了String值的方法,实际上都是创建了一个全新的String对象。public class Immutable { public static String upCase(String s){ return s.toUpperCase(); } public static void main(String[] args...原创 2018-12-15 21:54:53 · 509 阅读 · 0 评论 -
Java基础:成员变量的继承与覆盖
1.前言最近在研究Java多态时,发现子类通过继承父类来实现Java中的多态。子类可以继承父类的成员方法和成员变量。子类中如果有同名的成员方法,并且方法的参数和返回值一样,那么这个子类定义的这个方法将覆盖父类的方法。那么如果子类有同名的成员变量呢,情况又会怎么样呢?通过继承可以得到父类的成员变量,子类的成员变量包括从父类继承的成员变量(包括从祖先类中继承的成员变量)以及子类中重新定义的成员变量。...原创 2018-12-13 09:20:15 · 2517 阅读 · 0 评论 -
Java编程思想 第十章:内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类内部类远不止如此,它就像是一个外围类;并能与之通信;而且你用内部类写出来的代码更加优雅清晰。1. 创建内部类将一个类定义在另一个类的内部,这就是内部类。内部类与组合是不同的概念。如上我们创建了一个内部类,内部类与其它类的区别在于将类隐藏在了另一个类的内部,同时如contents方法所示,外部类的方法还可以返回一个指向内部类的引用,这也是...原创 2018-12-12 10:31:08 · 604 阅读 · 0 评论 -
Java基础:Java基本数据类型以及包装类
1. 前言最近在研究Java 基础知识,作为Java最重要的数据类型。Java有八大基本数据类型,相对应的有八种包装类。我们需要对这些基本数据类型进行理解和掌握。2.Java基本数据类型Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、sho...原创 2018-12-09 16:16:19 · 1300 阅读 · 2 评论 -
Java基础:由JVM内存模型详解线程安全
1.前言最近在研究JVM内存模型和Java基础知识。主要讲的是线程共享变量与线程私有变量以及如何写出线程安全的代码。这里列出一条规则,“类中的成员变量,也叫实例变量,也叫全局变量,它是非线程安全,是所有线程共享的变量,定义在方法中的私有变量是线程安全的,是每个线程私有的”。那么我们如何通过JVM内存模型来理解这句话。现在汇总知识如下:2. Java虚拟机运行时的数据区通过上面这幅图片我们可...原创 2018-12-09 14:41:58 · 847 阅读 · 0 评论 -
Java基础:详解static关键字与类加载顺序
1. 前言前文中说到了static关键字,在Java中这是一个很重要的关键字,它有很多的用法,并且在某些特定的情况下使用可以优化程序的性能。本文学习static关键字的应用场景。在这之前了解变量的类型,变量按作用域分为成员变量和局部变量,成员变量也就是全局变量,它是在类中声明的,不属于类中任何一个方法。而局部变量是在类中的方法体中声明的,作用域只是这个方法体。2. 详解static关键字“s...原创 2018-12-08 15:56:22 · 1936 阅读 · 0 评论