- 博客(28)
- 收藏
- 关注
原创 方法引用、Stream流、Optional
java.util.Optional<T> 类,是用来防止NullPointerException异常的辅助类型, Optional 对 象中封装的值,可以是 null ,也可以不是 null。理解为一个流水线,做一堆操作,有中间方法和终结方法。map方法 :如果有值,则调用mapper的函数处理并得到返回值 * 返回值并且依然Optional包裹起来,其泛型和你返回值的类型一致。就是说只要它们的返回值类型一样,功能可以实现,形参如果抽象方法没有第二个参数,那么被引用的方法就是无参的。
2024-09-08 18:25:10 991
原创 Lambda表达式、正则表达式
JDK1.8中,对于Map接口中新增了默认方法: computeIfAbsent ,用来在 指定key不存在时,计算一个value值和指定key匹配,并将该key=value写入 map中。Lambda表达式,可以用来表示一个函数,它只关注函数的参数列表, 函数主体、返回类型,并且可以将此函数作为一个参数,进行传递。Lambda表达式中的参数列表,里面的参数可以不写类型,因为 JVM在运行时会自动推断,当然,如果直接手动写上去,也完全没有问题。compose方法是, 先执行传进来的,在执行外面的。
2024-09-08 15:26:04 801
原创 Java类加载和反射
当需要加载一个类时,先看系统加载器是否加载过这个类,如果加载过那就不需要加载了,如果没有加载过,拿到父类加载器继续判断,直到根类加载器,如果根类加载器也没有加载过,那就去判断是否能加载这个类,如果能就加载,如果不能就向下也就是看子类能不能加载,最后如果都不能加载抛出ClassNotFoundException异常。执行代码的另一种方式,JVM可以把Java中的 热点代码直接编译成计算机可 以运行的二进制指令,这样后续再调用这个热点代码的时候,就可以直接运 行编译好的指令,大大提高运行效率。
2024-09-07 20:27:26 760
原创 Java网络编程
第四次挥手:客户端收到服务器的连接释放报文,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成。刚开始的时候,客户端和服务端都处于Closed状态,客户端主动向服务端发送,服务端处于Listen状态。
2024-09-07 19:19:49 728
原创 多线程重点
当一个类继承了Thread类,并重写了run方法(线程要执行的程序放在里面),这个类中就会有很多Thread类的方法,在main中可以创建Thread类的子类的对象,并调用start方法会启动线程。这种线程的地位比较高,用来执行用户编写的代码,当还有一个前台线程没有结束时,JVM不会停止,只有所有的前台线程结束后,JVM才会停止。线程Thread中的一个属性,表示优先级,取值1-10,默认为5,优先级越高,越容易获得CPU时间片,但是不是肯定的。主要内容为什么是多线程?
2024-08-31 20:19:59 660
原创 集合、Collection
1.集合的长度是可变的2.集合中的存储的数据可以是不同类型的 ,如果加上泛型的话就是会有限制3.集合中只能存储引用数据类型4.集合框架是在java.util包下的。
2024-08-25 17:20:52 841
原创 包装类、Object类、String类、
包装类、Object类、String类的一些常用方法,以及包装类、基本数据类型、String类型的相互转换
2024-08-24 22:58:18 763
原创 抽象类,接口,内部类,
抽象类使用abstract关键字修饰,抽象方法也是使用abstract修饰,抽象方法没有方法体。接口是一种引用数据类型,是用interface关键字修饰,它是一种功能的实现。接口中没有构造器,不能实例化对象,符合多态机制。1.在接口中的变量,默认被public static final修饰,是公共静态常量。2.接口中的方法,默认被public abstract修饰,是抽象方法。3.JDK8之后,接口中可以有静态和默认方法。(静态方法只能使用接口名去调用,默认方法在实现接口的子类还可以被重写)
2024-08-24 22:02:53 716
原创 Java异常
使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。在程序中使用自定义异常类,大体可分为以下几个步骤1.创建自定义异常类2.在方法中通过throw关键字抛出异常对象。3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
2024-01-23 19:46:34 790 1
原创 Java面向对象04 static、 抽象类、 接口、N种内部类
abstract,抽象类只能靠他的子类去实现,它的子类必须重写抽象类的方法,(单继承)System.out.println("这是内部类的方法");//一个Java类中可以有多个class类,但只能有一个public class。System.out.println("这是外部类的方法");//abstract,抽象方法,只有方法名字,没有方法的实现。//抽象类的所有方法:继承了它的子类,都必须要实现它的方法,//存在的意义 抽象出来 提高开发效率。实现了接口的类 就需要重写接口中的方法~
2024-01-23 18:51:55 813 1
原创 Java面向对象03 三大特征:封装 继承 多态
1.提高程序安全性,保护数据2.隐藏代码的实现细节3.统一接口4.系统可维护提高了快捷键生成get/set Art+insert继承的本质是对某一批类的抽象。extends :扩展。子类是父类的扩展Java中类只有单继承,没有多继承!子类和父类之间,从意义上讲应该具有“is a” 的关系子类继承了父类,就会拥有父类的全部方法!私有的东西无法被继承(可以通过get/set来)
2024-01-23 17:26:29 787 1
原创 Java面向对象02 构造器详解 类与对象小结
目录一、构造器1.无参构造 2.有参构造3.构造器作业与注意点二、 类与对象小结使用new关键字创建的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用类中的构造器也称作构造方法,是在进行创建对象的时候必须调用的。构造器两大特点:1.必须和类的名字相同2.必须没有返回类型,也不能写void一个类即使什么都不写,它也会存在一个方法有参构造:一旦定义了有参构造,无参构造就必须显示定义作用:1.new本质在调用构造方法2.初始化对象的值注意点:1.定义了有参构造之后,如果想要
2024-01-23 11:59:02 387 1
原创 Java数组03
当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模在稀疏数组中,稀疏数组一定有三列,第一列记录行,第二列记录列,第三列记录值为多少二维数组中有几个不为0的数那稀疏数组就要加一行。
2024-01-22 21:18:23 318
原创 Java数组02
目录一、数组的使用1.普通for循环2.For--Each循环3.数组作为方法入参4.数组作为返回值二、多维数组多维数组可以看成数组的数组,比如二维数组就是一个特殊的一维数组,其中每一个元素都是一个一维数组int a [ ][ ] = new int [ 2 ] [ 5 ]
2024-01-22 20:46:26 813
原创 Java数组01
数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成的其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
2024-01-22 20:21:29 334
原创 Java方法
Java方法是语句的集合,它们在一起执行一个功能。·方法是解决一类问题的步骤的有序组合·方法包含于类和对象中·方法在程序中被创建,在其他地方被引用最好保持一个方法只完成一个功能,这样有利于我们后期扩展。方法包含一个方法头和一个方法体修饰符: 修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型: 方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。
2024-01-22 19:26:39 767
原创 Java流程控制04 For循环练习
/或者System.out.println("\n");//或者System.out.println("\n");//或者System.out.println("\n");if (i%(5*3)==0){//换行。if (i%(5*3)==0){//换行。if (m%(5*3)==0){//换行。//print 输出完不会换行。//println 输出完会换行。
2024-01-22 18:49:06 363
原创 Java流程控制02 选择结构(if和switch)
/case穿透 //switch匹配一个具体的值 表达式结果也可以是字符串!if语句至多有1个else语句,else语句在所有的else if语句之后。不执行循环中剩余的语句。System.out.println("及格");//如果布尔表达式2为true将执行的语句。//如果以上布尔表达式都不为true将执行的语句。//如果布尔表达式为false将执行的语句。//如果布尔表达式1为true将执行的语句。//如果布尔表达式2为true将执行的语句。//如果布尔表达式3为true将执行的语句。
2024-01-22 17:35:11 351 1
原创 Java基础2:常量变量以及运算符
常量变量以及运算符这些也是我们学习Java必不可少的一部分基础知识!最后的一点是包机制,有利于区别类名的命名空间,更好的组织类。
2024-01-22 16:19:00 1452
原创 Java基础1:注释以及数据类型 原码反码补码
这一块主要是关于在Idea中注释的书写,标识符以及关键字,数据类型和数据类型的转换,这些都是学习Java最最基础的一些知识!
2024-01-22 11:19:37 1450
原创 Java中JDK的安装以及环境变量的配置
JDK的安装以及环境变量的配置是我们学习Java的过程中必不可少的一个准备过程以下是我总结的关于JDK的安装以及环境变量配置的步骤提示:以下是本篇文章正文内容,下面案例可供参考。
2024-01-21 22:40:20 968 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人