12 2019 档案

摘要:字符流:顾名思义操作(读、写)字符的流对象 字符流的体系: 1、Reader |--BufferedReader:从字符输入流中读取文本到缓冲区,便于有效读取字符,数组,和行 |--LineNumberReader:有行号(setLineNumber(int) 、getLineNumber()) | 阅读全文
posted @ 2019-12-31 18:23 一杯水M 阅读(201) 评论(0) 推荐(0) 编辑
摘要:IO(Input Output)流:IO流用来处理设备之间的数据传输 流按操作数据分为两种:字节流和字符流 流按流向分为:输入流、输出流 字节流的两个顶层父类: 1、InputStream 方法: int available(); void close();--关闭输入流并释放与流关联的所有系统资源 阅读全文
posted @ 2019-12-31 15:36 一杯水M 阅读(165) 评论(0) 推荐(0) 编辑
摘要:一、日期格式化 自定义格式化SimpleDateFormat字母代表的意义 二、日期字符串转日期对象 三、日期操作 Date不够国际化已被Calender取代了 阅读全文
posted @ 2019-12-30 16:00 一杯水M 阅读(197) 评论(0) 推荐(0) 编辑
摘要:静态导入:其实导入的是类中的静态成员(静态方法,静态变量) 阅读全文
posted @ 2019-12-30 15:05 一杯水M 阅读(159) 评论(0) 推荐(0) 编辑
摘要:可变参数:其本质就是一个数组,自动将元素封装成数组。 格式: 注意:可变参数必须再参数列表的结尾 用法如下: 阅读全文
posted @ 2019-12-30 14:52 一杯水M 阅读(136) 评论(0) 推荐(0) 编辑
摘要:查看JDK的API,Collection的父级接口Iterable 这句话意思:实现此接口允许对象成为增强型 for语句(有时称为“ for-each循环”语句)的目标。简单说就是可以使用Iterable迭代,就可以使用for-each 格式: 实例一、 传统for和高级for的区别 传统for可以 阅读全文
posted @ 2019-12-30 14:40 一杯水M 阅读(267) 评论(0) 推荐(0) 编辑
摘要:一、Collections Collections中的方法都是静态的 二、Arrays 阅读全文
posted @ 2019-12-30 13:43 一杯水M 阅读(220) 评论(0) 推荐(0) 编辑
摘要:Map:存储键值对数据,map集合必须保证键的唯一性 一、常用方法:1、添加 value put(K key,V value); 返回前一个和Key关联的值,如果没有就返回null2、删除 void clear(); value remove(K key);根据指定的key删除这个键值对3、判断 b 阅读全文
posted @ 2019-12-27 17:11 一杯水M 阅读(188) 评论(0) 推荐(0) 编辑
摘要:TreeSet可以对Set集合中的元素进行排序 判断元素唯一性的方式:就是根据比较方法的返回结果是否为0,是0:就是相同元素,就不会存储 什么比较方法,先不管它,我们先按照以前学过的集合定义和使用 一、自定义元素类型 二、业务逻辑代码 运行结果: 错误信息:Exception in thread " 阅读全文
posted @ 2019-12-26 15:46 一杯水M 阅读(355) 评论(0) 推荐(0) 编辑
摘要:需求:去除集合中重复元素 分析: 1、临时容器存储 2、循环遍历集合(迭代) 3、判断元素是否已存在临时容器中(contains) 一、定义存储元素的类型(自定义类型) 二、业务逻辑代码 结果: 总结: ArrayList判断集合元素是否相同,就是看元素的equals ArrayList的方法con 阅读全文
posted @ 2019-12-26 13:43 一杯水M 阅读(485) 评论(0) 推荐(0) 编辑
摘要:HashSet的实例 1 import java.util.HashSet; 2 import java.util.Iterator; 3 4 public class HashSetDemo { 5 6 public static void main(String[] args) { 7 Hash 阅读全文
posted @ 2019-12-26 13:08 一杯水M 阅读(211) 评论(0) 推荐(0) 编辑
摘要:一、什么是链表集合,通过图形来看,比如33只知道它下一个是55 如果:现在要删除33的话,就是把55赋值给45,这样看它操作集合速度会非常快。 二、LinkedList特有方法 1、添加 addFirst(); addLast(); jdk1.6 offerFirst(); offerLast(); 阅读全文
posted @ 2019-12-25 17:31 一杯水M 阅读(981) 评论(0) 推荐(0) 编辑
摘要:List特有的常见方法:有一个共性特点:都可以操作角标 1、添加 void add(int index, E element); void addAll(int index, collection<?> c);2、删除 Object remove(int index);3、修改 Object set 阅读全文
posted @ 2019-12-25 16:14 一杯水M 阅读(211) 评论(0) 推荐(0) 编辑
摘要:集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储 集合特点: 1、用于存储对象的容器 2、集合长度可变 3、不可以存储基本数据类型 集合体系的顶层Collection接口 Collection接口 |--List:有序(存入和取出的顺序一致),元素 阅读全文
posted @ 2019-12-25 16:12 一杯水M 阅读(243) 评论(0) 推荐(0) 编辑
摘要:一、sleep()方法:在同步中,释放CPU执行权,不释放同步锁,意味着程序停止 二、停止线程方法:原理:run执行完成 1、设置标记 2、interrupe方法:在同步线程中,把冻结状态的线程,强制恢复到运行状态,让其获取CPU执行资格 3、setDaemon(true):设置守护线程,后台线程 阅读全文
posted @ 2019-12-23 15:42 一杯水M 阅读(988) 评论(0) 推荐(0) 编辑
摘要:SDK1.5版本以后对synchronized的升级,其思想是:将同步和锁封装成对象,其对象中包含操作锁的动作。 代码: 结果: lock就是对同步的封装那就有关系和区别: 阅读全文
posted @ 2019-12-23 14:00 一杯水M 阅读(229) 评论(0) 推荐(0) 编辑
摘要:分析线程经典案例生产者消费者 运行结果: 结果分析: 那么怎么再判断flag呢?while 代码如下: 结果出现死锁: 结果分析: 通过分析,那能不能每次唤醒只唤醒对方线程(如生产者线程只唤醒消费者线程,消费者线程只唤醒生产者线程),查看Object对象方法中没有,但是有一个notifyAll()方 阅读全文
posted @ 2019-12-23 11:49 一杯水M 阅读(255) 评论(0) 推荐(0) 编辑
摘要:线程间通讯:多个线程在处理同一资源,但是任务不同 练习一:双线程出现线程安全问题,需要使用同步,思考同步代码添加位置需求:银行账户存钱,显示谁在账户存钱了,存了多少钱分析:操作同一银行账户两个不同的操作,一个是存,一个是显示这个两个操作可以同时执行 代码: 结果: 出现线程安全,为什么呢? 分析: 阅读全文
posted @ 2019-12-20 16:59 一杯水M 阅读(607) 评论(0) 推荐(0) 编辑
摘要:一、线程安全问题产生前提:1、多线程操作共享数据2、线程任务中有多条代码 运行结果: 出现线程安全问题了 二、解决线程安全问题 解决线程安全问题的两种方式: ①、同步代码块 格式: 解决上面线程安全问题的代码: 结果: 解决原理:多线程在使用同步代码块时,使用了同一个同步锁(Object的对象) ② 阅读全文
posted @ 2019-12-19 17:48 一杯水M 阅读(226) 评论(0) 推荐(0) 编辑
摘要:进程:正在运行中的程序线程:负责执行程序的控制单元(执行路径)一个进程中可以有多个执行路径,称之为多线程一个进程中至少要有一个线程 创建新执行线程有两种方式 一、继承Thread类步骤:1、定义一个类继承Thread类2、覆盖Thread类中的run方法(run方法中就是线程要执行的任务代码)3、创 阅读全文
posted @ 2019-12-19 17:21 一杯水M 阅读(507) 评论(0) 推荐(0) 编辑
摘要:一、包:就是类的命名空间(在文件系统中的表现形式就是文件夹) 二、代码编写规则 1、写在程序文件的第一行 2、格式:package 包名[.包名1.包名2......] 类的全名称 包名.类名 例如: 编译(javac -d . Java文件--【-d .】代表当前目录下存放.class文件): 运 阅读全文
posted @ 2019-12-19 13:52 一杯水M 阅读(229) 评论(0) 推荐(0) 编辑
摘要:内部类实例: 内部类可以存放再局部位置上 阅读全文
posted @ 2019-12-18 16:58 一杯水M 阅读(112) 评论(0) 推荐(0) 编辑
摘要:类成员 一、成员变量 编译时:变量(f)所属类(Fu)中是否有成员变量,有:编译成功,没有:编译失败 运行时:变量(f)所属类(Fu)中是否有成员变量,运行该类(Fu)中的成员变量 二、成员函数 编译时:变量(f)所属类(Fu)中是否有成员函数,有:编译成功,没有:编译失败 运行时:对象所属的类(Z 阅读全文
posted @ 2019-12-18 15:47 一杯水M 阅读(251) 评论(0) 推荐(0) 编辑
摘要:多态:一个事物有多种描述(如一个人(A)的爸爸是B爷爷是C,那我们描述A的话,可以通过直接描述A,也可以描述B的儿子,也可以描述C的孙子) 代码体现:父类或接口的引用指向子类对象 多态的应用: 发现: 1、void method(Cat c)代码几乎一样 2、如果以后需求要增加动物(如:猪)是不是还 阅读全文
posted @ 2019-12-18 15:41 一杯水M 阅读(171) 评论(0) 推荐(0) 编辑
摘要:接口作用:为类提供额外功能(方法) 一、接口定义 接口成员 1、抽象方法:[public] [abstract] 返回值类型 方法名(参数列表) 2、全局常量:[public] [static] [final] 数据类型 常量名 = 值 二、接口实现 1、接口不能实例化,只能由实现接口的类实例化 2 阅读全文
posted @ 2019-12-18 13:37 一杯水M 阅读(148) 评论(0) 推荐(0) 编辑
摘要:抽象类特点: 1、抽象方法必须定义在抽象类中2、abstract关键字修饰:只能修饰类和方法3、抽象类不能实例化4、抽象类中的方法要被使用,必须由子类重写所有的抽象方法,实例化其子类 如果子类只重写部分抽象方法,那么该子类还是一个抽象类 注意:抽象类:可以有抽象方法,因为有抽象方法,所以不能实例化。 阅读全文
posted @ 2019-12-17 17:22 一杯水M 阅读(152) 评论(0) 推荐(0) 编辑
摘要:继承:子继承父,子可以拥有父的所有。 继承的好处: 1.提高了代码的复用性 2.让类与类之间产生了关系。有了这个关系,才有了多态的特性 Java 只支持单继承,不支持多继承 class A { void show() { System.out.println("a"); } } class B { 阅读全文
posted @ 2019-12-17 15:55 一杯水M 阅读(193) 评论(0) 推荐(0) 编辑
摘要:单例设计模式:解决一个类在内存中只存在一个对象思想:1.为了避免过多创建类的对象,禁止此类以外创建对象(构造方法私有化)2.为了类可以被使用就必须创建此类对象,只好在本类中,创建对象3.在此类中创建的对象,怎么给此类以外的使用,所已此类必须提供返回对象的一个方法 代码体现:1.将构造函数私有化2.在 阅读全文
posted @ 2019-12-17 14:18 一杯水M 阅读(140) 评论(0) 推荐(0) 编辑
摘要:Static(静态)是一种修饰符,用于修饰成员(成员变量、成员函数) 1.静态方法只能访问静态成员。 2.静态随着类的加载而加载 通过代码分析: 运行结果: Person p=new Persong("XXX",XXX); 做了哪些事情 1.通过new从硬盘中找到的Person.class文件加载到 阅读全文
posted @ 2019-12-16 18:09 一杯水M 阅读(169) 评论(0) 推荐(0) 编辑
摘要:构造函数特点: 函数名和类名相同 没有返回值(不用定义返回值类型)作用: 对象初始化注意: 如果类没有定义构造函数时,系统会默认定义一个无参的构造函数 如果定义了构造函数,系统不会定义构造函数 对象创建时,构造函数只运行一次代码表现形式: 阅读全文
posted @ 2019-12-16 15:30 一杯水M 阅读(145) 评论(0) 推荐(0) 编辑
摘要:面向对象特性一、封装(Encapsulation)封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。好处: 将变化隔离 便于使用 提高复用性 提高安全性封装原则: 将不需要对外提供的内容都隐藏起来 把属性都隐藏,提供公共方法让其访问 例如: 阅读全文
posted @ 2019-12-16 15:01 一杯水M 阅读(136) 评论(0) 推荐(0) 编辑
摘要:面向对象是相对面向过程而言面向过程:强调的是功能行为面向对象:将功能封装进对象,强调具备了功能的对象 不论面向对象还是面向过程都是一种开发思想而已。举一个例子来理解面向对象和面向过程把大象装进冰箱分三步 1.打开冰箱 2.存储大象 3.关闭冰箱看到上面的步骤就是面向过程的思想而面向对象思想 1.冰箱 阅读全文
posted @ 2019-12-16 14:39 一杯水M 阅读(133) 评论(0) 推荐(0) 编辑
摘要:原理: 阅读全文
posted @ 2019-12-13 13:08 一杯水M 阅读(261) 评论(0) 推荐(0) 编辑
摘要:一、数组定义同一种类型数据的集合,其实数组就是一个容器数组定义格式:1.数据类型[] 变量名 = new 数据类型[数组长度] int[] arr = new int[5]; 2.数据类型[] 数组名 = new 数据类型[]{元素,元素,.....}; int[] arr = new int[]{ 阅读全文
posted @ 2019-12-12 16:56 一杯水M 阅读(406) 评论(0) 推荐(0) 编辑
摘要:Java语音基础组成一、关键字:被Java赋予含义的单词(如class、interface) 二、标识符:在程序中自定义的一些名称三、注释:单行注释(//)、多行注释(/**/)、文档注释(被javadoc.exe所提取的--格式:/** @author 作者*/)四、常量:不能改变的数值1.对于数 阅读全文
posted @ 2019-12-12 14:16 一杯水M 阅读(342) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示