java
文章平均质量分 57
java 基础
axinawang
这个作者很懒,什么都没留下…
展开
-
java教程
java详细说明原创 2022-10-23 11:32:02 · 324 阅读 · 0 评论 -
内部类详细说明
1、本质上是一个没有名字的局部内部类,定义在方法中、代码块中等。2、作用:方便创建子类对象,最终目的为了简化代码编写。new 类|抽象类名|接口名() {重写方法;4、特点总结:匿名内部类是一个没有名字的内部类。匿名内部类写出来就会产生一个匿名内部类的对象。匿名内部类的对象类型相当于是当前new的那个类型的子类类型。原创 2024-03-15 15:00:46 · 480 阅读 · 0 评论 -
多态详细说明
什么是多态?同类型的对象,执行同一个行为,会表现出不同的行为特征。原创 2024-03-09 15:59:06 · 328 阅读 · 0 评论 -
接口详细说明
/接口用关键字interface来定义public interface 接口名 {// 常量// 抽象方法JDK8之前接口中只能是抽象方法和常量,没有其他成分了。接口不能实例化。接口中的成员都是public修饰的,写不写都是,因为规范的目的是为了公开化。示例:// 接口中的成员:JDK 1.8之前只有常量 和 抽象方法// public static final 可以省略不写,接口默认会为你加上!原创 2024-03-02 18:08:34 · 813 阅读 · 0 评论 -
抽象类、模板方法模式
在Java中abstract是抽象的意思,如果一个类中的某个方法的具体实现不能确定,就可以申明成abstract修饰的抽象方法(不能写方法体了),这个类必须用abstract修饰,被称为抽象类。原创 2024-03-01 16:49:06 · 1344 阅读 · 0 评论 -
枚举详细说明
修饰符 enum 枚举名称{第一行都是罗列枚举类实例的名称。原创 2024-02-29 16:29:13 · 288 阅读 · 0 评论 -
常量详细说明
常量是使用了public static final修饰的成员变量,必须有初始化值,而且执行的过程中其值不能被改变。原创 2024-02-28 19:58:08 · 378 阅读 · 0 评论 -
final关键字
1、final 关键字是最终的意思,可以修饰(方法,变量,类)2、修饰方法:表明该方法是最终方法,不能被重写。3、修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)。4、修饰类:表明该类是最终类,不能被继承。原创 2024-02-28 19:52:33 · 154 阅读 · 0 评论 -
权限修饰符
1、权限修饰符:是用来控制一个成员能够被访问的范围的。2、可以修饰成员变量,方法,构造器,内部类。3、不同权限修饰符修饰的成员能够被访问的范围将受到限制。原创 2024-02-28 11:05:13 · 147 阅读 · 0 评论 -
包的详细说明
1、包是用来分门别类的管理各种不同类的,类似于文件夹、建包利于程序的管理和维护。2、建包的语法格式:package 公司域名倒写.技术名称,例如:package cn.oesoft.javabean;。3、包名建议全部英文小写,且具备意义。4、建包语句必须在第一行,一般IDEA工具会帮助创建。原创 2024-02-28 10:58:05 · 230 阅读 · 0 评论 -
成员变量和局部变量的区别
原创 2024-02-27 15:45:56 · 94 阅读 · 0 评论 -
面向对象的三大特征之一:封装
什么是封装?隐藏实现细节,暴露出合适的访问方式。合理隐藏、合理暴露。原创 2024-02-27 15:15:17 · 203 阅读 · 0 评论 -
this关键字
⚫this关键字可以出现在成员方法、构造器中,代表当前对象的地址。⚫作用:访问当前对象的成员变量、成员方法。原创 2024-02-26 15:35:28 · 224 阅读 · 0 评论 -
Object中的hashCode()
vm参数中输入-XX:+UnlockExperimentalVMOptions -XX:hashCode=4,如下图:原创 2024-02-26 15:04:26 · 141 阅读 · 0 评论 -
构造器详解
一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了。无参数构造器(默认存在的):初始化对象时,成员变量的数据均采用默认值。有参数构造器:在初始化对象的时候,同时可以为成员变量赋值。任何类定义出来,默认就自带了无参数构造器,写不写都有。用于初始化一个类的对象,并返回对象的地址。原创 2024-02-23 20:31:45 · 237 阅读 · 0 评论 -
Java对象内存图和垃圾回收
没有被任何变量引用(指向)时,就会被判定为内存中的。Java存在自动垃圾回收器,会定期进行清理。两个变量指向同一个对象内存图。原创 2024-02-23 11:34:43 · 142 阅读 · 0 评论 -
面向对象介绍、类、对象
⚫ 并不是一个技术,而是一种编程指导思想。⚫ 把现实世界的具体事物全部看成一个一个的对象来解决实际问题。原创 2024-02-22 17:21:04 · 335 阅读 · 0 评论 -
继承详细说明
this:代表本类对象的引用;super:代表父类存储空间的标识。原创 2024-01-10 15:33:22 · 868 阅读 · 0 评论 -
静态关键字:static
建议将工具类的构造器进行私有,工具类无需创建对象。里面都是静态方法,直接用类名访问即可。静态方法只能访问静态的成员,不可以直接访问实例成员。实例方法可以访问静态的成员,也可以访问实例成员。静态方法中是不可以出现this关键字的。代码块是类的5大成分之一(成员变量、构造器,方法,代码块,内部类),定义在类中方法外。在Java类下,使用 { } 括起来的代码被称为代码块。可以保证系统中,应用该模式的这个类永远只有一个实例,即一个类永远只能创建一个对象。原创 2024-01-08 14:07:35 · 1090 阅读 · 0 评论 -
Lambda表达式
定义:首先必须是接口、其次接口中有且仅有一个抽象方法的形式。建议(不是必须)加上@FunctionalInterface注解,保证接口是函数式接口,否则报错。原创 2023-12-28 15:05:28 · 611 阅读 · 0 评论 -
常用API
Calendar代表了系统此刻日期对应的日历对象。Calendar是一个抽象类,不能直接创建对象。从Java 8开始,java.time包提供了新的日期和时间API,主要涉及的类型有:LocalDate:不包含具体时间的日期。LocalTime:不含日期的时间。LocalDateTime:包含了日期及时间。Instant:代表的是时间戳。DateTimeFormatter 用于做时间的格式化和解析的Duration:用于计算两个“时间”间隔Period:用于计算两个“日期”间隔。原创 2023-12-28 14:44:00 · 1070 阅读 · 0 评论 -
Map集合体系
需求:创建一个HashMap集合,键是学生对象(Student),值是籍贯(String)。存储三个键值对元素,并遍历思路:定义学生类创建HashMap集合对象创建学生对象把学生添加到集合遍历集合return age;return sex;/**只要2个对象内容一样,结果一定是true* @param o* @return*/@Override/**s1 = new Student("无恙", 20, '男')原创 2023-12-21 15:02:57 · 187 阅读 · 0 评论 -
Collection体系的综合案例--斗地主游戏
需求: 在启动游戏房间的时候,应该提前准备好54张牌,完成洗牌、发牌、牌排序、逻辑。当系统启动的同时需要准备好数据的时候,就可以用静态代码块了。定义三个玩家、依次发出51张牌。给玩家的牌进行排序(拓展)洗牌就是打乱牌的顺序。输出每个玩家的牌数据。原创 2023-12-20 14:22:25 · 152 阅读 · 0 评论 -
集合工具类Collections
java.utils.Collections:是集合工具类作用:Collections并不属于集合,是用来操作集合的工具类。原创 2023-12-19 16:07:43 · 116 阅读 · 0 评论 -
可变参数详解
可变参数用在形参中可以接收多个数据。可变参数的格式:数据类型...参数名称。可变参数在方法内部本质上就是一个数组。原创 2023-12-19 16:03:00 · 87 阅读 · 0 评论 -
Collection体系的特点、使用场景总结
如果希望增删改查都快,但是元素不重复、有序、无索引。用LinkedHashSet集合,基于哈希表和双链表。如果希望元素可以重复,又有索引,索引查询要快?用ArrayList集合,基于数组的。如果希望增删改查都快,但是元素不重复、无序、无索引。用HashSet集合,基于哈希表的。如果要对对象进行排序。用TreeSet集合,基于红黑树。后续也可以用List集合实现排序。如果希望元素可以重复,又有索引,增删首尾操作快?用LinkedList集合,基于链表的。原创 2023-12-19 15:11:55 · 42 阅读 · 0 评论 -
Set系列集合
有序、不重复、无索引。这里的有序指的是保证存储和取出的元素顺序一致原理:底层数据结构是依然哈希表,只是每个元素又额外的多了一个双链表的机制记录存储的顺序。不重复、无索引、可排序可排序:按照元素的大小默认升序(有小到大)排序。TreeSet集合底层是基于红黑树的数据结构实现排序的,增删改查性能都较好。注意:TreeSet集合是一定要排序的,可以将元素按照指定的规则进行排序。TreeSet集合存储对象的的时候有2种方式可以设计自定义比较规则。原创 2023-12-19 15:06:16 · 62 阅读 · 0 评论 -
泛型深入理解
定义类时同时定义了泛型的类就是泛型类。泛型类的格式:修饰符 class 类名{ }范例:public class MyArrayList { },此处泛型变量T可以随便写为任意标识,常见的如E、T、K、V等。作用:编译阶段可以指定数据类型,类似于集合的作用。自定义泛型类示例:模拟ArrayList集合自定义一个集合MyArrayList集合,完成添加和删除功能的泛型设计即可。@Override。原创 2023-12-18 16:09:52 · 300 阅读 · 0 评论 -
集合的并发修改异常问题
当我们从集合中找出某个元素并删除的时候可能出现一种并发修改异常问题。增强for循环遍历集合且直接用集合删除元素的时候可能出现。迭代器遍历集合但是用迭代器自己的删除方法操作可以解决。迭代器遍历集合且直接用集合删除元素的时候可能出现。使用for循环遍历并删除元素不会存在这个问题。原创 2023-12-18 15:44:14 · 65 阅读 · 0 评论 -
List系列集合
1、List系列集合特点ArrayList、LinekdList :有序,可重复,有索引。2、List的实现类的底层原理ArrayList底层是基于数组实现的,根据查询元素快,增删相对慢。LinkedList底层基于双链表实现的,查询元素慢,增删首尾元素是非常快的。原创 2023-12-18 15:39:28 · 349 阅读 · 0 评论 -
常见数据结构
数据结构是计算机底层存储、组织数据的方式,是指数据相互之间是以什么方式排列在一起的。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。原创 2023-12-15 16:02:48 · 197 阅读 · 0 评论 -
Collection集合
需求: 某影院系统需要在后台存储上述三部电影,然后依次展示出来。分析 :定义一个电影类,定义一个集合存储电影对象。创建3个电影对象,封装相关数据,把3个对象存入到集合中去。遍历集合中的3个对象,输出相关信息。示例@Override'}';// 1、定义一个电影类// 2、定义一个集合对象存储3部电影对象movies.add(new Movie("《你好,李焕英》", 9.5, "张小斐,贾玲,沈腾,陈赫"));原创 2023-12-15 12:46:38 · 71 阅读 · 0 评论 -
集合的概述及体系特点
集合和数组都是容器。原创 2023-12-15 10:22:53 · 85 阅读 · 0 评论 -
异常处理详解
1、在开发中按照规范来说第三种方式是最好的:底层的异常抛出去给最外层,最外层集中捕获处理。2、实际应用中,只要代码能够编译通过,并且功能能完成,那么每一种异常处理方式似乎也都是可以的。自定义异常的必要?Java无法为这个世界上全部的问题提供异常类。如果企业想通过异常的方式来管理自己的某个业务问题,就需要自定义异常类了。自定义异常的好处: 可以使用异常的机制管理业务问题,如提醒程序员注意。同时一旦出现bug,可以用异常的形式清晰的指出出错的地方。原创 2023-12-11 15:20:25 · 84 阅读 · 0 评论 -
Stream流
在Java 8中,得益于Lambda所带来的函数式编程, 引入了一个全新的Stream流概念。目的:用于简化集合和数组操作的API。原创 2023-12-06 10:59:01 · 280 阅读 · 0 评论 -
不可变集合
不可变集合,就是不可被修改的集合。集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变,否则报错。原创 2023-12-05 14:27:10 · 109 阅读 · 0 评论 -
定时器详解
定时器是一种控制任务延时执行,或者周期执行的技术。作用:闹钟、定时邮件发送。定时器的两种实现方式:Timer 、ScheduledExecutorService。原创 2023-11-24 10:40:22 · 127 阅读 · 0 评论 -
线程池[重点]
线程池就是一个可以复用线程的技术。不使用线程池的问题 :如果用户每发起一个请求,后台就创建一个新线程来处理,下次新任务来了又要创建新线程,而创建新线程的开销是很大的,这样会严重影响系统的性能。原创 2023-11-21 14:20:13 · 117 阅读 · 0 评论 -
线程状态及线程之间通信
所谓线程通信就是线程间相互发送数据,线程间共享一个资源即可实现线程通信。原创 2023-11-17 15:32:52 · 116 阅读 · 0 评论 -
线程安全与同步
线程同步是为了解决线程安全问题。1、取钱案例出现问题的原因?多个线程同时执行,发现账户都是够钱的。2、如何才能保证线程安全呢?让多个线程实现先后依次访问共享资源,这样就解决了安全问题。原创 2023-11-16 15:38:33 · 84 阅读 · 0 评论