JavaSE学习总结第22天_IO流4】的更多相关文章

-  22.01  数据输入输出流的概述和讲解 操作基本数据类型 public class DataInputStreamextends FilterInputStream implements DataInput 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出流写入稍后由数据输入流读取的数据. public class DataOutputStreamextends FilterOutputStream implements Data…
  20.01  递归概述和注意事项 递归:方法定义中调用方法本身的现象 递归注意事项: 1.要有出口,否则就是死递归 2.次数不能太多,否则就内存溢出 3.构造方法不能递归使用 20.02  递归求阶乘的代码实现及内存图解 例: public class Practice { public static void main(String[] args) { System.out.println(jieCheng(5)); } public static int jieCheng(int i)…
  21.01  转换流出现的原因及格式 由于字节流操作中文不是特别方便,所以,java就提供了转换流. 字符流 = 字节流 + 编码表 21.02  编码表概述和常见编码表 编码表:计算机只能识别二进制数据,早期又来是电信号,为了方便应用计算机,让它可以识别各个国家的文字,就将各个国家的文字用数字来表示,并一一对应,形成一张表,就是编码表. 简单的说编码表就是由字符及其对应的数值组成的一张表.   常见的编码表: ASCII:美国标准信息交换码,用1个字节的7位可以表示 ISO8859-1:拉…
  19.01  集合的特点和数据结构总结 HashSet.HashMap.Hashtable判断元素唯一性的方式: 通过对象的hashCode和equals方法来完成元素唯一性 如果对象的hashCode值不同,那么不用判断equals方法,就直接存储到哈希表中. 如果对象的hashCode值相同,那么要再次判断对象的equals方法是否为true. 如果为true,视为相同元素,不存.如果为false,那么视为不同元素,就进行存储. 最终:自动生成hashCode()和equals()即可…
javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等.这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,相当于是对基本流对象的一种增强. 概述 缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutput…
一.IO流概要 1.1.概念 开发中经常要进行输入输出操作,掌握Java中的IO流显得非常必要. 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL. 流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流.用户可以从输入流中读取信息,但不能写它.相反,对输出流,只能…
JavaSE学习笔记(14)---File类和IO流(字节流和字符流) File类 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例. public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例. public File(F…
javaSE学习笔记(16)---网络编程 基本概念 如今,计算机已经成为人们学习.工作.生活必不可少的工具.我们利用计算机可以和亲朋好友网上聊天,也可以玩网游.发邮件等等,这些功能实现都离不开计算机网络.计算机网络实现了不同计算机之间的通信,这必须依靠编写网络程序来实现.下面,我们将教大家如何编写网络程序. 在学习编程之前,我们首先要了解关于网络通信的一些概念. ▪ 什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网…
JavaSE学习笔记(12)---线程 多线程 并发与并行 并发:指两个或多个事件在同一个时间段内发生. 并行:指两个或多个事件在同一时刻发生(同时发生). 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的. 而在多个 CPU 系统中,则这些可以并发执行的程序便可以分配到多个处理器上(CPU),实现多任务并行执行,即…
javaSE学习笔记(11)--- Map 1.Map集合 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口. 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方…
javaSE学习笔记(10)---List.Set 1.数据存储的数据结构 常见的数据结构 数据存储的常用结构有:栈.队列.数组.链表和红黑树. 1.栈 栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加.查找.删除等操作. 简单的说:采用该结构的集合,对元素的存取有如下的特点 先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素).例如,子弹压进弹夹,先压进去的子弹在下面,后压进去的子弹在上面,当开枪时,…
JavaSE学习笔记(7)---数组 1.什么是数组 数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们.数组的三个基本特点: 长度是确定的.数组一旦被创建,它的大小就是不可以改变的. 其元素必须是相同类型,不允许出现混合类型. 数组类型可以是任何数据类型,包括基本类型和引用类型. 提示 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量.数组本身就…
JavaSE学习笔记(6)---异常 ​ 软件程序在运行过程中,非常可能遇到问题,我们称之为异常,英文是:Exception,意思是例外.遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理,安全的退出,而不至于程序崩溃呢? 1.异常产生的原因及使用原则 在 Java 中一个异常的产生,主要有如下三种原因: Java 内部错误发生异常,Java 虚拟机产生的异常. 编写的程序代码中的错误所产生的异常,例如空指针异常.数组越界异常等.这种异常称为未检査的异常,一般需要在某些类中集中处理这…
如需转载,请注明出处:Flutter学习笔记(22)--单个子元素的布局Widget(Container.Padding.Center.Align.FittedBox.Offstage.LimitedBox.OverflowBox.SizedBox) 入门学习Flutter有一段时间了,Demo用过的Widget也有不少,想着整体的梳理一下,所以今天结合Flutter中文网和书籍梳理一下Widget的使用,首先梳理一下拥有单个子元素的布局Widget. Container:一个拥有绘制.定位.调…
数据库学习笔记3 基本的查询流 2   order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.person order by lastname,firstname; 这句话表示根据lastname和firstname两列进行排序,并且是先按照lastname进行排序如果有相同的值就按照firstname进行排序. 拼接很有意思,可以写成这个样子 select lastname+','+firstna…
javaSE学习笔记(17)---锁 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率.本文旨在对锁相关源码(本文中的源码来自JDK 8).使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景. Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识.下面给出本文内容的总体分类目录: 一.java中的锁 什么是锁 在计算机科学中,锁(lock)与互斥(mutex)是一种…
JavaSE学习笔记(13)---线程池.Lambda表达式 1.等待唤醒机制 线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同. 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题. 为什么要处理线程间通信: 多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需…
JavaSE学习笔记(9)---集合类和泛型 1.Collection集合 集合概述 在前面我们已经学习过并使用过集合ArrayList<E> ,那么集合到底是什么呢? 集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有什么区别呢? 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致.在开发中一般当对象多的时候,使用集合进行存储. 集合框架 JAVASE提供了满足…
JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类,那么默认则继承自Object类.例如: public class MyClass /*extends Object*/ { // ... } 根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个.最常用的是其中的2个: p…
JavaSE学习笔记(5)---内部类和String类 一.内部类基础 转自菜鸟教程 ​ 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一下这四种内部类的用法. 1.成员内部类 ​ 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: class Circle { double radius = 0; public Circle(dou…
JavaSE学习笔记(4)---抽象类和接口 抽象方法和抽象类 ·抽象方法 使用abstract修饰的方法,没有方法体,只有声明.定义的是一种"规范",就是告诉子类必须要给抽象方法提供具体的实现. 特点 抽象方法必须声明在抽象类中. 抽象方法声明引入了一个新方法,但不提供该方法的实现,由于抽象方法不提供任何实际实现,因此抽象方法的方法体只包含一个分号. 声明抽象方法时,不能使用static 和private 修饰符. 当从抽象类派生一个非抽象类时,需要在非抽象类中重写抽象方法,以提供具…
JavaSE学习笔记(3)---面向对象三大特性 面向对象的三大特征:继承.封装.多态 1.封装 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改.然后封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问.要访问该类的数据,必须通过指定的方式.适当的封装可以让代码更容易理解与维护,也加强了代码的安全性.其原则就是将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问. 1.封装的步骤 使用 private 关键字来修饰成员变量.…
JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象优势更明显. 2.一个经典的比喻:面向对象是盖浇饭.面向过程是蛋炒饭.盖浇饭的好处就是"菜""饭"分离,从而提高了制作盖浇饭的灵活性.饭不满意就换饭,菜不满意换菜.用软件工程的专业术语就是"可维护性"比较好,"饭" 和"…
javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线_.美元符号$开头. 标识符其它部分可以是字母.下划线"_".美元符"$"和数字的任意组合. Java 标识符大小写敏感,且长度无限制. 标识符不可以是Java的关键字. 3.标识符的命名规范: 表示类名的标识符:每个单词的首字母大写,如Man, GoodMan 表示方…
一.FileInputStream属性: /* File Descriptor - handle to the open file */private final FileDescriptor fd; /*用来标识输入流的状态*/ private final String path; //文件的路径信息 private FileChannel channel = null; private final Object closeLock = new Object();//关闭时的同步锁 priva…
第19天-20-IO流(改变标准输入输出设备) static void setIn(InputStream in) Reassigns the "standard" input stream. static void setOut(PrintStream out) Reassigns the "standard" output stream. package bxd; import java.io.*; public class TransStreamDemo3 {…
IO流:用于处理设备上数据. 流:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现,对象都存在IO包中. 流也进行分类: 1:输入流(读)和输出流(写). 2:因为处理的数据不同,分为字节流和字符流. 字节流:处理字节数据的流对象.设备上的数据无论是图片或者dvd,文字,它们都以二进制存储的.二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节.意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据. 那么为什么要有字符流呢?因为字符每个国…
Chapter 13. IO流 13.1 File类 java.io.File类是文件(file)和目录(文件夹)(directory)路径名(path)的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 一个File对象,代表硬盘中实际存在的一个文件或者目录(文件夹). 绝对路径:从盘符开始的路径,是完整的路径.eg: D:\\aaa\\233.txt 相对路径:相对于项目目录的路径,是便携的路径(开发常用).eg: 233.txt 13.1.1 构造方法 无论该路径下是否存在文件或者目…
  09.01 final关键字引入 例: class Fu { public final void show() { System.out.println("访问底层资源"); } } class Zi extends Fu { public void show() { System.out.println("Zi show run"); } } class Demo { public static void main(String[] args) { Zi z…
  12.01 Scanner的概述和构造方法原理 Scanner类概述:JDK5以后用于获取用户的键盘输入 构造方法:public Scanner(InputStream source) public static final InputStream in:“标准”输入流. 此流已打开并准备提供输入数据.通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源. 12.02 Scanner类的hasNextXxx()和nextXxx()方法的讲解 基本格式: hasNextXxx():判…