Java基础
文章平均质量分 91
Java是一门面向对象的编程语言,Java语言具有功能强大和简单易用两个特征。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Mr.D.Chuang
时代各有不同,青春一脉相承。一起学习,一起奋进,一起进步,砥砺前行。
展开
-
Java基础:Lambda表达式方法引用
在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑?能否省去Lambda的语法格式(尽管它已经相当简洁)呢?双冒号::为引用运算符,而它所在的表达式被称为方法引用。如果Lambda要表达的函数方案已经存在于某个方法的实现中,那么则可以通过双冒号来引用该方法作为Lambda的替代者。原创 2022-12-26 20:11:21 · 1516 阅读 · 0 评论 -
Java基础:网络编程
C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)两端通信时步骤:服务端程序,需要事先启动,等待客户端的连接。客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。Socket类:该类实现客户端套接字,套接字指的是两台设备之间通讯的端点。原创 2022-12-18 11:27:50 · 135 阅读 · 0 评论 -
Java基础:序列化&打印流
Java提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据 、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。java.io.ObjectOutputStream类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。ObjectInputStream反序列化流,将之前使用O原创 2022-12-17 11:57:27 · 148 阅读 · 0 评论 -
Java基础:转换流
字符编码 Character Encoding : 就是一套自然语言的字符与二进制数之间的对应规则。字符集 Charset :也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。在IDEA中,使用FileReader读取项目中的文本文件。由于IDEA的设置,都是默认的UTF-8编码,所以没有任何问题。但是,当读取Windows系统中创建的文本文件时,由于Windows系统的默认是GBK编码,就会出现乱码。原创 2022-12-16 08:00:00 · 403 阅读 · 0 评论 -
Java基础:缓冲流
缓冲流,也叫高效流,是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream;字符缓冲流: BufferedReader, BufferedWriter。缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。原创 2022-12-15 08:15:00 · 170 阅读 · 0 评论 -
Java基础:字节流、字符流
Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写出数据。根据数据的流向分为:输入流和输出流。输入流 :把数据从 其他设备 上读取到 内存 中的流。输出流 :把数据从 内存 中写出到 其他设备 上的流。格局数据的类型分为:字节流和字符流。字节流 :以字节为单位,读写数据的流。字符流 :以字符为单位,读写数据的流。字符流,只能操作文本文件 ,不能操作图片,视频等非文本文件。当我们单纯读或者写文本文件时,使用字符流,其他情况使用字节流。原创 2022-12-14 07:30:00 · 824 阅读 · 0 评论 -
Java基础:File类、递归
java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。ublic File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。public File(String parent, String child):从父路径名字符串和子路径名字符串创建新的File实例。递归:指在当前方法内调用自己的这种现象。递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。在递归中虽然有限定条件,但是递归次数不能太多。原创 2022-12-13 07:45:00 · 147 阅读 · 0 评论 -
Java基础:Lambda表达式
Lambda省去面向对象的条条框框,格式由3个部分组成:一些参数、一个箭头、一段代码。Lambda表达式的标准格式为:(参数类型 参数名称) -> { 代码语句 }。格式说明:小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。->是新引入的语法格式,代表指向动作。大括号内的语法与传统方法体要求基本一致。使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法。 使用Lambda必须具有上下文推断。原创 2022-12-12 08:15:00 · 227 阅读 · 0 评论 -
Java基础:线程池
线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。合理利用线程池能够带来三个好处:降低资源消耗。提高响应速度。提高线程的可管理性。使用线程池中线程对象的步骤:创建线程池对象。创建Runnable接口子类对象。(task)提交Runnable接口子类对象。(take task)关闭线程池(一般不做)。原创 2022-12-11 10:46:06 · 461 阅读 · 0 评论 -
Java基础: 线程
并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。一个程序运行后至少有一个进程,一个进程中可以包多个线程。原创 2022-12-10 21:29:20 · 184 阅读 · 0 评论 -
Java基础:异常处理
异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.lang.Exception,平常所说的异常指java.lang.Exception。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。编译时期异常:checked异常。运行时期异常:runtime异常。原创 2022-12-09 07:45:00 · 116 阅读 · 0 评论 -
Java基础:Map集合
Collection中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection中的集合称为单列集合,Map中的集合称为双列集合。需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。原创 2022-12-08 07:45:00 · 1580 阅读 · 0 评论 -
Java基础:List、Set、数据结构、Collections
栈:stack, 又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。队列:queue, 简称队,它同堆栈一样,也是一种运算受限的线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除。数组:Array, 是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。链表:linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。原创 2022-12-07 08:15:00 · 162 阅读 · 0 评论 -
Java基础:Collection、泛型
集合:集合是java中提供的一种容器,可以用来存储多个数据。Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。泛型:可以在类或方法中预支地使用未知的类型。原创 2022-12-06 07:45:00 · 328 阅读 · 0 评论 -
Java基础:Object类、常用API
java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。java.util.Date类 表示特定的瞬间,精确到毫秒。java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。StringBuilder又称为可变字符序列,它是一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。装箱:从基本类型转换为对应的包装类对象。拆箱:从包装类对象转换为对应的基本类型。原创 2022-12-05 07:45:00 · 327 阅读 · 0 评论 -
Java基础:final、权限、内部类、引用类型
为了避免这种随意改写的情况,Java提供了final关键字, 用于修饰不可改变内容。final:不可改变。可以用于修饰类、方法和变量。被修饰的类,不能被继承。被修饰的方法,不能被重写。被修饰的变量,不能被重新赋值。在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限。public:公共的;protected:受保护的;default:默认的;private:私有的。将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。原创 2022-12-04 11:26:41 · 294 阅读 · 0 评论 -
Java基础:接口、多态
接口是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么 接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。多态是继封装、继承之后,面向对象的第三大特性。多态:是指同一行为,具有多个不同表现形式。父类类型 变量名 = new 子类对象;当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后方法。原创 2022-12-04 07:30:00 · 143 阅读 · 0 评论 -
Java基础:继承、super、this、抽象类
继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。Java只支持单继承,不支持多继承。Java支持多层继承(继承体系)。子类和父类是一种相对的概念。super :代表父类的存储空间标识 (可以理解为父亲的引用)。this :代表当前对象的引用 (谁调用就代表谁)。抽象方法 : 没有方法体的方法。抽象类:包含抽象方法的类。抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。原创 2022-12-03 07:45:00 · 178 阅读 · 0 评论 -
Java基础:String类、static关键字、Arrays类、Math类
java.lang.String类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例。关于static关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。java.util.Arrays此类包含用来操作数组的各种方法,比如排序和搜索等。java.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。原创 2022-12-02 19:54:32 · 549 阅读 · 0 评论 -
Java基础:Scanner类、Random类、ArrayList类
API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的字典 ,是JDK中提供给我们使用的类的说明文档。什么是Scanner类?一个可以解析基本类型和字符串的简单文本扫描器。什么是Random类?此类的实例用于生成伪随机数。java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。ArrayList中可不断添加元素,其大小也自动增长。原创 2022-12-02 08:00:00 · 113 阅读 · 0 评论 -
Java基础:类与对象、封装、构造方法
类是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。对象是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为。封装原则将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。使用private关键字来修饰成员变量。对需要访问的成员变量,提供对应的一对getXxx方法 、setXxx方法。无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,一旦自己定义了构造方法,自动提供的默认无参数构造方法就会失效。原创 2022-12-01 21:34:08 · 115 阅读 · 0 评论 -
Java基础:数组
数组概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度]; 数组定义格式详解:数组存储的数据类型: 创建的数组容器可以存储什么数据类型。[] : 表示数组。数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。new:关键字,创建数组使用的关键字。数组存储的数据类型: 创建的数组容器可以存储什么数据类型。[长度]:数组的长度,表示数组容器中可以存储多少个元素。原创 2022-12-01 08:15:00 · 404 阅读 · 0 评论 -
Java基础:方法
修饰符: public static固定写法;返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者;参数列表:方法在运算过程中的未知数据,调用者调用方法时传递;return:将方法执行后的结果带给调用者,方法执行到return,整体方法运行结束。方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。参数列表:个数不同,数据类型不同,顺序不同。重载方法调用:JVM通过方法的参数列表,调用不同的方法。原创 2022-11-30 08:15:00 · 295 阅读 · 0 评论 -
Java基础:流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。原创 2022-11-29 08:15:00 · 131 阅读 · 1 评论 -
Java基础:数据类型转换、运算符、方法入门
Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。原创 2022-11-28 14:58:55 · 138 阅读 · 1 评论 -
Java基础:入门程序、常量、变量
Java程序开发三步骤:编写、编译、运行。常量:是指在Java程序中固定不变的数据。整数常量:所有的整数;小数常量:所有的小数;字符常量:单引号引起来,只能写一个字符,必须有内容;字符串常量:双引号引起来,可以写多个字符,也可以不写;布尔常量:只有两个值(流程控制中讲解);空常量:只有一个值(引用数据类型中讲解)。变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。Java的数据类型分为两大类:基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。引用数据类型:包括类 、 数组 、 接口。原创 2022-11-28 08:15:00 · 371 阅读 · 1 评论