![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习
文章平均质量分 61
lyy_sss
这个作者很懒,什么都没留下…
展开
-
Java基础学习之反射(37)
1. 类加载器1.1 类加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载、类的连接、类的初始化三个步骤来对类进行初始化。这三个步骤成为类加载或类初始化。类的加载就是指将class文件读入内存,并为之创建java.lang.Class对象任何类被使用时,系统都会为之建立一个java.lang.Class对象类的连接验证阶段:用于检验被加载的类是否有正确的内部结构,并和其他类协调一致准备阶段:负责为类的类变量分配内存,并设置默认初始化值解析阶段:将类的二进制数据原创 2022-04-14 20:32:56 · 218 阅读 · 0 评论 -
Java基础学习之Stream流(36)
1.1 Stream流package Java36.Demo1;import java.util.ArrayList;import java.util.Iterator;public class demo1 { public static void main(String[] args) { ArrayList<String> array = new ArrayList<String>(); array.add("林青霞");原创 2022-04-11 20:10:36 · 419 阅读 · 0 评论 -
Java基础学习之常用函数式接口(35)
常用函数式接口:Supplier接口Consumer接口Predicate接口Function接口1.1 Supplier接口Supplier< T >:包含一个无参的方法T get() :获得结果。该方法不需要参数,它会按照某种实现逻辑(由Lambda表达式实现)返回一个数据Supplier< T >接口也被成为生产型接口,如果我们指定了接口的泛型是什么类型,那么接口中的get方法就会生产什么类型的数据供我们使用package Java35.Demo1;原创 2022-04-10 14:05:44 · 277 阅读 · 0 评论 -
Java基础学习之函数式接口(34)
1.1函数式接口函数式接口:有且仅有一个抽象方法的接口Java中的函数式变成体现就是Lambda表达式,所以函数式接口就是可以适用于Lambda表达式的接口函数式接口的判定:@FunctionalInterface放在接口定义的上方:如果是函数式接口,编译通过;如果不是,编译失败1.2函数式接口作为方法的参数package Java34.Demo2;public class RunnableDemo { public static void main(String[] args原创 2022-04-09 15:54:37 · 59 阅读 · 0 评论 -
Java基础学习之方法引用(33)
1.1 方法引用方法引用符::该符号为方法引用符,而它所在的表达式被称为方法引用如下面代码例子所示接口:package Java33.Demo1;public interface Printable { void printString(String s);}测试:package Java33.Demo1;public class PrintableDemo { public static void main(String[] args) {原创 2022-04-09 15:15:06 · 62 阅读 · 0 评论 -
Java学习之接口组成更新(32)
JDK8开始,引入了许多新内容,其中大多依赖于接口实现,所以接口提供了更多的功能。1.1 接口组成更新概述接口的组成常量,修饰符 public static final(默认修饰符可省略)抽象方法,修饰符 public abstract (默认修饰符可省略)JDK8之后加入了默认方法、静态方法JDK9后加入了私有方法1.2 接口中的默认方法接口中默认方法的定义格式:格式:public default 返回值类型 方法名(参数列表) { }示例:public default void原创 2022-04-09 13:28:15 · 327 阅读 · 0 评论 -
Java基础学习之Lambda表达式与匿名内部类对比(31)
1. Lambda表达式package Java31.Demo1;public class demo { public static void main(String[] args) { //实现类的方式实现需求// MyRunnable mr = new MyRunnable();// Thread th1 = new Thread(mr);// th1.start(); //匿名内部类方式改进//原创 2022-04-08 20:14:58 · 129 阅读 · 0 评论 -
网络编程概念笔记(30)
1. 网络编程三要素IP地址:计算机标识端口:端口号标识设备中的应用程序协议:对传输格式、传输速率、传输步骤做了统一规定,通信双发必须同时遵守才能实现数据交换。常见的协议有UDP协议和TCP协议1.1 IP地址IP地址:网络中设备唯一表示IP两大类:IPv4:32bits地址,一个字节(8bits)一组,分成4组十进制数IPv6:128bits地址,16 bits一组,分成8组十六进制数常用命令:ipconfig:查看本机IP地址ping IP地址:检查网络是否连通特殊I原创 2022-04-07 21:06:30 · 655 阅读 · 0 评论 -
Java基础学习之生产者消费者(29)
1.1 生产者消费者模式概述生产者消费者模式是一个十分经典的多线程协作模式,弄懂生产者消费者问题能够让我们对多线程编程理解更加深刻。包含两类线程:一类是生产者线程用于生产数据一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库生产者生产数据之后直接放置在共享数据区域,并不需要关心消费者的行为消费者只需从共享数据区域中获取数据,并不需要关心生产者的行为package Java28.Demo6;public class Box {原创 2022-04-06 20:15:17 · 314 阅读 · 0 评论 -
Java基础学习之线程同步(28)
1. 线程同步案例:买票共有100张票,有三个窗口卖票,设计程序模拟卖票(实现Runnable接口的方式 实现卖票)Runnable接口实现类:package Java28.Demo1;//该类实现Runnable接口public class SellTicket implements Runnable{ //共有100张票 private int ticket = 100; //重写run()方法 @Override public void run(原创 2022-04-06 19:38:17 · 164 阅读 · 0 评论 -
Java基础学习之多线程(27)
1.实现多线程1.1进程进程是正在运行的程序是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源1.2线程线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程只有一条执行路径,则成为单线程程序多线程:一个进程如果有多条执行路径,则成为多线程1.3多线程的实现方式1方式1 :继承Thread类定义一个类MyThread继承Thread类在MyThread类中重写run()方法创建MyThread类对象启动线程package Java27原创 2022-04-05 14:37:37 · 475 阅读 · 0 评论 -
Java基础学习之特殊操作流(26)
1.特殊操作流1.1标准输入输出流System类中有两个静态成员变量:public static final InputStream in:“标准”输入流。 提供输入数据。 通常,该流对应于键盘输入或由主机环境或用户指定的另一个输入源。public static final PrintStream out:“标准”输出流。 接受输出数据。 通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。标准输入流自己实现键盘录入数据:BufferedReader br = new Buf原创 2022-04-04 16:16:24 · 343 阅读 · 0 评论 -
Java基础学习之复制文件异常处理(25)
复制文件的异常处理操作try—catch—finallytry{ 可能出现异常的代码;}catch(异常类名 变量名){ 异常代码处理;}finally{ 执行所有清除操作;}JDK7改进方案try(定义流对象){ 可能出现异常的代码;}catch(异常类名 变量名){ 异常代码处理;}//自动释放资源JDK9改进方案定义输入流对象;定义输出流对象;try(输入流对象;输出流对象){ 可能出现异常的代码;}catch(异常类名 变量名){ 异常代码处理;}原创 2022-04-03 20:44:37 · 573 阅读 · 0 评论 -
Java基础学习之IO练习(24)
1、集合到文件将ArrayList 集合中的元素添加到文本,每添加一个元素进行一次换行public class demo { public static void main(String[] args)throws IOException { //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //集合添加元素 array.add("hell原创 2022-04-03 20:18:10 · 354 阅读 · 0 评论 -
Java基础学习之IO流小结(24)
IO流小结原创 2022-04-02 16:26:11 · 276 阅读 · 0 评论 -
Java基础学习之字符流(23)
1. 字符流一个汉字存储:如果是GBK编码,占用2个字节如果是UTF-8编码,占用3个字节由于字节流操作中文不是特别方便,所以Java就提供字符流字符流 = 字节流 + 编码表用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文识别中文:汉字在存储时,无论选择哪种编码存储,第一个字节都是负数1.1 编码表...原创 2022-04-02 16:17:50 · 236 阅读 · 0 评论 -
Java基础学习之字节流(22)
1.1 IO流概述和分类IO流概述:IO:输入/输出流:是一种抽象概念,是对数据传输的总称。流的本质就是数据传输IO流就是用来处理设备间数据传输问题的常见应用:文件辅助、文件上传、文件下载IO流分类按照数据流向输入流:读数据输出流:写数据按照数据类型来分字节流字节输入流;字节输出流字符流字符输入流;字符输出流如果数据通过Window自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流,否则使用字节流;分不清就使用字节流...原创 2022-04-01 21:20:48 · 165 阅读 · 0 评论 -
Java基础学习IO流之File(21)
1. FileFile:文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的package Java21;import java.io.File;public class demo1 { public static void main(String[] args) { //三种构造方法做了同样原创 2022-03-31 20:10:07 · 145 阅读 · 0 评论 -
Java基础学习之斗地主案例(20)
案例实现斗地过程中的洗牌发牌和看牌。package java20;import java.util.ArrayList;import java.util.Collections;public class demo { public static void main(String[] args) { //创建牌盒,即定义集合对象 ArrayList<String> array = new ArrayList<String>();原创 2022-03-30 21:25:25 · 98 阅读 · 0 评论 -
Java基础学习之Collections(19)
1. Collectionspublic static <T extends Comparable<? super T>> void sort(List list),根据其元素的natural ordering ,按照升序排列指定的列表。public static void reverse(List<?> list)反转指定列表中元素的顺序。public static void shuffle(List<?> list,Random rnd),使用指定原创 2022-03-30 20:22:27 · 466 阅读 · 0 评论 -
Java基础学习之Map(18-4)
1.MapMap集合Interface Map<K,V> 是一个接口,K:键的类型;V:值的类型将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值创建Map集合的对象由于Map是一个接口,不能直接实例化,因此采用多态的方式具体实现类HashMappackage Java18.Map.map1;import java.util.HashMap;import java.util.Map;public class MapDemo1 { public原创 2022-03-30 19:48:23 · 305 阅读 · 0 评论 -
Java基础学习之泛型(18-3)
1. 泛型泛型:是JDK5中引入的特性,提供了编译时类型安全检测机制,该机制允许在编辑时检测到非法的类型,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。参数化类型就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型,这种参数类型可以用在类、方法和接口中,分别被称为泛型类、泛型方法、泛型接口。泛型定义格式:<类型>:指定一种类型的格式。这里的类型可以看成是形参。<类型1,类型2,...>:指定多种类型的格式,多种类型之间用逗号隔开。泛型的原创 2022-03-28 19:50:28 · 348 阅读 · 0 评论 -
Java学习问题归纳
1.append和addappendJava里只有StringBuffer和StringBuild才有append方法,Sting里是没有append方法的在动态数组里添加字符串,相当于+,xxxx”+“yyyy”add是List向集合列表中添加元素原创 2022-03-27 21:05:56 · 75 阅读 · 0 评论 -
Java基础学习之Set(18-2)
1. Set1.1 Set集合的特点不包含重复元素的集合没有带索引的方法,所以不能使用普通for循环遍历是一个接口,不能直接实例化package Java18.Set;//HashSet<E>对集合的迭代次序不作任何保证import java.util.HashSet;import java.util.Set;public class Setdemo { public static void main(String[] args) { Set&原创 2022-03-27 15:56:27 · 698 阅读 · 0 评论 -
Java基础学习之List(18-1)
1. Listpublic interface Listextends CollectionList是一个接口继承自Collection,是一个有序集合,用户可以精确控制列表中每个元素的插入位置。List是有索引的,通过整数索引可以访问元素。与Set集合不同,列表通常允许重复的元素List集合的特点有序:存储和取出的元素顺序一致可重复:存储的元素可以重复package Java18.List;import java.util.ArrayList;import java.uti原创 2022-03-24 19:57:54 · 1304 阅读 · 0 评论 -
Java基础学习之集合进阶(18-0)
1. Collection集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变1.2 集合类体系结构Collection 集合用于存储单列信息,Map 集合用于存储双列集合也就是键值对(key and value)List 集合存储的元素是可以重复的,Set 集合存储元素是不可以重复的。蓝色框表示接口,红色的是实现类。使用时要使用具体实现类,因为接口不能直接创建对象并实例化,必须通过具体的实现类创建对象并实例化。1.3 Collection集合的概述和使用Coll原创 2022-03-23 21:05:27 · 295 阅读 · 0 评论 -
Java基础学习之异常(17)
1. 异常(Exception)1.1 异常概述异常:就是程序出现了不正常的情况1.2 JVM 默认处理方案如果程序出现了问题,JVM会做默认的处理把异常的名称,异常的原因及异常出现的位置等信息输出在控制台。package Java17.YiChang;//异常public class demo1 { public static void main(String[] args) { System.out.println("开始"); metho原创 2022-03-22 21:05:44 · 75 阅读 · 0 评论 -
Java基础学习之常用API(16)
常用API1、Math1.1 Math类概述包含基本数字运算的方法。package Java16.Math;public class demo1 { public static void main(String[] args) { //绝对值函数abs System.out.println(Math.abs(88)); System.out.println(Math.abs(-88)); System.out.println原创 2022-03-21 21:24:27 · 537 阅读 · 0 评论 -
Java基础学习之形参和返回值(14)
形参和返回值类名作为形参和返回值方法的形参是类名,其实需要的是该类的对象方法的返回值是类名,其实返回的是该类的对象抽象类名作为形参和返回值原创 2022-03-13 15:26:42 · 305 阅读 · 0 评论 -
Java基础学习之接口(13)
1接口概述接口是一种公共的规范标准,Java中的接口更多体现在对行为的抽象2.接口的特点接口用关键字interface修饰public interface 接口名{}类实现接口用implements表示public class 类名 implements 接口名{}public class Cat implements jumpping{}接口不能实例化,接口实例化参照多态的方式,通过实现类对象实例化,这叫接口多态。多态的形式:具体类多态、抽象类多态、接口多态多态的前提:原创 2022-03-12 18:42:15 · 165 阅读 · 0 评论 -
Java基础学习之抽象类(12)
抽象类一个没有方法体的方法应该定义为抽象方法,而如果类中有抽象方法,该类必须定义为抽象类。(abstract)抽象类的子类要么重写抽象类中的所有抽象方法,要么其本身也是一个抽象类。1.抽象类的特点抽象类和抽象方法必须使用abstract关键字修饰public abstract class 类名{}public abstract void eat();抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类抽象类不能实例化,参照多态的方式,通过子类对象实例化,这叫抽象类多态抽象类的子原创 2022-03-11 21:12:05 · 214 阅读 · 0 评论 -
Java基础学习之多态(11)
多态1.1多态中成员访问特点成员变量:编译看左边,执行看左边成员方法:编译看左边,执行看右边两者不一样的原因,因为成员方法有重写,而成员变量没有1.2多态的好处和弊端好处:提高了程序的扩展性。定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作弊端:不能使用子类特有功能1.3多态中的转型向上转型:从子到父,父类引用指向子类对象向下转型:从父到子,父类引用转为子类对象...原创 2022-03-11 20:16:59 · 121 阅读 · 0 评论 -
Java基础学习之修饰符(10)
修饰符1.包包就是文件夹,其作用是对类进行分类管理。包的定义格式:格式:package 包名(多级包用.分开)例:package.com.lyy;导包package cn.itheima;import cn.lyy.Teacher;public class Demo { public static void main(String[] args) {// cn.lyy.Teacher t = new cn.lyy.Teacher();//原创 2022-03-07 20:11:08 · 113 阅读 · 0 评论 -
Java基础学习之继承(9)
1.继承继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。继承格式:public class 子类名 extends 父类名()子类可以有父类的内容,同时也可以有自己特有的内容。继承好处:提高代码复用性、提高了代码的维护性继承缺点:增强了类的耦合性,父类发生变卦子类也随之改变,削弱了子类的独立性在子类中访问一个变量子类局部范围找子类成员范围找父类成员范围找如果都没有就报错superthis:代表本类对象的引用super:原创 2022-03-05 16:21:09 · 97 阅读 · 0 评论 -
Java基础学习之集合基础(8)+学生管理系统案例
集合基础1.1集合概述集合的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变。集合类有很多:ArrayListArrayList< E >:可调整大小数组的实现:是一种特殊的数据类型,泛型在出现E的地方使用引用数据类型进行替换即可举例:ArrayList< String >,ArrayList< Student >...原创 2022-03-03 16:50:50 · 274 阅读 · 0 评论 -
Java基础学习之字符串(7)
1.API(应用程序编程接口)Java API:指的就是JDK中提供的各种功能的Java类,通过帮助文档学习这些API如何使用2.StringString类代表字符串。在java.lang包下,使用时不需要导包,Java程序中所有的双引号字符串,都是String类的对象字符串效果上相当于字符数组,但是底层原理是字节数组2.1String对象的特点通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址不同。以“”方式给出的字符串,只要字符序列相同(顺序和大小写),原创 2022-03-02 21:21:32 · 200 阅读 · 0 评论 -
Java基础学习之面向对象基础(6)
1.类和对象对象:客观存在的事物。类:对现实生活中一类具有共同属性和行为的事物的抽象。类是对象的抽象,对象是类的实体。1.1类的定义类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。类的组成:属性和行为属性:在类中通过成员变量来体现(类中方法外的变量)行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)类的定义步骤public class 类名{ //成员变量 变量1的数据类型 变量1; 变量2的数据类型 变量2; ……原创 2022-03-02 10:46:23 · 246 阅读 · 0 评论 -
Java基础学习之Debug(5)
1.DebugDebug是供程序员使用的程序调试工具,用于查看程序的执行流程,也可用于追踪程序执行过程来调试程序。原创 2022-02-28 11:24:46 · 195 阅读 · 0 评论 -
Java基础学习之方法(4)
1.方法概述方法就是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集。(相当于定义一个函数)方法必须先创建才可以使用,该过程称为方法定义。方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。...原创 2022-02-28 10:58:16 · 158 阅读 · 0 评论 -
JAVA基础学习之数组(3)
数组数组用于一次性声明大量用于存储数据的变量,要存储的数据通常是同类型数据。1.1数组的定义格式格式1:数据类型[ ] 变量名int [] arr;定义了一个int类型的数组,数组名是arr格式2:数据类型 变量名[]int arr[];定义了一个arr的变量,arr是一个数组;1.2数组初始化值动态初始化数组初始化方式动态初始化:初始化时只指定数组长度,由系统为数组分配初始值格式:数据类型[] 变量名 = new 数据类型[数组长度];例:int [] arr=new int原创 2022-02-26 19:48:03 · 304 阅读 · 0 评论