自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Java Stream

Stream的概述/* * StreamAPI: * StreamAPI是用来处理数据,处理集合等容器中的数据,处理操作有:查询、筛选、删除、过滤、统计、映射等。 * 希望能够用类似于SQL语法的形式对Java内存中的数据进行处理。 * * SQL是对数据库中的数据进行处理。 * * * Stream本身不负责存储数据,存储数据是用集合,数组等数据结构。 * Stream只负责对数据进行处理、加工。 * * Stream的操作分为三步: * 1、创建Str

2020-08-02 16:47:20 117

原创 Java Lambda表达式

Lambda表达式演示/* * Lambda表达式是函数式编程的风格,是为了给SAM接口的变量和形参赋值的一种语法。 * 目的:减少代码的冗余,增加可读性。 * * 示例1: * 开启一个线程,这个线程的任务:打印“hello” 要求用实现Runnable接口的方式来创建多线程 Runnable接口符合SAM特征: public abstract void run(); */public class Test01 { @Test public void test05(

2020-08-02 15:43:02 157

原创 Java 代理设计模式

public class TestFactory3 { public static void main(String[] args)throws Exception { Vehicle c = SimpleFactory3.getVehicle("com.atguigu.test12.QQ"); c.run(); Vehicle c2 = SimpleFactory3.getVehicle("com.atguigu.test12.Aoto"); c2.run(); Veh.

2020-08-02 11:03:13 105

原创 Java 工厂设计模式

/* * 设计模式: * 1、模板设计模式(了解):抽象类 * 2、单例设计模式(重点):多线程时 * 3、装饰者设计模式(IO流体系结构就体现了) * 4、迭代器设计模式(集合,在集合的内部设计迭代器类型) * 5、工厂设计模式(了解) * 6、代理设计模式(了解) * * 一、工厂设计模式:为了解耦合,把对象的创建者与对象的使用者分开。 * 生活中:批量生产产品 * Java中:批量生产对象 * * 生活中: * 最早没有工厂,自给自足,男耕女织 * ...

2020-08-02 10:41:07 117

原创 Java 类加载

类加载过程概述:/* * 类的加载: * 1、加载: * 把字节码读取到内存 * 2、连接 * (1)验证 * (2)准备: * 例如:给类变量(静态变量)在方法区分配内存,非final的赋默认值,但是如果是final的,直接赋常量值。 * (3)解析 * 虚拟机常量池内的符号引用(常量名)替换为直接引用(地址)的过程 * * 这里1,2完成时,在方法区中已经有一个能够代表当前类的Class对象。 * * 3、类的初始化 <clinit>()

2020-08-01 17:36:25 68

原创 Java 网络

网路通信的三个要素: (1)地址: IP地址,定位到一台设备 (2)端口号 定位到一个应用程序(进程) (3)网络协议 对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。 通俗的讲:保证如何准确的到达对方那里,能够正确的解析出数据出来。 OSI(Open System Interconnection)开放系统互连参考模型。 它把计算机网络分成物理层、数据链路层、网络层、传输层、会话层、表...

2020-07-31 14:25:49 176

原创 Java NIO的工具类

/* * io: * 阻塞式IO * nio: JDK1.4-->JDK1.7 * 非阻塞式的IO * * Path(接口):类似于File,用路径名表示一个目录或文件 * Paths:工具类,用来创建Path接口的对象 * * Files工具类,操作文件或目录的工具类: * (1)Files.copy(src, dest, StandardCopyOption.REPLACE_EXISTING); * (2)delete(Path path) 功能类似.

2020-07-31 11:28:12 369

原创 Java 打印流 文本扫描仪Scanner Systerm类中的IO流

PrintStream和PrintWriter/* * 打印流:输出流 * (1)PrintStream: * 经典代表:System.out * Sysetm.err * * new PrintStream(文件名) * new PrintStream(文件名,编码) * new PrintStream(另一个字节输出流) * * (2)PrintWriter * Web阶段学习时,从服务器端往客户端返回消息时用到response,response.g

2020-07-31 11:09:16 185

原创 Java 对象的序列化和反序列化

对象的序列化和反序列化/* * 序列:排队, * 把对象转为字节序列,序列化的过程 * * ObjectOutputStream:用于输出对象,把对象转成字节数据输出,对象的输出过程称为序列化。 * ObjectOutputStream比OutputStream多了很多方法,其中一个是 writeObject(obj) * * 只能将支持 java.io.Serializable 接口的对象写入流中。每个 serializable 对象的类都被编码,编码内容包括类名和类签名、对

2020-07-30 18:05:21 92

原创 Java Buffer缓冲IO流

/* * 缓冲IO流: * 是处理流,负责在其他IO流基础上增加缓冲功能。提高效率 * * BufferedReader ---> Reader * BufferedWriter ---> Writer * BufferedInputStream ---> InputStream * BufferedOutputStream ---> OutputStream * * * BufferedReader除了继承了Reader的那些读的方法,还.

2020-07-30 16:50:00 299

原创 Java IO

IO的概述/* * 1、IO: * I:input,输入 * O:output:输出 * * (1)如果对于File对象来说,输入和输出操作只能针对文件,不能针对目录。 * (2)IO操作不仅仅是针对文件,它可以从网络中输入和输出... * (3)输入: * 输出: * 参照物是当前程序 * * 例如:把数据写到文件中:输出操作 把数据从程序中输出到文件 * 从文件读取数据: 输入操作 * 例如: * 服务器端发送数

2020-07-30 15:33:20 74

原创 Java 文件

java.io.File:类 文件和目录 路径名的抽象表示形式。 通俗的讲:File类的对象代表一个文件或一个目录(文件夹) 1、路径的分隔符: windows:\ 和 / 其他平台:/ 网络地址:http://www.baidu.com/index.html 现在写路径分隔符:(1)/(2)File.separator 2、API (1)获取文件或目录的详细信息 getName() long length...

2020-07-30 14:29:31 78

原创 Java 泛型

/* * 泛型的使用形式有2种: * 1、泛型类\泛型接口 * 2、泛型方法 * * 一、泛型类/接口 * 1、语法格式: * 【修饰符】 class 类名<泛型形参列表>{ * } * 【修饰符】 interface 接口名<泛型形参列表>{ * } * * 例如: * public interface Collection<E> <E>就是泛型形参列表 * public class ArrayList<E..

2020-07-29 22:57:18 146

原创 Java 集合(二)

集合Map接口/* * 1、集合分为两大家族: * (1)Collection:一组对象,单身party * List和Set * (2)Map:一组键值对,映射关系,情侣party * * 2、Map接口 * (1)API * put(Object key, Object value) * putAll(Map m):将另一个m中是所有的映射关系都添加到当前map中 * * boolean containsKey(Object key) :是否包含某个key * boo

2020-07-29 15:44:15 98

原创 Java集合(一)

集合List子接口/* * Collection是根接口,没有提供任何直接实现的。它有一些更具体的子接口,例如:List和Set。 * 一、List:列表,接口 * 1、List系列的集合:有序的、可重复的 * 2、List系列的集合:ArrayList(动态数组)、Vector(动态数组,向量类)、 * LinkedList(双向链表、双端队列、栈..)、Stack(栈) * 3、List的API * List接口比Collection接口多了一堆方法: * 下面列举的方法是比

2020-07-29 14:25:02 94

原创 Java Collection集合介绍

/* * 数据结构,容器: * 用来装对象....,等各种管理对象的容器。 * * 容器有相同的操作标准: * (1)增 * (2)删 * (3)改 * (4)查 * ... * * Java给这些集合抽取两大接口: * 1、Collection: * 规范单值集合的接口,obj --》单身party * 2、Map * 规范对值集合的接口,(key,value) -->情侣party * * 一、Collection * 1、Collec.

2020-07-29 11:09:23 95

原创 Java日期时间API

/* * 日期时间的API: * 1、JDK1.8之前 * 2、JDK1.8之后 * * 一、JDK1.8之前 * 1、java.util.Date * (1)new Date() * (2)new Date(毫秒) * (3)long getTime() * * 2、java.util.Calendar:日历类型 * 抽象类,它有子类GregorianCalendar * * 3、java.util.TimeZone * static TimeZone getTime.

2020-07-28 16:38:11 150

原创 Java StringBuffer和StringBuilder

/* * 字符串的兄弟类: * * String:不可变对象。一旦修改就会有新对象。 * 引入:可变字符序列,StringBuffer和StringBuilder * * StringBuilder默认的char[]长度为16; * 不够了,扩容为原来的2倍+2 * * StringBuffer和StringBuilder: * StringBuffer线程安全的 * StringBuilder线程不安全的,JDK1.5引入 * * 方法: * (1)append(.

2020-07-28 15:55:44 148 1

原创 Java String的常用方法

String常用方法(一)/* * 方法系列一: * (1)int length():返回字符串的长度,返回的是字符的个数 * 因为String的内部(JDK1.9之前)用char[]实现,这个长度就是value数组的长度 * (2)boolean isEmpty():是否是空字符串 * (3)String toLowerCase() * String toUpperCase() * (4)String trim() :去掉字符串的前后空白符 * (5)String conc

2020-07-28 12:01:36 222

原创 Java String类

String类的特点/* * java.lang.String: * 1、特点 * (1)String类型不能被继承,因为String是由final修饰 * (2)String类型的对象是不可变 * 换句话说,只要修改字符串,就会产生新对象 * (3)String对象不可变的特性,使得我们可以把一些字符串存到常量池中, * 字符串有常量池。常量池中的是可以共享的。 * * 字符串常量池在哪里?Oracle官方虚拟机HotSpot * (1)JDK1.6以及之前:方法区 * (2

2020-07-27 14:09:53 83

原创 Java单例设计模式

/* * 单例设计模式: * * 单例:某个类只能有唯一的一个实例对象。 * * 如何实现单例? * 1、饿/恶汉式 * 不管我们使用者是否需要这个对象,它都上来先给你创建好这个唯一的对象。 * (1)枚举类型 * (2)形式二 * ①构造器私有化 * ②用一个全局的静态的常量,来保存这个唯一的实例对象 * (3)形式三 * ①构造器私有化 * ②用一个私有的静态的常量,来保存这个唯一的实例对象 * ③提供一个静态方法,来返回这个常量对象 * * 2、懒汉式 * .

2020-07-26 11:29:24 67

原创 Java生产者与消费者问题

/* * 线程通信是用来解决生产者与消费者问题。 * * 生产者与消费者问题: * 有两个或者多个线程。 * 其中一个/一部分线程,生产“数据”,称为生产者线程; * 另一个/一部分线程,消耗“数据”,称为消费者线程。 * 这些数据放在一个“共享”区域。 * 那么就会出现: * 当“共享”区域中的数据空了,消费者线程必须"停/等待",等待到产者线程生产了新数据后,继续进行。 * 当“共享”区域中的数据满了,生产者线程必须"停下/等待",等到消费者线程消耗了.

2020-07-26 11:10:40 88

原创 Java线程安全问题以及死锁

/* * 举例:卖票 * 假设,有10张票,分三个窗口同时卖 * * 1、线程安全问题: * 当多个线程使用“共享数据”时,就会有线程安全问题。 * 当一个线程修改了“共享数据”,是会影响其他线程。 * * 2、如何解决? * 加锁 * * 形式一:同步代码块 * 形式二:同步方法 * * 3、同步代码块 * 语法格式: * synchronized(锁对象){ * 需要加锁的代码 * } * * 锁对象,又称为监视器对象,同一时刻,某一段代码,.

2020-07-25 22:44:11 75

原创 Java多线程

/* * 1、Java中如何去实现多线程? * (1)Java的程序入口是main,其实也是main线程,主线程。 * 线程是进程的其中一条执行路径,即一个进程至少有一个线程。那么main线程就是Java程序进程的第一个线程了。 * (2)如何开启main线程以外的其他线程呢? * 这里讲解JavaSE阶段2种,后面会发现还有其他方式。 * 方式有两种:①继承Thread类②实现Runnable接口 * * 2、继承Thread类 * 步骤: * (1)编写线程类去继承java.l..

2020-07-24 17:52:22 65

原创 Java异常处理throws以及throw

/* * 异常处理的方式之一: * 在当前方法中直接用try...catch处理 * 异常处理的方式之二: * 在当前方法中不处理,扔/抛给调用者处理 * * throws的好处: * (1)throws:告知被调用者,我这个方法可能会抛出哪些异常,使得调用者可以明确的知道应该catch什么异常 * 如果没有throws,那么调用者就不清楚,只能按照Exception处理,或者根据错误经验来处理。 * (2)编译时异常,如果在当前方法中不用try..catch处理,编译不通过,.

2020-07-19 12:59:18 271

原创 Java异常

import java.util.Scanner;/* * 异常: * 不正常 * 在某些情况下,因为用户的一些原因,例如:配置问题、错误输入的问题、用户磁盘空间满了等因素,导致程序无法正常运行。 * * 不是异常:(1)语法错误(2)逻辑错误 * * Java的程序如果出现异常,并且在代码中,没有做相应的处理,那么程序会“崩溃”,“挂了” * * Java如何处理异常?或Java异常处理的过程? * (1)当程序运行到某一句时,发生了异常,那么程序会先停下来 * .

2020-07-18 18:10:42 104

原创 Java注解

import java.util.Arrays;import java.util.Comparator;import java.util.Date;/* * 1、注解: * 也是一种注释。它是代码级别的注释。是用代码注释代码。 * 不同于我们之前的单行注释//,多行注释/* * / * * 当你在代码中,看到@开头就是注解了。 * * 2、一个完整的注解,由三部分组成: * (1)声明 * (2)使用 * (3)读取 * * 绝大多数程序员,面对的基本上是(.

2020-07-15 16:09:30 63

原创 Java枚举

/* * 枚举:JDK1.5就引入 * 类似:列举,穷举,一一罗列 * Java枚举:把某个类型的对象,全部列出来 * * 当什么情况下会用到枚举类型? * 当某个类型的对象是固定的,有限的几个,那么就可以选择使用枚举。 * 在整个系统的运行期间,有且只有这几个对象。 * * 例如: * 性别 Gender,它的对象只有三个:男,女,妖 * 星期 Week,它的对象只有7个:Monday,Tuesday,Wednesday,Thursday,Friday,Satu.

2020-07-14 21:48:09 170

原创 Java——内部类

1、内部类: 定义在另外一个类里面的类,就叫做内部类,为了区别,把外面的类称为外部类。 2、分类 根据内部类的所在的位置不同: (1)成员内部类:外部类中方法外 (2)局部内部类:方法体内,(虽然也可以在代码块内,但是不讨论这个) 成员内部类: (1)有static修饰的:静态成员内部类,我们通常就简称为静态内部类 (2)没有static修饰的:非静态成员内部类,我们通常就简称为成员内部类 【修饰符】 class 外部类{ ...

2020-07-14 18:49:15 57

原创 Java——接口

接口的思想,一开始不好理解。但是语法很简单。 1、接口 行为标准 生活中: 例如:USB接口 有了标准, (1)电脑设计时简单了,多提供几个USB接口,就可以让很多的设备和我电脑连接 (2)对于其他设备的厂商也简单了,只要你这个设备有与电脑连接的需求,那么就可以把连接口设计为USB 例如:电源接口 有了标准: (1)插座的设计 (2)电器的设计 Java中: 为了限定某些类(这些类之间可能没有继承关系,甚至都不是一个派系里面的),但...

2020-07-13 22:18:16 114

原创 Java——根父类

Java中规定: 如果一个类没有显式声明它的父类(即没有写extends xx),那么默认这个类的父类就是java.lang.Object。 类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。 如何理解根父类? (1)所有对象(包括数组)都实现这个类的方法。 换句话说Object类中声明的方法,所有引用数据类型(包括数组)中都有 (2)所有类的对象的实例化过程,都会调用Object的实例初始化方法 (3)所有的对象都可以赋值给Object的...

2020-07-13 16:33:37 645

原创 Java——设计模式(模板设计模式)

/* * 设计模式? * 解决问题的套路,代码结构。 * Java中常用的设计模式有23种。 * JavaSE阶段给大家普及几个: * (1)模板设计模式 * (2)单例设计模式:(*****)脱稿 * (3)工厂设计模式:(**)会调用工厂类的方法 * (4)代理设计模式:(***)模仿 * (5)迭代器设计模式 * (6)装饰者设计模式 * 能看懂代码,能认识 * * (1)模板设计模式 * ppt模板,论文模板,简历模板,请假条模板 * * 当你解决一下问题时.

2020-07-13 10:38:52 105

原创 Java抽象类与抽象方法

抽象:abstract 是具体的反义词 和模糊,不确定,不清晰有的类似1、什么情况下会用到抽象? 当我们在声明一个父类时,某个/些方法的实现不清楚,或者说无法给出具体的实现, 要等到具体的子类中才能给出具体的实现,那么这样的方法,就可以声明为抽象方法。 抽象方法没有方法体2、抽象方法语法格式: 【其他修饰符】 abstract 返回值类型 方法名(【形参列表】);3、抽象类 如果一个类中包含了...

2020-07-13 10:28:10 134

原创 Java练习题_01

1.2.3.4./* * 实例初始化的过程: * (1)父类的实例初始化 * <init>(){ * x = 10;//父类的x * this.print();//子类的print,因为this代表的是正在创建的子类对象,而子类重写了print,所以是子类的print' * System.out.println("Son.x = " + x);//子类的x 没有赋值x=0 x = 20;//父类的x * } * (2)子类的实例初

2020-07-12 21:04:52 125

原创 Java——变量的分类(类变量、实例变量、局部变量)

变量的分类: 1、成员变量 (1)类变量:静态的成员变量 (2)实例变量:非静态的成员变量 2、局部变量 区别: 1、声明的位置 (1)成员变量:类中方法外 (2)局部变量: 方法()中形参列表 方法体{}中局部变量 代码块中局部变量 2、在内存中存储的位置 (1)成员变量: ...

2020-07-12 11:20:02 489

原创 Java关键字final、native、static

final:修饰符的一种1、意思:最终的2、final可以修饰:类(外部类、内部类)、变量(成员变量(类变量、实例变量)、局部变量)、方法(静态方法、非静态方法)3、修饰后有什么不同?修饰类:表示这个类不能被继承了,我们可以称它为"太监类例如:String、System、Math 2.修饰方法:表示这个方法不能被重写 3.修饰变量:表示这个变量的值不能被修改,即我们称为的"常量"常量有两种: 一种是字面常量:例如:"hello“,12,...

2020-07-11 12:46:24 409

原创 Java——类型转换:向上转型与向下转型、instanceof关键字

/* * 数据类型的转换: * 1、基本数据类型的转换 * (1)自动类型转换 * byte->short->int->long->float->double * char-> * boolean不参与 * (2)强制类型转换 * double->float->long->int->short->byte * ->char * * 2、引用数据类型数据 * 父子类之间的转换:编译期.

2020-07-10 17:52:08 360

原创 Java多态的应用

多态的好处:使得程序员编写代码更灵活多态的应用:(1)多态数组数组的元素是父类的类型,实际存储的是子类的对象。用这样的数组,就可以统一管理,所有子类的对象(2)多态参数:形参是父类的类型,实参是子类的对象应用一:public class TestUse1 { public static void main(String[] args) { /* * 创建一个数组,可以存储各种图形的我对象, * 包括圆对象,矩形对象,三角对象... * *

2020-07-10 12:31:12 538

原创 面向对象的基本特征——多态

一丶面向对象的基本特征:封装和权限修饰符有关 2.继承extends 3.多态二丶多态多态:多种形态变量的引用形式:(1)本态引用:左边的变量与右边的对象是同一种类型(2)多态引用:左边的变量是父类类型,右边的对象是子类的对象多态表现出的特征:编译类型与运行时类型不一致 编译的时候,按照父类的类型进行编译的 执行的方法,按照子类进行运行,是执行子类重写的方法 编译看左边,运行看右边。前提:(1)继承 (2)重写...

2020-07-10 10:42:32 177

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除