java基础
文章平均质量分 53
鸭鸭老板
偏执只会左右你的思考
展开
-
Java --- 面试题
死信队列:当一个消息在队列中变为死信之后,它能被重新发送到另外一个交换机中,这个交换机就是DLX,绑定到DLX的队列就是死信队列。死信队列本身也是普通队列,通过创建队列时设置一些参数将其设置为死信队列。原因:①、消息被拒绝接收。②、消息TTL过期。③、队列达到最大长度。延迟队列是用来存放延迟消息的队列。延迟消息即消息发送到队列后,需要到指定时间后,消费者才能拿到消息。实现方法①、使用TTl消息过期+死信队列来实现。原创 2024-06-20 12:29:26 · 726 阅读 · 0 评论 -
Java8-17 --- idea2022
自定义后缀补全模板:自定义 Live Templates第一步:第一步:配置安装的tomcat第二步:创建一个普通的Java工程并选择配置第三步:配置tomcat服务解决tomcat日志乱码第一步:打开在文档中输入 -Dfile.encoding=UTF-8第二步:在tomcat服务中同样进行 配置 -Dfile.encoding=UTF-8。原创 2023-09-11 17:15:53 · 847 阅读 · 0 评论 -
java8-17 --- Stream流
【代码】java8-17 --- Stream流。原创 2023-09-08 22:06:24 · 626 阅读 · 0 评论 -
Java8-17 --- 方法引用和构造器
方法引用作为了函数式接口的实例。原创 2023-09-07 16:33:11 · 156 阅读 · 0 评论 -
Java --- 泛型
T t;this.t = t;return t;this.t = t;@Test//默认泛型是Object//泛型参数不能是基本数据类,但可以是对应的包装类order1.setName("小王");① 我们在声明完自定义泛型类以后,可以在类的内部(比如:属性、方法、构造器中)使用类的泛型。② 我们在创建自定义泛型类的对象时,可以指明泛型参数类型。一旦指明,内部凡是使用类的泛型参数的位置,都具体化为指定的类的泛型类型。原创 2023-08-30 22:35:41 · 356 阅读 · 0 评论 -
Java --- 异常处理
指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。异常指的并不是语法错误和逻辑错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行。代码逻辑错误,只是没有得到想要的结果。原创 2023-08-28 05:07:38 · 420 阅读 · 0 评论 -
Java --- 包装类
Java针对八种基本数据类型定义了相应的引用类型:包装类(封装类)。原创 2023-08-26 22:37:20 · 247 阅读 · 0 评论 -
Java --- 注解
注解(Annotation)是从JDK5.0开始引入,以“@注解名”在代码中存在。Annotation 可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。还可以添加一些参数值,这些信息被保存在 Annotation 的 “name=value” 对中。注解可以在类编译、运行时进行加载,体现不同的功能。@Override:该注解只能用于方法,校验是否重写 @Deprecated:用于表示被标记的数据已经过时,不推荐使用。 @SuppressWarnings:抑制编译警告原创 2023-08-25 23:11:55 · 243 阅读 · 0 评论 -
java --- 枚举类
枚举类型本质上也是一种类,只不过是这个类的对象是有限的、固定的几个,不能让用户随意创建。返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值,是一个静态方法。:可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的。4.2、枚举类的每个对象重写接口中的方法,执行每个对象重写的方法。默认返回的是常量名(对象名),可以继续手动重写该方法!得到当前枚举常量的名称。4.1、枚举的对象调用执行同一个方法。返回当前枚举常量的次序号,默认从。原创 2023-08-25 12:21:32 · 617 阅读 · 0 评论 -
Java --- 内部类
将一个类A定义在另一个类B里面,里面的那个类A就称为内部类(InnerClass,类B则称为外部类(OuterClass。原创 2023-08-25 09:50:09 · 224 阅读 · 0 评论 -
Java --- 二维数组
【代码】Java --- 二维数组。原创 2023-08-20 04:05:46 · 704 阅读 · 0 评论 -
Java --- 接口
1、接口和继承解决的问题不同:①、继承主要解决代码的复用性和可维护性。2、接口比继承更加灵活:继承是满足is - a的关系,而接口只需要满足like - a的关系。2、接口中所有的方法是public方法,接口中抽象方法,可以不用abstract修饰。2、Jdk8.0后接口类可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现。1、在Jdk7.0前接口里的所有方法都没有方法体,都是抽象方法。3、一个普通类实现接口,就必须将该接口的所有方法都实现。4、抽象类实现接口,可以不用实现接口的方法。原创 2022-10-03 08:00:00 · 139 阅读 · 0 评论 -
Java --- 抽象类
请使用继承的思想,设计CommonEmployee类和Manager类,要求类中提供必要的方法进行属性访问,实现work(),提示"经理/普通员工名字工作中..."。当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,这个方法就是抽象方法,用abstract来修饰该类就是抽象类。7、如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类。2、抽象类不一定要包含abstract方法。2、用abstract关键字来修饰一个方法时,这个方法就是抽象方法。原创 2022-10-02 08:00:00 · 712 阅读 · 0 评论 -
Java学习 --- final关键字
2、final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一【选择一个位置赋初值即可】:①、定义时 ②、在构造器中 ③、在代码块中。3、如果final修饰的属性是静态的,则初始化的位置只能是:①、定义时②、在静态代码块,不能在构造器中赋值。5、如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承。final表示最后的,最终的,可以用于修饰类,属性,方法,局部变量。3、当不希望类的的某个属性的值被修改,可以用final修饰。原创 2022-09-22 08:00:00 · 192 阅读 · 0 评论 -
Java学习 --- 代码块
6、创建一个子类时(继承关系),他们的静态代码块,静态属性初始化普通代码块,普通属性初始化,构造方法的调用顺序如下:①、父类的静态代码块和静态属性(优先级一样,按定义顺序执行)②、子类的静态代码块和静态属性(优先级一样,按定义顺序执行)③、父类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)④、父类的构造方法⑤、子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)⑥、子类的构造方法。②、代码块分两类,使用static修饰的叫静态代码块,没有static修饰的叫普通代码块/非静态代码块。原创 2022-09-21 08:00:00 · 563 阅读 · 0 评论 -
Java学习 --- 类方法(静态方法)
访问修饰符 static 数据返回类型 方法名(){}static 访问修饰符 数据返回类型 方法名(){}原创 2022-09-17 08:00:00 · 4219 阅读 · 0 评论 -
Java学习 ---- 类变量(静态变量)
①、访问修饰符 static 数据类型 变量名;(推荐)②、static 访问修饰符 数据类型 变量名;原创 2022-09-16 17:12:27 · 2331 阅读 · 0 评论 -
Java --- 零钱通项目
使用Java语言,完成收益入账、消费、查看明细、退出系统等功能。面向对象(oop)版。原创 2022-09-14 16:33:12 · 212 阅读 · 0 评论 -
Java学习 --- hashCode、toString、finalize方法
2、什么时候被回收:当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁这个对象,在销毁这个对象前,会先调用finalize方法。2、Integer.toHexString(hashCode())表示将对象的hashCode值转为十六进制的字符串。1、当对象被回收时,系统自动调用该对象的finalize方法。2、两个引用,如果指向的是同一个对象,则哈希值一定一样。4、哈希值主要根据地址号来的,不能将哈希值等同于地址。3、两个引用,如果指向的是不同对象,则哈希值不一样。原创 2022-09-13 18:56:23 · 778 阅读 · 0 评论 -
Java学习 --- ==运算符与equals方法
if (n == anotherString.value.length) { //判断长度是否相等。* if (anObject instanceof String) { //判断类型是否是String类型。1、判断两个Person对象的内容是否相等,如果两个Person对象的各个属性值都一样就返回true,反之返回false。3、当判断引用类型时,判断的是地址是否相等,即判定是不是同一对象。2、当判断基本类型时,判断的是值是否相等。原创 2022-09-13 17:03:28 · 495 阅读 · 0 评论 -
Java学习 --- 面向对象之多态
方法或对象具有多种形态,是面向对象的三大特征之一,多态是建立在封装和继承之上的。原创 2022-09-12 20:31:54 · 236 阅读 · 0 评论 -
Java学习 --- 方法重写
2、2.编写一个Student类,继承Person类,增加id、score属性/private,以及构造器,定义say方法(返回自我介绍的信息)。方法重写就是子类有一个方法和父类的某个方法的名称、返回类型、参数一样,那么子类的这个方法重写了父类的那个方法。2、Cat类的cry方法与Animal类的cry方法定义形式一样(名称、返回类型、参数)2、子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类。1、子类的方法参数,方法名称要和父类的方法的参数,方法名称要完全一样。原创 2022-09-11 16:45:08 · 518 阅读 · 0 评论 -
Java学习 --- super关键字
3、super的访问不限于直接父类,当父类的父类有同名的成员,也可以使用super去访问父类的父类的成员,当多个基类中有同名的成员,使用super访问依旧遵循就近原则。2、当子类有和父类中的成员(属性和方法)重名时,为了访问父类成员,必须通过super,当没有重名,使用super、this、直接访问是一样的效果。1、调用父类构造器的好处,分工明确,父类的属性由父类初始化,子类的属性由子类初始化。④、在查找方法的过程中如果找到,但不能访问就会报错,如果没有,就会提示该方法不存在。原创 2022-09-11 14:18:04 · 268 阅读 · 0 评论 -
Java学习 --- 面向对象之继承
继承可以解决代码复用,当多个类存在相同的属性和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可。原创 2022-09-10 22:18:45 · 247 阅读 · 0 评论 -
Java学习 --- 面向对象三大特征之封装
1、将属性进行私有化(private) 2、提供一个公共的(public)set方法,用于对属性判断并赋值 3、提供一个公共的(public)get方法,用于获取属性的值。1. Account类要求具有属性:姓名(长度为2位3位或4位)、余额(必须>20)、密码(必须是六位),如果不满足,则给出提示信息,并给默认值。把抽象出的数据[属性]和对数据的操作[方法]封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作[方法],才能对数据进行操作。:没有修饰符号,向同一个包的类公开。原创 2022-09-09 17:59:37 · 344 阅读 · 0 评论 -
Java学习 --- this关键字
目录一、this是什么二、this的本质三、this的注意事项Java虚拟机会给每个对象分配this,代表当前对象。示例代码二、this的本质内存图 使用hashCode方法验证 总结:那个对象调用,this就代表那个对象1、this关键字可以用来访问本类的属性、方法、构造器。2、this用于区分当前类的属性和局部变量3、访问成员方法:this.方法名(参数列表)4、访问构造器方法:this(参数列表);只能在构造器中使用,this语句必须为第一行 5、this不能在类定义的外部使用,只原创 2022-09-07 17:26:24 · 373 阅读 · 0 评论 -
Java学习 --- 构造器/构造方法
构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。7、定义了自己的构造器,默认的构造器就覆盖了,不能再使用默认的无参构造器,要使用需要显式定义一下。①、构造器的修饰符可以是默认的,也可以是 public protected private。6、当没有定义构造方法时,系统会自动给类生成一个默认无参构造方法又叫默认构造方法。1、一个类可以定义多个不同的构造器,即构造器重载。4、构造器是完成对象的初始化,并不是创建对象。⑤、构造器的调用由系统完成。原创 2022-09-07 11:32:48 · 909 阅读 · 0 评论 -
Java学习 --- 作用域
1、在Java编程中,主要的变量就是属性(成员方法)和局部变量。2、局部变量一般是指在成员方法中定义的变量。3、作用域的分类:①、全局变量:属性,作用于整个类体。②、局部变量:除了属性之外的其他变量,作用域为定义它的代码块中。这里直接编译就报错:4、全局变量可以赋值,直接使用,有默认值,局部变量必须赋值后,才能使用,没有默认值。......原创 2022-08-30 01:16:55 · 2396 阅读 · 0 评论 -
Java学习 --- 可变参数
有三个方法,分别实现返回姓名和两门课成绩(总分),返回姓名和三门课成绩(总分),返回姓名和五门课成绩(总分)。封装成一个可变参数的方法。Java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法,通过可变参数实现。4、可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后。访问修饰符 返回类型 方法名(数据类型...形参名){1、可变参数的实参可以是0个或者任意多个。5、一个形参列表中只能出现一个可变参数。2、可变参数的实参可以是数组。3、可变参数的本质就是数组。...原创 2022-08-29 23:37:22 · 502 阅读 · 0 评论 -
Java学习 --- 方法重载
1、编写程序,类Methods中定义三个重载方法并调用。三个方法分别接收一个int参数、两个int参数、一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类的main )方法中分别用参数区别调用三个方法。2、在Method类,定义三个重载方法max(),第一个万法,返回两个Int中的最大值,第二个方法,返回两个double值中的最大值,第三个方法,返回三个double值中的最大值,并分别调用三个方法。Java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致。...原创 2022-08-29 12:13:40 · 1347 阅读 · 0 评论 -
Java学习 --- 递归
递归就是方法自己调用自己,每次调用时传入不同的变量。原创 2022-08-25 15:50:00 · 648 阅读 · 0 评论 -
Java学习 --- 成员方法
4、方法定义时的参数为形式参数又称形参,方法调用时传入的参数又称实际参数又称实参,实参和形参的类型要一致或兼容即个数、顺序必须一致。3、方法要求有返回数据类型,方法体中最后的执行语句必须为return值,并且要求返回值类型必须和return的值类型一致或兼容。完成功能的具体语句,可以是输入、输出、变量、运算、分支、循环、方法调用,但不允许方法里面再定义方法。3、调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数。2、返回类型可以为任意类型,包括基本类型或引用类型(数组,对象)...原创 2022-08-14 18:13:43 · 5839 阅读 · 0 评论 -
Java学习 --- 对象的内存分配机制
代码】【无标题】原创 2022-07-20 22:41:17 · 267 阅读 · 0 评论 -
Java学习 --- 类与对象的属性
属性是类的一个组成部分,一般是基本数据类型,也可以是引用类型。属性=成员变量=field(字段)。原创 2022-07-20 21:47:17 · 908 阅读 · 0 评论 -
Java学习 --- 函数式接口
1、一个接口中,只声明了一个抽象方法,这个接口就可以称为函数式接口。2、使用@FunctionalInterface注解,来检验当前接口是否是函数式接口实例代码,仅供参考:三、Java函数式接口四大接口 其他接口实例代码,仅供参考:3.2、供给型接口实例代码,仅供参考:四、方法引用1、当要传递给lambda体的操作,已经有实现的方法了,可以使用方法引用。2、方法引用本质上就是函数式接口的实例。3、类(对象):: 方法名4、三种情况:对象 ::非静态方法 ,类 :: 静态方法 ,原创 2022-07-08 01:40:01 · 767 阅读 · 0 评论 -
Java8-17 --- lambda表达式
1、速度更快 2、代码更少 3、强大的Stream APL 4、便于并行 5、最大化减少空指针异常6、Nashorn引擎,允许在JVM上运行JS应用。1、并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流。并行的流可以很大程度上提高程序的执行效率。2、Stream APL可以声明性地通过parallel()与sequential()在并行流与顺序流之间的切换。Lamdba是一个匿名函数,也就是一段可以传递的代码。可以写出更简洁、更灵活的代码,使Java的语言表达能力更强,lambda的原创 2022-06-24 07:01:45 · 510 阅读 · 0 评论 -
Java学习 --- 类与对象
类就是数据类型,是抽象的,概念的,代表一类事物对象就是一个具体的实例,是具体的,实际的,代表一个具体事物。原创 2022-06-24 00:50:03 · 466 阅读 · 0 评论 -
Java学习 --- 进制转换
目录一、进制二、其他进制转十进制2.1、二进制转十进制2.2、八进制转十进制2.3、十六进制转十进制三、十进制转其他进制3.1、十进制转二进制 3.2、十进制转八进制 3.2、十进制转十六进制四、其他进制转换4.1、二进制转八进制4.2、二进制转十六进制1.1、二进制:0,1表示,满2进1,以0b或者0B开头。1.2、八进制:0-7,满8进1,以数字0开头。1.3、十进制:0-9,满10进11.4、十六进制:0-9及A(10)-F(15),满16进1。以0x或0X开头表示。A和F不区分大小写示例代码:原创 2022-06-22 02:49:51 · 644 阅读 · 0 评论 -
Java学习 --- Java的简介
计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合案例程序如下:二、Java的主要特点1、Java语言是面向对象的又称(oop)2、Java语言是健壮的,Java是强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。3、Java语言是跨平台性的(一个Java编译好的.class文件可以在不同的操作系统下运行)。4、Java语言是解释型语言。1、Java的核心机制就是Java虚拟机又称JVM(Java virtual machine)2、JVM是一个虚拟的计算机,具有指令原创 2022-06-07 00:11:49 · 210 阅读 · 1 评论 -
Java学习 --- JDK安装
一、下载安装包Java Downloads | Oracle二、安装自定义目录三、配置环境变量四、测试原创 2022-02-16 23:28:01 · 282 阅读 · 0 评论