![](https://img-blog.csdnimg.cn/de4588cb384e4a6284fbe856d09e1882.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java SE
文章平均质量分 88
JAVA SE
欧皇夏老板
我有故人折剑去,斩尽春风不曾归。
展开
-
25.自定义注解
Annontation是Java1.5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观、更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。原创 2023-05-08 20:24:07 · 789 阅读 · 0 评论 -
24.Stream流
Stream流操作是Java 8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中,能 让代码更加简洁,极大地简化了集合的处理操作,提高了开发的效率和生产力。同时stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。原创 2023-05-06 17:45:11 · 504 阅读 · 0 评论 -
23.Lambda表达式
Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。其次:可以在接口中使用@FunctionalInterface注解,使编译器按照函数是接口进行要求,如果在接口中存在多个抽象方法,编译器就会提示。答案是肯定的,这样写确实可以实现,这种形式,是Lambda表达式中更简洁的写法,方法的引用。Java 引入 Lambda,改善了集合操作。原创 2023-05-05 20:26:02 · 381 阅读 · 0 评论 -
22.Java多线程
从程序可以看出,现在的两个线程对象是交错运行的,哪个线程对象抢到了 CPU 资源,哪个线程就可以运行,所以程序每次的运行结果肯定是不一样的,在线程启动虽然调用的是 start() 方法,但实际上调用的却是 run() 方法定义的主体。在 Java 程序中,只要前台有一个线程在运行,则整个 Java 进程都不会消失,所以此时可以设置一个后台线程,这样即使 Java 线程结束了,此后台线程依然会继续执行,要想实现这样的操作,直接使用 setDaemon() 方法即可。否则,就使用效率更高的类。原创 2023-05-04 20:45:07 · 571 阅读 · 0 评论 -
21.Java反射机制
Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。个人理解:Java在编译期间,使用new关键字去创建一个对象的实例,属于静态编译,反射机制则属于动态编译,反射只有到运行时他才会去获得该对象的实例。反射重点在一个“反”字。我们常用的方式是先知道类,然后知道类的属性和方法,而反射是在运行时才知道操作的类信息。原创 2023-04-27 19:58:41 · 84 阅读 · 0 评论 -
20.Java序列化
这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!java的序列化机制是通过判断运行时类的serialVersionUID来验证版本一致性的,在进行反序列化时,JVM会把传进来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。三、对象序列化实现步骤。四、序列化ID的作用。五、序列化的其他问题。原创 2023-04-26 20:06:47 · 441 阅读 · 0 评论 -
19.Java文件操作---I/O流
一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。实际上,流的源端和目的端可简单地看成是字节的生产者和消费者,对输入流,可不必关心它的源端是什么,只要简单地从流中读数据,而对输出流,也可不知道它的目的端,只是简单地往流中写数据。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。原创 2023-04-25 20:15:14 · 423 阅读 · 0 评论 -
18.Java异常
在程序开发中,可能会遇到程序特有的问题,那么程序员在处理这些特有的问题时,一般会自定义一些异常来使用,这样既能保证程序的安全性和稳定性,又能给出较为友好的提示,以便于使用。异常可以继承的类继承Throwable类继承Exception类继承RunTimeException类一般会选择继承Exception和RuntimeException,如果不要求调用者一定要处理抛出的异常,就继承RuntimeException。super(msg);} }try {原创 2023-04-24 16:46:26 · 368 阅读 · 0 评论 -
17.集合
List表达一个有序的集合,List中的每个元素都有索引,使用此接口能够准确的控制每个元素插入的位置。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。需要注意的是:虽然Set中元素没有顺序,但是元素在set中的位置是由该元素的HashCode决定的,其具体位置其实是固定的。因为List中的元素是有序的,所以我们可以通过使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。原创 2023-04-23 20:12:16 · 392 阅读 · 0 评论 -
16.泛型
泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。原创 2023-04-20 18:50:24 · 538 阅读 · 0 评论 -
15.枚举
枚举中存储的常量,因其独有的特性,能够完成固定的内容的描述,比如一年有四季,一天有24小时,常应用于比如错误码,信息码等。valueOf()与compareTo():枚举类型中静态方法valueOf()可以实现将普通字符串转换为枚举实例,而compareTo()方法用于比较两个枚举对象在定义时的顺序。任意两个枚举成员不能具有相同的名称,且它的常数值必须在该枚举的基础类型的范围之内,多个枚举成员之间使用逗号分隔。:枚举是一种特殊的类,那么它可以实现接口,并且每个元素都可以实现接口中的方法。原创 2023-04-17 19:33:13 · 432 阅读 · 0 评论 -
14.Java面向对象----Object类
Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果this和obj指向的不是同一块内存,则返回false,注意:即便是内容完全相等的两块不同的内存对象,也返回false。这个对象指的是代表一个类型的对象,因为一切皆是对象,类型也不例外,在Java使用class类的对象来表示一个类型。返回该对象的字符串表示。原创 2023-04-17 19:18:08 · 573 阅读 · 0 评论 -
13.Java面向对象----嵌套类
创建成员内部类的实例,你必须先实例化一个外部类,接着,通过外部类的实例来创建成员内部类的实例。在 Java 语言中允许在另外一个类中定义一个类,这样的类被称为嵌套类。包含嵌套类的类称为外部类,也可以叫做封闭类,在本文中统一叫做外部类。嵌套类是它的外部类的成员,非静态嵌套类(内部类)可以访问外部类的其他成员,即使该成员是私有的。在外部类中并且在外部类的方法外创建的非静态嵌套类,称为成员内部类。静态嵌套类其实就是在顶级类中封装的一个顶级类,它的行为和顶级类一样,它被封装在顶级类中其实就是为了方便打包。原创 2023-04-15 17:36:34 · 1158 阅读 · 0 评论 -
12.Java面向对象----抽象类和接口
接口则包含类要实现的方法。同样,在程序设计中,我们将拥有相同行为,但是不同表现形式的行为进行抽象,描绘出的方法,就称之为抽象方法,那么包含抽象方法的类,就是抽象类。我们可以这样理解,抽象方法在抽象类中,那么当使用抽象类的对象是,是无法直接使用方法的,所以我们只能通过继承的方式具体化一个抽象类的具体形象,就好像我们在欣赏一幅抽象派的画一样,我们需要在脑海中具象化一个具体的内容,来赋予这幅画的真实含义。个人的理解,接口是一个特殊的类,也是一种特殊的数据类型,它比抽象类更加抽象,是一种纯概念的定义。原创 2023-04-15 17:25:38 · 378 阅读 · 0 评论 -
11.Java面向对象----多态
在Java里,多态是同一个行为具有不同表现形式或形态的能力,即对象多种表现形式的体现,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。举个栗子:打印机分很多种,有黑白打印机和彩色打印机,黑白打印机打印的效果只能是黑白两色。彩色打印机打印效果可以是多种色彩的组合。同样是打印机,不同的型号打印出的结果不同。原创 2023-04-15 10:59:48 · 514 阅读 · 0 评论 -
10.Java面向对象----继承
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承于类A,那么B就拥有A的方法和属性。原创 2023-04-15 10:47:23 · 581 阅读 · 0 评论 -
9.Java面向对象----封装
面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统开发方式模型的研究。对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。面向对象的三大核心特性:今天我们重点来讲解Java面向对象的第一个特性:原创 2023-04-15 10:29:29 · 1042 阅读 · 0 评论 -
8.Java面向对象---类、属性和方法
在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类。同时,当我们认识一个新事物的时候,我们一般来说是从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类,以达到认识新事物。在Java中,类是对一组具有相同特征和行为的对象的抽象描述。可以看出和生活中对类的定义很像。在Java程序中,我们将其相同的特征称为属性,行为则称为方法(函数)。Java是一门面向对象的编程语言,理解Java,首原创 2023-04-13 19:56:25 · 1068 阅读 · 0 评论 -
7.Java中的String类、常用类及包装类
但是当需要和其他对象结合使用,如存入集合中,就需要将基础数据类型实例化为Java对象,为了面向对象的这一特性,基本数据类型中的每一个类型在java.lang包中都有一个包装类,即将每个基本类型都包装成了一个类。包装类中的equals方法和String类一样,都是重写了Object类中的equals方法,因此比较的是内容而不是地址,而“= =”比较的依然是引用变量的地址,只是当包装类型和与之相对应的基本类型进行“= =”比较时会先做自动拆箱处理。Math类中提供的方法都是静态方法,可以通过类名直接调用。原创 2023-04-13 19:45:06 · 756 阅读 · 0 评论 -
6.Java数组
1、什么是数组?数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。2、数组的特点长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。元素的类型可以是java 支持的任意类型。数组类型可以是任何数据类型,包括基本类型和引用类型。数组的元素在堆内存中被分配空间,并且是连续分配的使用new 关键字对数组进行 内存的分配。原创 2023-04-12 20:16:33 · 848 阅读 · 0 评论 -
5.Java循环控制语句
当然,死循环不一定是绝对的,很多情况下配合合理的逻辑判断及控制语句,是可以有效的利用死循环的。所谓循环,即通过判断条件,重复执行一段代码,根据条件的变化,来确定代码是否执行,执行次数。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。do-while循环首先会执行一次代码块,然后检查条件,如果条件为真,则重复循环代码块。while循环,只要指定条件为真,则循环执行代码块,直到表达式的值为假则退出循环。一个循环体内又包含另一个完整的循环结构,称为循环嵌套。2、break:终止整个循环。原创 2023-04-12 20:05:39 · 826 阅读 · 0 评论 -
4.Java逻辑控制语句
我们继续分析我们的项目,社区要求根据未成年人的年龄区分教育学习阶段,根据我们的常识,未成年人3岁要接受幼儿教育,7岁接受小学教育,12岁接受初中教育,16岁接受高中教育。就在我兴奋之时,我的伙伴给了我一个致命的打击,所以我现在在考虑是修改我的代码,还是跟他断交!经过我艰苦卓绝的努力,牺牲了我本来不多的发际线,使出挠头的绝招,终于让我在逻辑语句中的终极形态上找到了解决办法,那么我是怎么解决的呢?我们的需求是要求登记人的年龄达到一个固定的标准值时,生成不同的结果,那么我们除了if语句以外,还可以怎么实现呢?原创 2023-04-12 19:53:41 · 653 阅读 · 0 评论 -
3.Java运算符
Java对逻辑与和逻辑或提供“短路”功能,也就是在进行运算时,先计算运算符左侧的表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。除了“=”,其它的都是特殊的赋值运算符,以“+=”为例,x += 3就相当于x = x + 3,首先会进行加法运算x+3,再将运算结果赋值给变量x。表达式是符合一定语法规则的运算符和操作数的序列,表达式中操作数进行运算后得到的结果,称之为表达式的值,表达式的值的类型,称之为表达式类型。原创 2023-04-12 19:38:12 · 847 阅读 · 0 评论 -
2.Java数据类型,变量及常量
1、什么是数据类型?数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。2、为什么要用到数据类型?Java是健壮型语言,所以Java对于数据类型的规范会相对严格。同时数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,这样就可以充分利用内存。3、Java有哪些数据类型?3.1、整数数据类型3.2、浮点数据类型3.3、字符数据类型3.4、逻辑(布尔)类型。原创 2023-04-04 17:07:54 · 603 阅读 · 0 评论 -
Java基础知识
机器语言:机器语言是第一代计算机开发语言,是通过最原始的穿孔卡片(二进制有孔为一,无孔为零)来实现的,这种语言只有专家才能够理解,与人类熟悉的语言差别极大,人类很难理解。以后的开发语言,都是基于机器语言简化而来,所以不论计算机开发语言发展的什么阶段,最终输入计算机的还是机器语言。栈内存:在方法定义中的一些基本类型和引用变量,Java会自动在栈内存中进行分配,就好像客栈、宾馆一样可以入住,一旦变量超过变量的作用范围,垃圾回收机制(GC)会自动释放内存,就好像你离开了客栈、宾馆时要进行退房一样。原创 2023-03-29 18:02:03 · 726 阅读 · 0 评论