
java基础
文章平均质量分 91
VINCENT2306
Stay hungry , stay foolish !
展开
-
Junit单元测试、反射、注解
Junit单元测试:* 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。* Junit使用:白盒测试 * 步骤: 1. 定义一个测试类(测试用例) * 建议: * 测试类名:被测试的类名Test CalculatorTest * 包名:xxx.xxx.xx.test原创 2021-01-12 18:58:43 · 105 阅读 · 0 评论 -
Stream流、方法引用
第一章 Stream流说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。1.1 引言传统集合的多步遍历代码几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如:import java.u原创 2021-01-12 18:54:18 · 138 阅读 · 0 评论 -
函数式接口
第一章 函数式接口1.1 概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。备注:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实底层的实现原理仍然是迭代器,这便是“语法糖”。从应用层面来讲,Java中的Lambd原创 2021-01-12 16:26:43 · 140 阅读 · 1 评论 -
网络编程
第一章 网络编程入门1.1软件结构C/S结构:全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构:全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。1.2 网络通信协议 网络通信协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和...原创 2021-01-12 15:38:53 · 228 阅读 · 0 评论 -
缓冲流、转换流、序列化流
第一章 缓冲流昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流.原创 2021-01-12 15:10:14 · 92 阅读 · 0 评论 -
字节流、字符流
第一章 IO概述1.1 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入...原创 2021-01-12 14:54:32 · 121 阅读 · 0 评论 -
File类、递归
第一章 File类1.1 概述java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。1.2 构造方法public File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 public File(String parent, String child):从父路径名字符串和子路径名字符串创建新的 File实例。 public File(File parent, String chi...原创 2021-01-12 14:31:18 · 89 阅读 · 0 评论 -
线程池、Lambda表达式
第一章 等待唤醒机制1.1 线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同.原创 2021-01-11 23:56:24 · 135 阅读 · 0 评论 -
线程、同步
第一章 线程1.1 多线程原理昨天的时候我们已经写过一版多线程的代码,很多同学对原理不是很清楚,那么我们今天先画个多线程执行时序图来体现一下多线程程序的执行流程。代码如下:自定义线程类:public class MyThread extends Thread{/** 利用继承中的特点* 将线程名称传递 进行设置*/public MyThread(String name){super(name);} /* *重写run方法* 定义线程要执行的代码*/public vo原创 2021-01-11 23:35:27 · 82 阅读 · 0 评论 -
异常、线程
第一章 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.1.2 异常体系异常机制其.原创 2021-01-11 22:58:17 · 93 阅读 · 0 评论 -
Map
第一章 Map集合1.1 概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 Map中.原创 2021-01-11 22:38:54 · 106 阅读 · 0 评论 -
List、Set
第一章 数据结构1.1 数据结构有什么用?当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删除,也是在追求更快。我们java是面向对象的语言,就好似自动档轿车,C原创 2021-01-11 22:06:01 · 136 阅读 · 0 评论 -
Collection、泛型
第一章 Collection集合1.1 集合概述在前面基础班我们已经学习过并使用过集合ArrayList,那么集合到底是什么呢?集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。1.2 集合框架JAVASE提供了满足各种需求的API,在使用这些A.原创 2021-01-11 21:21:16 · 111 阅读 · 0 评论 -
Object类、常用API
第一章 Object类1.1 概述java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:public class MyClass /*extends Object*/ { // ...}根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。今天我们主要学习其中的2个:publ原创 2021-01-11 15:44:50 · 130 阅读 · 0 评论 -
final、权限、内部类
第一章 final关键字1.1 概述学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。为了避免这种随意改写的情况,Java提供了 final 关键字,用于修饰不可改变内容。final: 不可改变。可以用于修饰类、方法和变量。类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值。1.2 使用方式修饰类格式如下:final class原创 2021-01-11 15:05:53 · 139 阅读 · 0 评论 -
接口、多态
第一章 接口1.1 概述接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。引用数据类型:数组,类,接口。接口的使用,它不能创建对象,但是可以被实现( impleme原创 2021-01-10 18:56:00 · 104 阅读 · 0 评论 -
继承、super、this、抽象类
第一章 继承1.1 概述由来多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。如图所示:其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。继承描述的是事物之间的所属关系,这种关系是: is-a 的关系。例如,图中兔子属于食草动物,食草动物属于动物。可见,父类更通用,子类更具体。我们通过继承,可以使多种事物之间形成一种关系体系。定义继承:就是子类继承父类的属性和行为,使得子类对原创 2021-01-08 23:58:52 · 105 阅读 · 0 评论 -
Sting类、static、Arrays类、Math类
第一章 String类1.1 String类概述概述java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例。类 String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。特点1. 字符串不变:字符串的值在创建后不能被更改。String s1 = "abc";s1 += "d";System.out.println(s原创 2021-01-08 23:20:44 · 129 阅读 · 0 评论 -
Scanner类、Random类、ArrayList类
第1章 API概述API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。API使用步骤1. 打开帮助文档。2. 点击显示,找到索引,看到输入框。3. 你要找谁?在输入框里输入,然后回车。4. 看原创 2021-01-07 23:43:23 · 128 阅读 · 0 评论 -
类与对象、封装、构造方法
第1章 面向对象思想1.1 面向对象思想概述概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。举例洗衣服:面向过程:把衣原创 2021-01-07 21:24:40 · 214 阅读 · 0 评论 -
数组
第一章 数组定义和访问1.1 容器概述案例分析现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有50名员工,用前面所学的知识,程序首先需要声明50个变量来分别记住每位员工的工资,然后在进行操作,这样做会显得很麻烦,而且错误率也会很高。因此我们可以使用容器进行操作。将所有的数据全部存储到一个容器中,统一操作。容器概念容器:是将多个数据存储到一起,每个数据称为该容器的元素。生活中的容器:水杯,衣柜,教室1.2 数组概念数组概念: 数组就是存储数据长度固定的容器,保原创 2021-01-07 20:44:55 · 295 阅读 · 0 评论 -
IDEA、方法
第一章 开发工具IntelliJ IDEA1.1 开发工具概述IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写。所以,需要有JRE运行环境并配置好环境变量。它可以极大地提升我们的开发效率。可以自动编译,检查错误。在公司中,使用的就是IDEA进行开发。1.2 IDEA软件安装此软件集成了32位和64位,双击 ideaIU-2017.3.2.exe 进入安装。1. 欢迎界面2. 选择安装路径3. 配置安装选项4. 开始菜单5. 安装.原创 2021-01-07 20:06:33 · 218 阅读 · 0 评论 -
流程控制语句
第一章 流程控制1.1 概述在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。1.2 顺序结构public static void main(String[] args){//顺序执行,根据编写的顺序,从上到下运行System.out.println(1);System.out.println(2);System.o原创 2021-01-07 19:07:50 · 133 阅读 · 0 评论 -
数据类型转换、运算符、方法入门
第一章 数据类型转换Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。1.1 自动转换一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?int i = 1;byte b = 2;运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。public static void main(String[] arg原创 2021-01-07 18:23:49 · 349 阅读 · 0 评论 -
Java环境变量配置、入门程序、常量、变量
第一章 Java语言开发环境搭建1.1 Java虚拟机——JVMJVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操原创 2021-01-07 16:23:23 · 198 阅读 · 0 评论 -
transient关键字的作用及使用方法
1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属...转载 2018-08-27 21:41:17 · 19939 阅读 · 2 评论 -
Java基础---java中E,T,?的区别
遇到<A>,<B>,<K,V>等,是用到了java中的泛型。 一般使用<T>来声明类型持有者名称,自定义泛型类时,类持有者名称可以使用T(Type) 如果是容器的元素可以使用E(Element),若键值匹配可以用K(Key)和V(Value)等, 若是<?>,则是默认是允许Object及其下的子类,也就是java的所有对象了。 所以...转载 2018-08-27 09:03:32 · 601 阅读 · 0 评论