![](https://img-blog.csdnimg.cn/20191030163839189.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
Java疯狂讲义第五版
cdmt
超然淡泊
展开
-
第十五章输入/输出-15.3字节流和字符流
15.3字节流和字符流15.3.1 InputStream和ReaderInputStream和Reader都是抽象类,本省不能创建实例,但他们分别由一个用于读取文件输入流:FileInputStream和FileReader,他们都是节点流----会直接和指定文件关联。package com.cdmt.collection.io;import java.io.FileInp...原创 2019-12-24 14:44:24 · 205 阅读 · 0 评论 -
第十五章输入/输出-15.2理解Java的IO流
15.2理解Java的IO流因为Java提供了IO流的抽象,所以卡发着可以使用一致的IO代码去读写不同的IO流节点。15.2.1流的分类按照流的流向来分类,可以分为输入流和输出流输入流:只能从中读取数据,而不能向其写入数据 输出流:只能向其写入数据,而不能从中读取数据Java的输入流主要由InputStream和Reader作为基类,输出流主要由OutputStream和...原创 2019-12-23 16:05:54 · 198 阅读 · 0 评论 -
第十五章输入/输出-15.1File类
Java的IO通过java.io包下的类和接口支持,在java.io包下主要包括输入、输出两种IO流,每种输入、输出流又可以分为字节流和字符流两大类。Java的IO流使用了装饰器设计模式,它将IO流分成底层节点流和山曾处理流。Java7在java.nio及其子包下提供了一系列全新的API,被称为NIO2。同时介绍Java对象的序列化机制,使用序列化机制可以把内存中的Java对象转换成二进制字节...原创 2019-12-23 15:44:39 · 201 阅读 · 0 评论 -
第十六章Java多线程-16.5线程同步
16.5线程同步16.5.1 线程安全问题模拟2个人同时取钱账号类package com.cdmt.collection.list;public class Account { private String accountNo; private double balance; public Account(){} public Accou...原创 2019-12-11 10:09:05 · 227 阅读 · 0 评论 -
第十六章Java多线程-16.4控制线程
16.4控制线程Java提供线程控制的工具方法。16.4.1 join线程Thread提供了让一个线程等待另外一个线程完成的方法join()方法。当在某个线程执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完为止。PS:join方法通常使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程。当所有小线程都完成...原创 2019-12-09 14:21:28 · 163 阅读 · 0 评论 -
Java-java疯狂讲义-第十六章Java多线程-16.3线程生命周期
16.3线程生命周期线程需要经过:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Bloacked)、死亡(Dead)5中状态。线程启动之后不可能一直占用CPU,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、就绪之间切换。16.3.1 新建和就绪状态当陈故乡使用new关键字创建线程之后,该线程就处于新建状态。此时该线程对象没有表现出任何线程动态...原创 2019-12-09 11:12:56 · 116 阅读 · 0 评论 -
Java-java疯狂讲义-第十六章Java多线程-16.2线程的创建和启动
16.2线程的创建和启动Java适应Thread类代表线程,所有的线程对象都必须是Thread类或者其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序执行的代码)。Java使用线程执行体来代表这段程序流。16.2.1 集成Thread类创建线程类package com.cdmt.collection.list;//集成Thread类public c...原创 2019-12-06 21:31:46 · 126 阅读 · 0 评论 -
Java-java疯狂讲义-第十六章Java多线程-16.1线程概述
16.1线程概述每个程序就是一个进程。一个程序运行时,内部可能包含多个顺序执行的流,每个顺序执行流就是一个线程。16.1.1线程和进程进程是系统进行资源分配和调度的一个独立单位几乎所有的系统都支持进程的概念,所有运行中的任务通常对应一个进程(Process)。当一个程序进入内存运行时,即变成一个进程。是系统进行资源分配和调度的一个独立单位。进程包含三个特征:独立性:进程是...原创 2019-12-04 11:34:15 · 143 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.9枚举类
6.9枚举类6.9.1手动实现枚举类早起定义枚举类型用简单的静态常量来枚举public static final int AGE_TEEN = 1;public static final String BOOLEAN_IS = "是";JDK1.5之后增加了对枚举类的支持6.9.2枚举类入门Java5新增一个enum关键字(与class、interface地位相同...原创 2019-11-11 20:22:12 · 212 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.8Java 新增的 Lambda 表达式
6.8Java 新增的 Lambda 表达式Lambds表达式是Java8的重要更新,支持将代码块作为方法参数。Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(函数式接口)的实例6.8.1Lambda表达式入门lambda表达式主要作用就是代替匿名内部类方法的语法。它由三部分组成:形参列表 箭头-> 代码块6.8.2Lambda表达式与函数接口...原创 2019-11-11 15:13:30 · 205 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.6Java9改进的接口
6.6Java9改进的接口抽象类如果抽象的更彻底就是接口6.6.1接口的概念类是具体的实现,接口是一种规范。接口体现的是一种设计和实现分离的原则。6.6.2Java9中接口的定义接口定义不适用class,使用interface。默认public修饰符。一个接口可以有多个直接接口,但是不能继承类。【修饰符】 interface 接口名 extends 接口1,接口2...原创 2019-11-07 14:32:51 · 139 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.5抽象类
6.5抽象类抽象类:用abstract修饰,可以没有抽象方法抽象方法:只有方法签名,没有实现的方法。6.5.1抽象方法和抽象类抽象方法和抽象类必须使用 abstract修饰符来定义,有抽象方法的类智能被定义成抽象类,抽象类可以没有抽象方法。抽象类和抽象方法必须使用abstract修饰,抽象方法不能有方法体 抽象类不能被实例化,无法使用new来调用抽象类的构造器创建实例 抽象...原创 2019-11-06 20:46:46 · 111 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.4final修饰符
6.4final修饰符final修饰类、变量、方法。6.4.1final成员变量修饰变量:表示变量一旦获得了初始值就不可改变,final既可以修饰成员变量(类变量和实例变量),也可以修饰局部变量,形参final修饰的成员变量必须由程序员显示的指定初始值package com.cdmt.demo.staticblock;/** * @ClassName: FinalV...原创 2019-11-06 20:08:56 · 132 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.3类成员
6.3类成员static修饰的成员都是类成员,属于这个类而不是这个实例6.3.1理解类成员在Java类里包含成员变量、方法、构造器、初始化块、内部类(接口、枚举)5中成员,static可以修饰变量、方法、初始化块、内部类(接口、枚举),但是构造器不能被修饰。类变量属于整个类,当系统第一次准备使用该类时,系统会为该类变量分配内存空间,类变量开始 生效,直到该类被卸载,该类的类变量所...原创 2019-11-06 11:41:36 · 147 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.2处理对象
6.2处理对象Java对象都继承Object类,提供了Java对象的通用方法6.2.1打印对象和toString方法toString方法是对一个对象的自我描述,如果直接println(对象),会返回类名+@+hashCode值,这个值不能真正实现自我描述功能,所以很多时候需要重写这个方法。PS:在System.out.println(p)和System.out.println(...原创 2019-11-05 21:00:16 · 127 阅读 · 0 评论 -
Java-java疯狂讲义-第六章面向对象(下)-6.1Java8增强的包装类
6.1Java8增强的包装类JDK 1.5提供了自动装箱和自动拆箱功能,允许把基本类型值直接赋给对应的包装类引用变量,也允许把包 装类对象直接赋给对应的基本类型变量。Java变成语言包含8种不支持面向对象的基本类型。基本类型没有面向对象的特性:没有成员变量、方法。为了解决8中基本数据类型不能当成Object类型变量使用的问题,Java提供了包装类的概念。为8种基本类型分别定义了相对应的引用...原创 2019-11-05 11:37:35 · 153 阅读 · 0 评论 -
Java-java疯狂讲义-第五章面向对象(上)-5.9初始化块
5.9初始化块5.9.1使用初始化块初始化块是 Java 类里可出现的第 种成员(前面依次有成员变量、方法和构造器), 个类里可以 有多个初始化块,相同类型的初始化块之间有顺序 前面定义的初始化块先执行,后面定义的初始化块 后执行。【修饰符】{ //todo初始化块的可执行代码 ....}初始化块的修饰符只能是 tatic 使用 tatic 修饰...原创 2019-11-04 20:43:01 · 111 阅读 · 0 评论 -
Java-java疯狂讲义-第五章面向对象(上)-5.7多态
5.7多态http://c.biancheng.net/view/784.html 位移https://www.cnblogs.com/laiso/p/9256120.htmljava Integer与int详解java引用变量分为编译时类型、运行时类型。编译时类型由申明该变量时使用的类型决定,运行时类型由实际赋给的对象决定。如果编译时类型和运行时类型不一致,就可能出现所谓的多...原创 2019-11-01 17:18:05 · 183 阅读 · 0 评论 -
Java-java疯狂讲义-第五章面向对象(上)-5.1类和对象
5.1类和对象类(class)和对象(object,也成实例,instance)5.1.1定义类定义一个类包括:构造器、成员变量和方法。类中各个成员的定义顺序没有影响、各个成员之间可以互相调用。PS:static修饰的成员不能访问没有static修饰的成员。成员变量:用于定义该类或该类实例所包含的状态数据 方法:用于定义该类或该类实例的行为特征或者功能实现 构造器:用于构造该类...原创 2019-09-22 14:37:56 · 208 阅读 · 0 评论