07 2022 档案

摘要:格式化打印信息 下面的字符串数组当中存有多条信息,请按照格式”姓名∶XX。性别:xx""的格式将信息打印出来 要求将打印姓名的动作作为第一个Consumer 接口的Lambda实例,将打印性别的动作作为第二个Cconsumer接口的Lambda实例 将两个Consumer 接口按照顺序“拼接"到一起 阅读全文
posted @ 2022-07-20 11:46 帕拉利斯 阅读(64) 评论(0) 推荐(0) 编辑
摘要:java.util.fiInction.consumer<T>接口则正好与Supplier接口相反 它不是生产一个数据,而是消费一个数据其数据类型由泛型决定 抽象方法: accept Consumer接口中包含抽象方法void accept(T t),意为消费一个指定泛型的数据 Consumer接口 阅读全文
posted @ 2022-07-20 11:05 帕拉利斯 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-07-19 10:44 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:发现以下代码存在的一些性能浪费的问题 调用showlog方法,传递的 第二个参数是一个拼接后的字符串先把字符串拼接好,然后在调用showLog方法 showLog方法中如果传递的日志等级不是1级那么就不会是如此拼接后的字符串 所以感觉字符串就白拼接了,存在了浪费 使用Lambda优化日志案例 Lam 阅读全文
posted @ 2022-07-19 09:47 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑
摘要:函数式接口在Java中是指:有且仅有一个抽象方法的接口 函数式接口:有且只有一个抽象方法的接口 称之为函数式接口当然接口中可以包含其他的方法(默认,静态,私有) @FunctionalInterface注解 作用:可以检测接口是否是一个函数式接口 是:编译成功 否:编译失败 接口中没有抽象方法抽象方 阅读全文
posted @ 2022-07-19 09:06 帕拉利斯 阅读(151) 评论(0) 推荐(0) 编辑
摘要:文件上传案例服务器端:读取客户端上传的文件,保存到服务器的硬盘,给客户端回写" 上传成功明确: 数据源:客户端上传的文件 自的地:服务器的硬盘 实现步骤: 1.创建一个服务器serverSocket对象,和系统要指定的端口号 2.使用ServerSocket对象中的方法accept,获取到请求的客户 阅读全文
posted @ 2022-07-18 10:52 帕拉利斯 阅读(27) 评论(0) 推荐(0) 编辑
摘要:文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据明确:数据源:c\\exx.jpeg目的地:服务器实现步骤:1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源 2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号 3 阅读全文
posted @ 2022-07-18 09:29 帕拉利斯 阅读(24) 评论(0) 推荐(0) 编辑
摘要:TCP通信的客户端;向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据表示客户端的类:java.net.Socket:此类实现客户端套接字(也可以就叫r套接字”)。套接字是两台机器间通信的端点。套接字:包含了IP地址和端口号的网络单位构造方法:Socket (String host, in 阅读全文
posted @ 2022-07-14 10:59 帕拉利斯 阅读(45) 评论(0) 推荐(0) 编辑
摘要:TCP通信程序 概述TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client )与服务端(Server )。两端通信时步骤︰1.服务端程序,需要事先启动,等待客户端的连接。⒉.客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。在Java中,提供了两个 阅读全文
posted @ 2022-07-14 09:58 帕拉利斯 阅读(60) 评论(0) 推荐(0) 编辑
摘要:通信的协议还是比较复杂的,java.net包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节。java.net包中提供了两种常见的网络协议的支持︰UDP:用户数据报协议(User Datagram Protocol)。UDP是无连接 阅读全文
posted @ 2022-07-14 08:57 帕拉利斯 阅读(131) 评论(0) 推荐(0) 编辑
摘要:B/S结构︰全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 C/S结构︰全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 1.2网络通信协议网络通信协议∶通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计 阅读全文
posted @ 2022-07-13 11:33 帕拉利斯 阅读(104) 评论(0) 推荐(0) 编辑
摘要:练习:序列化集合当我们想在文件中保存多个对象的时候可以把多个对象存储到一个集合中对集合进序列化和反序列化分析:1.定义一个存储Person对象的ArrayList集合 2.往ArrayList集合中存储Person对象3.创建一个序列化流objectoutputstream对象4.使用objecto 阅读全文
posted @ 2022-07-13 11:29 帕拉利斯 阅读(31) 评论(0) 推荐(0) 编辑
摘要:static关键字:静态关键字静态优先于非静态加载到内存中(静态优先于对象进入到内存中)被static修饰的成员变量不能被序列化的,序列化的都是对象private static int age;oos.writeobject( new Person("小美女”,18));object o = ois 阅读全文
posted @ 2022-07-13 10:18 帕拉利斯 阅读(44) 评论(0) 推荐(0) 编辑
摘要:java.io.0bjectoutputstream extends outputstreamobjectoutputstream:对象的序列化流作用:把对象以流的方式写入到文件中保存构造方法:objectoutputStream(OutputStream out)创建写入指定outputStrea 阅读全文
posted @ 2022-07-13 09:37 帕拉利斯 阅读(21) 评论(0) 推荐(0) 编辑
摘要:转换文件编码 练习:转换文件编码将GBK编码的文本文件,转换为UTF-8编码的文本文件。分析:1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称GBK ⒉.创建outputstreamwriter对象,构造方法中传递字节输出流和指定的编码表名称UTF-8 3. 阅读全文
posted @ 2022-07-13 09:22 帕拉利斯 阅读(24) 评论(0) 推荐(0) 编辑
摘要:java.io.Outputstreamriter extends writer_...outputStreamwriter:是字符流通向字节流的桥梁:可使用指定的 charset将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂继续自父类的共性成员方法:- void write(int c 阅读全文
posted @ 2022-07-13 09:01 帕拉利斯 阅读(25) 评论(0) 推荐(0) 编辑
摘要:java.io.Bufferedwriter extends writerBufferedwriter:字符缓冲输出流继承自父类的共性成员方法:- void write(int c)写入单个字符。- void write( char[]cbuf)写入字符数组。- abstractvoid write 阅读全文
posted @ 2022-07-09 16:21 帕拉利斯 阅读(48) 评论(0) 推荐(0) 编辑
摘要:java.io.BufferedInputstream extends InputStreamBufferedInputstream:字节缓冲输入流继承自父类的成员方法:int read()从输入流中读取数据的下一个字节。int read (byte[ ] b)从输入流中读取一定数量的字节,并将其存 阅读全文
posted @ 2022-07-09 15:37 帕拉利斯 阅读(43) 评论(0) 推荐(0) 编辑
摘要:缓冲流概述 缓冲流,也叫高效流,是对4个基本的 Filexxx流的增强,所以也是4个流,按照数据类型分类︰·字节缓冲流:BufferedInputStream , Bufferedoutputstream·字符缓冲流:BufferedReader, BufferedwriterI缓冲流的基本原理,是 阅读全文
posted @ 2022-07-09 14:52 帕拉利斯 阅读(169) 评论(0) 推荐(0) 编辑
摘要:可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储void store ( outputstream out, string comments)void store( iwriter writer,string comments)参数:Outputstre 阅读全文
posted @ 2022-07-09 14:26 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:JDK7的新特性在try的后边可以增加一个(),在括号中可以定义流对象那么这个流对象的作用域就在try中有效try中的代码执行完毕,会自动把流对象释放,不用写finally格式:try(定义流对象;定义流对象....)i可能会产出异常的代码}catch(异常类变量变量名){异常的处理逻辑 JDK9新 阅读全文
posted @ 2022-07-09 11:47 帕拉利斯 阅读(37) 评论(0) 推荐(0) 编辑
摘要:续写和换行续写,追加写:使用两个参数的构造方法Filewriter( string fiLeName, boolean append )FiLewriter( File file, booLean append )参数:string fiLeName ,File file:写入数据的目的地boole 阅读全文
posted @ 2022-07-09 11:25 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:java.io.lwriter :字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类共性的成员方法:- void write(int c)写入单个字符。- void write( char[] cbuf)写入字符数组。- abstractvoid write(char[ ] cbuf,int 阅读全文
posted @ 2022-07-09 10:54 帕拉利斯 阅读(127) 评论(0) 推荐(0) 编辑
摘要:字符流介绍 java.io.Reader :字符输入流,是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类共性的成员方法: int read(读取单个字符并返回。int read (char[] cbuf)一次读取多个字符,将字符读入数组。void close()关闭该流并释放与之关 阅读全文
posted @ 2022-07-09 10:22 帕拉利斯 阅读(73) 评论(0) 推荐(0) 编辑
摘要:文件复制练习;一读一写明确:数据源:a.txt数据的目的地:c.txt 文件复制的步骤:1.创建一个字节输入流对象,构造方法中绑定要读取的数据源 2.创建一个字节输出流对象,构造方法中绑定要写入的目的地 3.使用字节输入流对象中的方法read读取文件 4 .使用字节输出流中的方法write,把读取到 阅读全文
posted @ 2022-07-09 09:54 帕拉利斯 阅读(63) 评论(0) 推荐(0) 编辑
摘要:字节输入流一次读取多个字节的方法:int read(byte[ ] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。明确两件事情:1.方法的参数byte[]的作用?2.方法的返回值int是什么?string类的构造方法string( byte[] bytes) :把字节数组转换为字符串 阅读全文
posted @ 2022-07-09 09:28 帕拉利斯 阅读(18) 评论(0) 推荐(0) 编辑
摘要:java.io.InputStream:字节输入流此抽象类是表示字节输入流的所有类的超类。定义了所有子类共性的方法:int read()从输入流中读取数据的下一个字节。int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中void close()关闭此输入流并释 阅读全文
posted @ 2022-07-08 21:29 帕拉利斯 阅读(71) 评论(0) 推荐(0) 编辑
摘要:追加写/续写:使用两个参数的构造方法FiLeoutputStream(String name, boolean append)创建一个向具有指定name的文件中写入数据的输出文件流。FileOutputStream(File file, boolean append)创建一个向指定File对象表示的 阅读全文
posted @ 2022-07-08 20:57 帕拉利斯 阅读(51) 评论(0) 推荐(0) 编辑
摘要:构造方法:FileoutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流。FileOutputStream(File file)创建一个向指定FiLe对象表示的文件中写入数据的文件输出流参数:写入数据的目的string name:目的地是一个文件的路径F 阅读全文
posted @ 2022-07-08 20:31 帕拉利斯 阅读(61) 评论(0) 推荐(0) 编辑
摘要:一切皆为字节 一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。 所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据 java.io.outputstream:字节输出流此抽 阅读全文
posted @ 2022-07-08 20:20 帕拉利斯 阅读(55) 评论(0) 推荐(0) 编辑
摘要:labdam简化过滤器 IO流概述 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢﹖键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一 阅读全文
posted @ 2022-07-08 20:13 帕拉利斯 阅读(28) 评论(0) 推荐(0) 编辑
摘要:3.1文件搜索搜索D: laaa目录中的.java文件。分析:1.目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。 2.遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。 我们可以使用过滤器来实现在FiLe类中有两个和ListFiLes重载的方法,方法的参数传递的就是过滤器File 阅读全文
posted @ 2022-07-08 20:02 帕拉利斯 阅读(32) 评论(0) 推荐(0) 编辑
摘要:递归求阶乘·阶乘:所有小于及等于该数的正整数的积 定义方法使用递归计算阶乘s的阶乘:5! =.5*(5-1)*(5-2)*(5-3)*(5-4)=5*4*3*2*1递归结束的条件获取到1的时候结束递归的目的获取下一个被乘的数字(n-1) 阅读全文
posted @ 2022-07-08 16:48 帕拉利斯 阅读(51) 评论(0) 推荐(0) 编辑
摘要:递归:方法自己调用自己-递归的分类:-递归分为两种,直接递归和间接递归。-直接递归称为方法自身调用自己。-间接递归可以A方法调用B方法,8方法调用c方法,c方法调用4方法。 -注意事项:-递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。 -在递归中虽然有限定条件,但是递归次数不能太 阅读全文
posted @ 2022-07-08 16:21 帕拉利斯 阅读(94) 评论(0) 推荐(0) 编辑
摘要:public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。创建文件的路径和名称在构造方法中给出(构造方法的参数)返回值:布尔值true:文件不存在,创建文件,返回truefalse:文件存在,不会创建,返回false注意:1.此方法只能创 阅读全文
posted @ 2022-07-08 16:00 帕拉利斯 阅读(123) 评论(0) 推荐(0) 编辑
摘要:FiLe类获取功能的方法- public string getAbsolutePath() :返回此FiLe的绝对路径名字符串。 - public string getpath() :将此FiLe转换为路径名字符串 - public string getName( ) :返回由此FiLe表示的文件或 阅读全文
posted @ 2022-07-08 15:11 帕拉利斯 阅读(60) 评论(0) 推荐(0) 编辑
摘要:路径:绝对路径:是一个完整的路径以盘符(c:,D: )开始的路径c: ilia.txtc: llUserslitcastllIdeaProjects ilshungyuan i l123.txtlD: i ldemo \lb.txt相对路径:是一个简化的路径相对指的是相对于当前项目的根目录(C: I 阅读全文
posted @ 2022-07-08 14:31 帕拉利斯 阅读(204) 评论(0) 推荐(0) 编辑
摘要:File类文件和目录路径名的抽象表示形式。java把电脑中的文件和文件夹(目录)封装为了一个FiLe类,我们可以使用FiLe类对文件和文件夹进行操作我们可以使用FiLe类的方法创建一个文件/文件夹删除文件/文件夹获取文件/文件夹判断文件/文件夹是否存在对文件夹进行遍历获取文件的大小FiLe类是一个与 阅读全文
posted @ 2022-07-08 14:01 帕拉利斯 阅读(36) 评论(0) 推荐(0) 编辑
摘要:lambda有返回值有参数 传统格式 lambda有返回值有参数 Lambda的使用前提Lambda的语法非常简洁,完全没有面向对象复杂的束缚。但是使用时有几个问题需要特别注意:1.使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法。无论是JDK内置的 Runnable 、compara 阅读全文
posted @ 2022-07-08 13:47 帕拉利斯 阅读(91) 评论(0) 推荐(0) 编辑
摘要:需求:给定一个厨子cook接口,内含唯一的抽象方法makeFood,且无参数、无返回值。使用Lambda的标准格式调用invokeCook方法,打印输出‘吃饭啦!”字样 Lambda表达式有参数有返回值的练习使用数组存储多个Person对象对数组中的Person对象使用Arrays的sort方法通过 阅读全文
posted @ 2022-07-08 11:43 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑
摘要:3编程思想转换做什么,而不是怎么做 我们真的希望创建一个匿名内部类对象吗?不。我们只是为了做这件事情而不得不创建一个对象。我们真正希望做的事情是∶将run方法体内的代码传递给Thread类知晓。 传递一段代码――这才是我们真正的目的。而创建对象只是受限于面向对象语法而不得不采取的一种手段方式。那,有 阅读全文
posted @ 2022-07-08 10:50 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:在数学中,函数就是有输入量、输出星的于套计算方案,也就是"拿什么东西做什么事情"。相对而言, 面向对象过分强调"必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法―—强调做什么,而不是以什么形式做 面向对象的思想:做—件事情,找一个能解决这个事请的对象,调用对象的方法,完成事情. 阅读全文
posted @ 2022-07-08 10:42 帕拉利斯 阅读(85) 评论(0) 推荐(0) 编辑
摘要:线程池概念 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结莉了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被 阅读全文
posted @ 2022-07-08 09:33 帕拉利斯 阅读(18) 评论(0) 推荐(0) 编辑
摘要:包子类 包子铺类 吃货类 消费者(吃货)类:是一个线程类,可以继承Thread设置线程任务(run) :吃包子对包子的状态进行判断false:没有包子吃货调用wait方法进入等待状态true:有包子吃货吃包子吃货吃完包子修改包子的状态为false没有吃货唤醒包子铺线程,生产包子 测试类 阅读全文
posted @ 2022-07-08 09:20 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑
摘要:等待唤醒中的方法等待唤醒机制就是用于解决线程间通信的问题的,使用到的3个方法的含义如下∶1. wait :线程不再活动,不再参与调度,进入wait set中,因此不会浪费CPU资源,也不会去竞争锁了,这时的线程状态即是WAITING。 它还要等着别的线程执行一个特别的动作,也即是“通知( notif 阅读全文
posted @ 2022-07-07 20:24 帕拉利斯 阅读(49) 评论(0) 推荐(0) 编辑
摘要:进入到Timewaiting(计时等待)有两种方式1.使用sLeep(Long m)方法,在毫秒值结束之后,线程睡醒进入到Runnable/BLocked状态2.使用wait(Long m)方法, wait方法如果在毫秒值结束之后,还没有被notify唤醒,就会自动醒来,线程睡醒进入到Runnabl 阅读全文
posted @ 2022-07-07 20:17 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:等待唤醒案例:线程之间的通信创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到wAITINc状态(无限等待)创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子注意:顾客和老板线程必须使用同步代码块包裹起来, 阅读全文
posted @ 2022-07-07 19:56 帕拉利斯 阅读(10) 评论(0) 推荐(0) 编辑
摘要:Lock锁java.util.concurrent.locks.Lock机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作,同步代码块/同步方法具有的功能Lock都有,除此之外更强大,更体现面向对象。Lock锁也称同步锁,加锁与释放锁方法化了,如下:public 阅读全文
posted @ 2022-07-07 19:35 帕拉利斯 阅读(107) 评论(0) 推荐(0) 编辑
摘要:同步方法 静态同步方法 阅读全文
posted @ 2022-07-07 17:46 帕拉利斯 阅读(20) 评论(0) 推荐(0) 编辑
摘要:同步代码块同步代码块:synchronized关键字可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。格式:synchronized(同步锁){需要同步操作的代码} 卖票案例出现了线程安全问题卖出了不存在的票和重复的票解决线程安全问题的一种方案:使用同步代码块格式:synchroniz 阅读全文
posted @ 2022-07-07 16:58 帕拉利斯 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-07-07 16:45 帕拉利斯 阅读(14) 评论(0) 推荐(0) 编辑
摘要:匿名内部类方式实现线程的创建匿名:没有名字内部类:写在其他类内部的类匿名内部类作用:简化代码把子类继承父类,重写父类的方法,创建子类对象合一步完成把实现类实现类接口,重写接口中的方法,创建实现类对象合成一步完成匿名内部类的最终产物:子类/实现类对象,而这个类没有名字格式:new父类/接口()重复父类 阅读全文
posted @ 2022-07-07 16:07 帕拉利斯 阅读(18) 评论(0) 推荐(0) 编辑
摘要:采用java.lang .Runnable也是非常常见的一种,我们只需要重写run方法即可 创建多线程程序的第二种方式:实现Runnable接口java.Lang. RunnableRunnable接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为run 的无参数方法。java. 阅读全文
posted @ 2022-07-07 15:48 帕拉利斯 阅读(192) 评论(0) 推荐(0) 编辑
摘要:设置线程的名称1.使用Thread类中的方法setName(名字)void setName ( String name)改变线程名称,使之与参数name 相同。2创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字Thr 阅读全文
posted @ 2022-07-07 15:26 帕拉利斯 阅读(214) 评论(0) 推荐(0) 编辑
摘要:获取线程名称 阅读全文
posted @ 2022-07-07 15:17 帕拉利斯 阅读(20) 评论(0) 推荐(0) 编辑
摘要:创建多线程程序的第一种方式:创建Thread类的子类 java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?) 3 阅读全文
posted @ 2022-07-07 15:00 帕拉利斯 阅读(27) 评论(0) 推荐(0) 编辑
摘要:线程调度: 分时调度 所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间。 抢占式调度 优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性), Java使用的为抢占式调度 主线程 Java使用java.lang.Thread类代表线程,所有的线程对象都 阅读全文
posted @ 2022-07-07 14:17 帕拉利斯 阅读(35) 评论(0) 推荐(0) 编辑
摘要:并发:指两个或多个事件在同一个时问段内发生 交替执行 并行:指两个或多个事件在同一时刻发生(同时发生). 同时执行 并行:指两个或多个事件在同一时刻发生(同时发生)。 4.2线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程﹔ 进程也是程序 阅读全文
posted @ 2022-07-07 12:03 帕拉利斯 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-07-07 11:52 帕拉利斯 阅读(14) 评论(0) 推荐(0) 编辑
摘要:子父类的异常:如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。父类所法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出注意:父类异常时什么样,子类异常就什么样父类方法没有抛出异常,子类重写父类该方法时 阅读全文
posted @ 2022-07-07 11:17 帕拉利斯 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1.多个异常分别处理 2多个异常一次捕获,多次处理 多个异常一次捕获一次处理 finally有return问题 运行时异常被抛出可以不处理。即不捕获也不声明抛出。如果finally有return语句,永远返回finally中的结果,避免该情况.·如果父类抛出了多个异常,子类覆盖父类方法时,只能抛出相 阅读全文
posted @ 2022-07-07 10:47 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Throwable类中定义了一些查看方法: public string getMessage():获取异常的描述信息,原因(提示给用户的时候,就提示错误原因。 public string tostring():获取异常的类型和异常描述信息(不用) public void printstackTrac 阅读全文
posted @ 2022-07-07 10:04 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:声明异常throws throws关键字:异常处理的第一种方式,交给别人处理作用; 当方法内部抛出异常对象的时候,那么我们就必须处理这个异常对象 可以使用throws关键字处理异常对象,会把异常对象声明抛出给方法的调用者处理(自己不处理,给别人处理),最终交给JW处理-->中断处理使用格式:在方法声 阅读全文
posted @ 2022-07-07 09:40 帕拉利斯 阅读(95) 评论(0) 推荐(0) 编辑
摘要:抛出异常throw在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。那么,当调用方法使用接受到的参数时, 首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来。这时需要使用抛出异常的方式来告诉调用者 在java中,提供了一个thr 阅读全文
posted @ 2022-07-07 09:09 帕拉利斯 阅读(210) 评论(0) 推荐(0) 编辑
摘要:异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常;该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是·异常︰指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并 阅读全文
posted @ 2022-07-06 20:55 帕拉利斯 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-07-06 20:34 帕拉利斯 阅读(3) 评论(0) 推荐(0) 编辑
摘要:of方法 我们在代码中创建一个集合(例如,List或Set ),并直接用一些元素填充它。实例化集合,几个add方法调用,使得代码重复。 使用前提:当集合中存储的元素的个数已经确定了,不在改变时使用注意:1.of方法只适用于List接口,set接口, Map接口,不适用于接接口的实现类2.of方法的返 阅读全文
posted @ 2022-07-06 20:18 帕拉利斯 阅读(33) 评论(0) 推荐(0) 编辑
摘要:java.util.Hashtable<K,V>集合impLements Map<K,V>接口Hashtable:底层也是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢HashAap : 底层是一个哈希表,是一个线程不安全的集合,是多线程的集合,速度快HashMap集合(之前学的所有的集合) 阅读全文
posted @ 2022-07-06 19:54 帕拉利斯 阅读(21) 评论(0) 推荐(0) 编辑
摘要:Hash/Map存储自定义类型键值Map集合保证key是唯一的:作为key的元素,必须重写hashcode方法和equals方法,以保证key唯一HashMap存储自定义类型键值key : string类型String类重写hashcode方法和equals方法,可以保证key唯一value ; P 阅读全文
posted @ 2022-07-06 19:30 帕拉利斯 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Map集合遍历键找值方式键找值方式:即通过元素中的键,获取键所对应的值分析步骤︰1.获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示: keyset()2.遍历键的Set集合,得到每一个键。3.根据键,获取键所对应的值。方法提示: get(K key)代码演示︰ > 阅读全文
posted @ 2022-07-06 17:56 帕拉利斯 阅读(105) 评论(0) 推荐(0) 编辑
摘要:Map常用子类 通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合 HashMap<K,V>∶存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方 阅读全文
posted @ 2022-07-06 17:29 帕拉利斯 阅读(52) 评论(0) 推荐(0) 编辑
摘要:java.utils.collections是集合工具类,用来对集合进行操作。部分万法如下:public static <T> void sort(List<T> list,Comparator<? super T>):将集合中元素按照指定规则排序comparator和comparable的区别co 阅读全文
posted @ 2022-07-06 16:42 帕拉利斯 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-07-06 16:06 帕拉利斯 阅读(18) 评论(0) 推荐(0) 编辑
摘要:可变参数:是JDK1.5之后出现的新特性使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数.使用格式:定义方法时使用修饰符返回值类型方法名(数据类型...变量名){0}可变参数的原理:可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参 阅读全文
posted @ 2022-07-06 15:42 帕拉利斯 阅读(53) 评论(0) 推荐(0) 编辑
摘要:HashSet存储自定义类型元素set集合报错元素唯一:存储的元素(String,Integer , . . .Student,Person...),必须重写hashcode方法和equats方法要求:同名同年龄的人,视为同一个人,只能存储一次 重写toString方法和 equals方法 Link 阅读全文
posted @ 2022-07-06 15:07 帕拉利斯 阅读(40) 评论(0) 推荐(0) 编辑
摘要:什么是哈希表呢? 在JDK1.8之前,哈希表底层采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。 但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中 哈希表存储采用数组+链表+红黑树实现,当链表长度超过阈值(8 阅读全文
posted @ 2022-07-06 14:26 帕拉利斯 阅读(297) 评论(0) 推荐(0) 编辑
摘要:Vector类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件 但是,vecor的大小可以根据需要增大或镕小,以适应创建vector后进行添加或移除项的操作 许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡的 /ector实现List 阅读全文
posted @ 2022-07-06 14:09 帕拉利斯 阅读(34) 评论(0) 推荐(0) 编辑
摘要:ArrayList集合 ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡的。 LinkedList集合 阅读全文
posted @ 2022-07-06 13:38 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:·二叉树: binary tree ,是每个结点不超过2的有序树( tree ) 。简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点。二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作"左子树"和“右子树”。查找元素慢︰想查找某个元素,需要通过连接 阅读全文
posted @ 2022-07-06 11:54 帕拉利斯 阅读(27) 评论(0) 推荐(0) 编辑
摘要:数组数组:Array,是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。就像是一排出租屋, 有100个房间,从001到100每个房间都有固定编号,通过编号就可以快速找到租房子的人。 简单的说,采用该结构的集合,对元素的存取有如下的特点︰ 查找元素快:通过索引,可以快速访问指定位 阅读全文
posted @ 2022-07-06 11:25 帕拉利斯 阅读(28) 评论(0) 推荐(0) 编辑
摘要:栈 栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。 简单的说:采用该结构的集合,对元素的存取有如下的特点 先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。 例如, 子弹压进弹夹, 阅读全文
posted @ 2022-07-06 10:46 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:按照斗地主的规则,完成洗牌发牌的动作。具体规则:使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。I准备牌:牌可以设计为一个ArrayList<String>,每个字符串为一张牌。每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装。 阅读全文
posted @ 2022-07-06 10:28 帕拉利斯 阅读(32) 评论(0) 推荐(0) 编辑
摘要:泛型的通配符:?:代表任意的数据类型使用方式:不能创建对象使用只能作为方法的参数使用 这时候我们不知道Arraylist集合使用什么数据类型,可以泛型的通配符?来接收数据类型注意:泛型没有继承概念的 泛行总结 泛型类和泛型方法 泛行接口和泛型方法 泛型通配符 阅读全文
posted @ 2022-07-06 09:49 帕拉利斯 阅读(28) 评论(0) 推荐(0) 编辑
摘要:定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间格式:修饰符<泛型>返回值类型方法名(参数列表(使用泛型)){方法体;}含有泛型的方法,在调用方法的时候确定泛型的数据类型传递什么类型的参数,泛型就是什么类型 含有泛型的接口,第一种使用方式:定义接口的实现类,实现接口,指定接口的泛型publ 阅读全文
posted @ 2022-07-06 09:14 帕拉利斯 阅读(25) 评论(0) 推荐(0) 编辑
摘要:创建集合对象,不使用泛型好处:集合不使用泛型,黑t认的类型就是object类型,可以存储任意类型的数据弊端:不安全,会引发异常 创建集合对象,使用泛型好处:1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型2.把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错) 阅读全文
posted @ 2022-07-05 21:00 帕拉利斯 阅读(77) 评论(0) 推荐(0) 编辑
摘要:增强for循环: 底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写是JDK1.5之后出现的新特性collection<E>extends Iterable<E>:所有的单列集合都可以使用增强forpublic interface Iterable<T>实现这个接口允许对象成为“fore 阅读全文
posted @ 2022-07-05 20:18 帕拉利斯 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Iterator接口介绍 迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来 继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代 lterator接口的常用方法如下 public E nex 阅读全文
posted @ 2022-07-05 19:49 帕拉利斯 阅读(67) 评论(0) 推荐(0) 编辑
摘要:Collection集合 常用方法 boolean add(E e); 问集合中添加元素 booLean remove(E e); 删除集合中的某个元素 void clear(); 清空集合所有的元素 bodLean contains(E e); 判断集合中是否包含某个元素 booLean isEm 阅读全文
posted @ 2022-07-05 17:52 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:集合概述前面基础已经学习过并使用过集合ArrayList<E> 那么集合到底是什么 集合:集合是java中提供的一种容器,可以用来存储多个数据 区别 ·数组的长度是固定的。集合的长度是可变的 ·数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象 而且对象的类型可以不一致。在开发 阅读全文
posted @ 2022-07-05 17:30 帕拉利斯 阅读(21) 评论(0) 推荐(0) 编辑
摘要:自动装箱与自动拆箱 自动装箱与自动拆箱:基本类型的数据和包装类之间可以自动的相互转换JDK1.5之后出现的新特性 自动装箱:直接把int类型的整数赋值给包装类Integer in = 1;就相当于Integer in = new Integer(1) 自动拆箱:in是包装类,无法直接参与运算,可以自 阅读全文
posted @ 2022-07-05 17:09 帕拉利斯 阅读(28) 评论(0) 推荐(0) 编辑
摘要:包装类的概述 lava提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用 因对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类 基本类型 包装类型 byte Byte short Short int Integer lo 阅读全文
posted @ 2022-07-05 16:43 帕拉利斯 阅读(29) 评论(0) 推荐(0) 编辑
摘要:StringBuilder构造方法 根据StringBuilder的API文档,常用构造方法有2个:public stringBuilder():构造一个空的StringBuilder容器。 public StringBuilder(String str)|`*构造一个StringBuilder容器 阅读全文
posted @ 2022-07-05 16:12 帕拉利斯 阅读(194) 评论(0) 推荐(0) 编辑
摘要:System类的常用方法 java.lang .System`类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有public static long currentTimeMillis():返回以毫秒为单位的当前时间 public stati 阅读全文
posted @ 2022-07-05 15:40 帕拉利斯 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1.Date类I.构造方法Date();根据当前系统时间创建日期对象 Date(long time);根据传入的毫秒值时间创建日期对象B.成员方法 long getTime(); 获取当前日期对象的毫秒值时间String toLocaleString();根据本地格式转换日期对象 2.DateFor 阅读全文
posted @ 2022-07-05 15:17 帕拉利斯 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Calender介绍 Calender 是日历类 在Date后出现 替换掉了许多Date的方法该类将 所有可能用到的时间信息风筝 为静态成员变量 方便获取 日历类就是方便获取各个时间属性的 java.util.caLendar类:日历类calendar类是一个抽象类,里边提供了很多操作日历字段的方法 阅读全文
posted @ 2022-07-05 14:45 帕拉利斯 阅读(70) 评论(0) 推荐(0) 编辑
摘要:计算出生日记距离今天过了多少天 请使用日期时间相关的API,计算出一个人已经出生了多少天。思路获取当前时间对应的毫秒值 获取自己出生日期对应的毫秒值两个时间相减(当前时间-出生日期) 使用scanner类中的方法next,获取出生日期 使用DateFormat类中的方法parse,把字符串的出生日期 阅读全文
posted @ 2022-07-05 13:46 帕拉利斯 阅读(153) 评论(0) 推荐(0) 编辑
摘要:DateFormat类 java.text.DateFormat:是日期/时间格式化子类的抽象类作用: 格式化(也就是日期->文本)、解析(文本->日期》成员方法:string format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串Date parse( Stri 阅读全文
posted @ 2022-07-05 13:26 帕拉利斯 阅读(59) 评论(0) 推荐(0) 编辑
摘要:毫秒值的概念和作用 Date类概述java.util .Date类表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。public Date():分配Date对象并初始化此对象,以表示分配它的时间( 阅读全文
posted @ 2022-07-05 11:47 帕拉利斯 阅读(69) 评论(0) 推荐(0) 编辑
摘要:Object类 Object类是所有类的父类。一个类都会直接或者间接的继承自该类该类中提供了一些非常常用的方法!toString)方法作用:打印对象的信息重写前:打印的是包名类名@地址值 重写后∶打印的是对象中的属性值 Objects类总结 equals()方法 作用:比较两个对象的 重写前:比较的 阅读全文
posted @ 2022-07-05 11:25 帕拉利斯 阅读(24) 评论(0) 推荐(0) 编辑
摘要:object概述 java.lang.object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。 String toString表示返回该对象字符串表示 toString方法 Person类默认继承了object类,所以 阅读全文
posted @ 2022-07-05 10:45 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑
摘要:类作为成员变量类型 接口作为成员变量类型 阅读全文
posted @ 2022-07-05 09:27 帕拉利斯 阅读(14) 评论(0) 推荐(0) 编辑
摘要:局部内部类的final问题 局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是有效final的从Java 8+开始,只要局部变量事实不变,那么final关键字可以省略。原因:1. new出来的对象在堆内存当中2.局部变量是跟着方法走的,在栈内存当中3.方法运行结束之后,立刻出栈,局部 阅读全文
posted @ 2022-07-04 20:42 帕拉利斯 阅读(28) 评论(0) 推荐(0) 编辑
摘要:内部类的同名变量访问 如果一个类是定义在一个方法内部的,那么这就是一个局部内部类。“局部”:只有当前所属的方法才能使用它,出了这个方法外面就不能用了。定义格式:修饰符class外部类名称{修饰符返回值类型外部类方法名称(参数列表){class局部内部类名称{ 内部 } }} 局部内部类定义 publ 阅读全文
posted @ 2022-07-04 20:08 帕拉利斯 阅读(20) 评论(0) 推荐(0) 编辑
摘要:成员内部类使用 1、成员内部类2.局部内部类(包含匿名内部类)成员内部类的定义格式:修饰符class外部类名称{修饰符class内部类名称{ 内部类同名变量访问 1.间接方式:在外部类的方法当中,使用内部类﹔然后main只是调用外部类的方法 2.直接方式,格式类名称对象名 = new类名称();外部 阅读全文
posted @ 2022-07-04 19:44 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:四中权限修饰符 public 在同一个类 同一个包 不同包子类 不同包非子类都可以用 protected 在同一个类 同一个包 不同包子类都可以使用 default 在同一个类 同一个包可以使用 default并非关键字 而是不谢权限符 private 只能在同一个类里使用 内部类的概念与分类 如果 阅读全文
posted @ 2022-07-04 19:14 帕拉利斯 阅读(17) 评论(0) 推荐(0) 编辑
摘要:final关键字修饰成员方法 当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。格式:修饰符final返回值类型方法名称(参数列表){l[方法体注意事项:对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾 不能覆盖重写父类当中fina 阅读全文
posted @ 2022-07-04 17:15 帕拉利斯 阅读(79) 评论(0) 推荐(0) 编辑
摘要:fianl四中用法 final关键字代表最终、不可改变的。常见四种用法:1.可以用来修饰一个类 2.可以用来修饰一个方法3还可以用来修饰一个局部变量 4.还可以用来修饰一个成员变量 当final关键字用来修饰一个类的时候,格式:public final class类名称{含义:当前这个类不能有任何的 阅读全文
posted @ 2022-07-04 16:53 帕拉利斯 阅读(46) 评论(0) 推荐(0) 编辑
摘要:进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘. USB接口,包含打开设备功能、关闭设备功能 笔记本类,包含开机功能、关机功能、使用USB设备功能 鼠标类,要实现USB接口,并具备点击的方法键盘类,要实现USB接口,具备敲击的方法 笔记本类 鼠标类 键盘类 USB设备接口 Test类 阅读全文
posted @ 2022-07-04 16:40 帕拉利斯 阅读(23) 评论(0) 推荐(0) 编辑
摘要:如何才能知道一个父类引用的对象,本来是什么子类?格式:对象 instanceof类名称这将会得到一个boolean值结果,也就是判断前面的对象能不能当做后面类型的实例 阅读全文
posted @ 2022-07-04 15:48 帕拉利斯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:向上转型 1对象向上转型其实就是多态写法 格式 父类名称 对象名 = new 子类名称; 含义右侧创建一个子类对象把它当做父类来看待使用 向上转型一对是安全的 从小范围转向了大范围 创建了一致猫当做动物看待 没问题 向上转换称为更大范围的动物 向下转型 对象的向下转向 其实是一个还原的动作 格式:子 阅读全文
posted @ 2022-07-04 15:19 帕拉利斯 阅读(40) 评论(0) 推荐(0) 编辑
摘要:在多态的代码当中,成员方法的访问规则是看new的是谁,就优先用谁,没有则向上找。口诀:编译看左边,运行看右边对比一下:成员变量:编译看左边,运行还看左边。成员方法:编译看左边,运行看右边 好处 无论右边new的时候换成哪个子类对象 等号左边的方法都不会变化 不使用多态 使用多态 阅读全文
posted @ 2022-07-04 14:58 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑
摘要:代码当中体现多态性,其实就是一句话:父类引用指向子类对象。格式:父类名称对象名 = new子类名称();或者:接口名称对象名= new实现类名称(); 1直接通过对象名称访间成员变量:看等号左边是谁,优先用谁,没有则向上找 2间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找 阅读全文
posted @ 2022-07-04 14:24 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:1.类与类之间是单继承的。直接父类只有一个。2.类与接口之间是多实现的。一个类可以实现多个接口 3.接口与接口之间是多继承的。注意事项:1多个父接口当中的抽象方法如果重复,没关系。2.多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法的覆盖重写 多态的概述 一个对象 有不用的邢台 比如 小 阅读全文
posted @ 2022-07-04 13:56 帕拉利斯 阅读(25) 评论(0) 推荐(0) 编辑
摘要:1.成员变量其实是常量,格式: [public] [static] [final]数据类型常量名称=数据值;注意:常量必须进行赋值,而且一旦赋值不能改变。常量名称完全大写,用下划线进行分隔。I2.接口中最重要的就是抽象方法,格式:[public] [abstract]返回值类型方法名称(参数列表); 阅读全文
posted @ 2022-07-04 13:22 帕拉利斯 阅读(35) 评论(0) 推荐(0) 编辑
摘要:问题描述:我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。但是这个共有方法不应该让实现类使用,应该是私有化的。角看决方案:从3ava 9开始,接口当中允许定义私有方法。I1.普通私有方法,解决多个默认方法之间重复代码问题格式:private返回值类型方法名称(参数列表){方法体}2 阅读全文
posted @ 2022-07-04 11:42 帕拉利斯 阅读(87) 评论(0) 推荐(0) 编辑
摘要:从Java 8开始,接口当中允许定义静态方法。格式:public static返回值类型方法名称(参数列表){方法体}提示:就是将abstract或者default换成static即可,带上方法体 注意事项:不能通过接口实现类的对象来调用接口当中的静态方法。 正确用法:通过接口名称,直接调用其中的静 阅读全文
posted @ 2022-07-04 11:01 帕拉利斯 阅读(60) 评论(0) 推荐(0) 编辑
摘要:从Java 8开始,接口里允许定义默认方法。格式:public default 返回值类型方法名称(参数列表){方法体}备注:接口当中的默认方法,可以解决接口升级的问题 接口使用步骤;1.接口不能直接使用,必须有一个“实现类”来"实现”该接口。格式:public class实现类名称implemen 阅读全文
posted @ 2022-07-04 10:51 帕拉利斯 阅读(123) 评论(0) 推荐(0) 编辑
摘要:接口就是多个类的公共规范。接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。如何定义一个接口的格式:public interface接口名称{ 接口内容}备注:换成了关键字interface之后,编译生成的字节码文件仍然是: .java --> .class。如果是Java 7,那么接口中可 阅读全文
posted @ 2022-07-04 10:16 帕拉利斯 阅读(88) 评论(0) 推荐(0) 编辑
摘要:抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。 理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。理解:子类的构造方法中,有默认的super(),需要访问父类构造方 阅读全文
posted @ 2022-07-04 09:48 帕拉利斯 阅读(25) 评论(0) 推荐(0) 编辑
摘要:抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束。抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可 不能直接创建new抽象类对象。必须用一个子类来继承抽象父类。 子类必须覆盖重写抽象父类当中所有的抽象方法。霍盖重写(实现):子类去掉抽象方法的 阅读全文
posted @ 2022-07-03 20:56 帕拉利斯 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-07-03 20:41 帕拉利斯 阅读(2) 评论(0) 推荐(0) 编辑
摘要:super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种: 1.在本类的成员方法中,访问本类的成员变量。2.在本类的成员方法中,访问本类的另—个成员方法。 3.在本类的构造方法中,访间本类的另一个构造方法。在第三种用法当中要注意:A. this ( ...)调用也必须是构造方 阅读全文
posted @ 2022-07-03 20:22 帕拉利斯 阅读(443) 评论(0) 推荐(0) 编辑
摘要:继承关系中,父子类构造方法的访问特点:子类构造方法当中有一个默认隐含的"super()"调用,所以一定是先调用的父类构造,后执行的子类构造 子类构造可以通过super关键字来调用父类重载构造。 super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。总结:子 阅读全文
posted @ 2022-07-03 19:48 帕拉利斯 阅读(302) 评论(0) 推荐(0) 编辑
摘要:在父子类的继承关系当中,创建子类对象,访问成员方法的规则:创建的对象是谁,就优先用谁,如果没有则向上找。注意事项:无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的。 重写(Override)概念:在继承关系当中,方法的名称一样,参数列表也—样。重写(Override):方法的 阅读全文
posted @ 2022-07-01 10:29 帕拉利斯 阅读(23) 评论(0) 推荐(0) 编辑
摘要:在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。例如父类是员工,子类是讲师,那么“讲师就是一个员工”。关系:is-a。定义父类的格式:(一个普通的类定义)public class父类名称{定义子类的格式:public class子类名称extends父类名称{ 阅读全文
posted @ 2022-07-01 09:54 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑

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