自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(242)
  • 收藏
  • 关注

原创 JavaSE——JDk8新特性(1/2):Lambda表达式(具体实现、函数式接口、简化setAll、Comparator),Lambda表达式的省略写法

(进一步简化Lambda表达式的写法)参数类型可以省略不写。如果只有一个参数,参数类型可以省略,同时()也可以省略。如果Lambda表达式中的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!此时,如果这行代码是return语句,也必须去掉return不写。

2024-04-26 08:00:00 155

原创 JavaSE——常用API进阶二(8/8)-Arrays、Comparable、Comparator(Arrays类提供的的常见方法、用法示例)

如果数组中存储的是对象,那该如何排序呢?Arrays.sort中没有指定对于对象的排序规则,不知道根据什么来排序,所以如果用它来对对象排序的话是会报错的。解决方式方式一:让该对象的类实现Comparable(比较规则)接口,然后重写compareTo方法,自己来制定比较规则。方式二:使用下面这个sort方法,创建Comparator比较器接口的匿名内部类对象,然后自己制定比较规则。

2024-04-24 08:00:00 633

原创 JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)

JDK 8之后新增的代替SimpleDateFormat的一个API——同样是用来格式化和解析时间的,与SimpleDateFormat相比较来说,它是线程安全的,也就是多个用户进入到一个系统中,用户可以使用同一个DateTimeFormatter。

2024-04-22 08:00:00 923

原创 JavaSE——常用API进阶二(6/8)-ZoneId、ZoneDateTime、Instant(常见方法、用法示例)

如果在开发中我们有这样的需求:我们的系统需要获取美国现在的时间,或者其他地区的时间给用户观看,或者进行一些处理,那应该怎么办呢?美国时间和我们系统当前的时间肯定是不一样的,遇到这样的需求,我们就要用到ZoneId来解决了。世界标准时间(UTC)中国标准时间:世界标准时间(UTC)

2024-04-20 08:00:00 874

原创 JavaSE——常用API进阶二(5/8)-JDK 8新增的时间API,LocalDate、LocalTime、LocalDateTime

LocalDate的常用API(都是处理年、月、日、星期相关的方法名说明获取年获取月份(1-12)获取日获取当前是一年中的第几天获取星期几:ld.getDayofWeek.getValue()方法名说明直接修改某个信息,返回新日期对象把某个信息加多少返回新日期对象把某个信息减多少返回新日期对象判断两个日期对象,是否相等,在前还是在后LocalTime的常用API都是处理时、分、秒、纳秒相关的方法名说明获取小时获取分获取秒获取纳秒方法名说明修改时间,返回新时间对象把某个信息。

2024-04-18 08:00:00 955

原创 JavaSE——常用API进阶二(4/8)-秒杀案例(需求与分析、代码与运行结果)、Calendar(Calendar日历类的常见方法、用法示例)

Calendar代表的是系统此刻时间对应的日历。通过它可以单独获取、修改时间中的年、月、日、时、分、秒等。注意:Calendar是可变对象,一旦修改后其对象本身表示的时间将产生变化。

2024-04-16 08:00:00 249

原创 JavaSE——常用API进阶二(3/8)-Date、SimpleDateFormat(构造器、常用的方法、用法示例、时间格式的常见符号)

接下来会学习JDK8以前传统的日期、时间,以及JDK8开始新增的日期、时间;有部分项目还是有在使用JDK8以下的日期和时间的,所以我们仍然要去了解和学习它们。先开始学习。

2024-04-14 08:00:00 280

原创 JavaSE——常用API进阶二(2/8)-BigDecimal(BigDecimal的常见构造器、常用方法,用法示例,使用规范)

BigDecimal用于解决浮点BigDecimal(double)存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。如:BigDecimal g = new BigDecimal(0.1F); 实际的存储值为:0.10000000149正例优先推荐入参为String的构造方法去,或使用BigDecinal的valueOf方法,此方法内部其实执行了Double的toString,而Double的toString按double的实际能表达的精度对尾数进行了截断。

2024-04-12 08:00:00 291

原创 JavaSE——常用API进阶二(1/8)-Math、System、Runtime(它们提供的常见方法以及具体使用)

1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX。学习自:黑马程序员——JavaSE课程。Runtime类提供的常见方法。Runtime是一个单例类。代表程序所在的运行环境。

2024-04-10 08:00:00 1339

原创 JavaSE——常用API进阶一(3/3)-StringBuilder(构造器、拼接内容、反转操作、其他操作),StringBuffer,StringJoiner

相当于是一个容器就是用来操作字符串的StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁以上都可以在API文档中查找到,列出的方法是比较常用的。

2024-04-08 08:00:00 641

原创 JavaSE——常用API进阶一(2/3)-Objects类(equals方法、isNull方法、nonNull方法)、包装类(介绍、包装方法及自动装拆箱、其他常见操作)

为什么要有包装类?对于基本类型,它们都不是对象;但是如果在泛型中我们需要用到这些基本类型的数据,而泛型又只能传入引用数据类型,这个时候包装类就发挥了作用了。包装类就是把基本类型的数据包装成对象。基本数据类型对应的包装类(引用数据类型)byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean。

2024-04-06 08:00:00 867

原创 JavaSE——常用API进阶一(1/3)-Object类(Object类的作用、Object类的常见方法-toString方法、equal方法、clone方法)

1、Object中toString方法的作用是什么?存在的意义是什么?基本作用:返回对象的字符串形式。存在的意义:让子类重写,以便返回子类对象的内容。2、Object中equals方法的作用是什么?存在的意义是什么?基本作用:默认是比较两个对象的地址是否相等。存在的意义:让子类重写,以便用于比较对象的内容是否相同。3、什么是对象克隆?当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回。4、什么是浅克隆?拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)

2024-04-04 08:00:00 837

原创 JavaSE——面向对象高级三(5/5)-泛型方法、泛型的通配符、泛型擦除和注意事项

通配符就是“?”,可以在“使用泛型”的时候代表一切类型;E T K V是在定义泛型的时候使用。泛型的上下限泛型上限:?extends Car :?能接收的必须是Car或者其子类。泛型下限:? super Car:?能接收的必须是Car或者其父类。泛型擦除和注意事项泛型是工作在编译阶段的,一旦程序编译成class文件,class文件中就不存在泛型了,这就是泛型擦除。泛型不支持基本数据类型,只能支持对象类型(引用数据类型)。

2024-04-02 08:00:00 459

原创 JavaSE——面向对象高级三(4/5)-认识泛型、定义泛型类、定义泛型接口

定义类、接口、方法时,同时声明了一个或者多个类型变量(如:),称为泛型类、泛型接口、泛型方法、它们统称为泛型。作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力!这样可以避免强制类型转换,及其可能出现的异常。泛型的本质:把具体的数据类型作为参数传给类型变量。

2024-03-30 08:00:00 344

原创 JavaSE——面向对象高级三(3/5)-枚举(认识枚举、拓展:抽象枚举、用枚举实现单例模式、枚举的应用场景)

修饰符 enum 枚举类名{名称1,名称2,...;其他成员...这些名称,本质是常量,每个常量都会记住枚举类的一个对象实际上完整代码为:具有以下特点:枚举类的第一行只能罗列一些名称,这些名称都是常量,并且每个常量记住的都是枚举类的一个对象第一点:枚举类的第一行都是常量,记住的是枚举类的对象A a = A.Y;因为枚举类的第一行都是常量,记住的是枚举类的对象,所以我们可以直接用枚举类得到里面的象,例如:枚举类名称.枚举类常量1、枚举类名称.枚举类常量2;A.X、A.Y。

2024-03-28 08:00:00 894

原创 JavaSE——面向对象高级三(2/5)-匿名内部类(重点)-认识匿名内部类、匿名内部类的应用场景

所谓匿名:指的是程序员不需要为这个类声明名字new类或接口(参数值...){类体(一般是方法重写);匿名内部类的应用场景通常作为一个参数传输给方法

2024-03-26 08:00:00 489

原创 JavaSE——面向对象高级三(1/5)-内部类概述、成员内部类、静态内部类、局部内部类

内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。场景:当一个类的内部,包含了一个完整的事务,且这个事务没有必要单独设计时,就可以把这个事务设计成内部类。//内部类内部类有四种形式成员内部类静态内部类局部内部类匿名内部类//成员内部类//也可以和外部类一样定义变量//JDK 16之前,成员内部类是不支持定义静态成员的。成员内部类的调用方式://需要new两次。

2024-03-24 08:00:00 172

原创 JavaSE——面向对象高级二(4/4)-接口的其他细节-三个新方法(默认方法、私有方法、静态方法),接口的多继承

使用接口的注意事项【了解】一个接口继承多个接口,如果多个接口中存在方法签名冲突,则此时不支持多继承。一个类实现多个接口,如果多个接口中存在方法签名冲突,则此时不支持多实现。一个类继承了父类,又同时实现了接口,父类中和接口中有同名的默认方法,实现类会优先用父类的。一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。

2024-03-22 08:00:00 173

原创 JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)

接口不能创建对象;接口是用来被类实现(implements)的,实现接口的类称为。修饰符 class 实现类 implements 接口1,接口2,接口3,...{一个类可以实现多个接口(接口可以理解成干爹)

2024-03-20 08:00:00 706

原创 JavaSE——面向对象高级二(2/4)-final关键字、常量、抽象类(认识抽象类、抽象类的好处、应用场景-模板方法设计模式)

final关键字final关键字是最终的意思,可以修饰(类、方法、变量)修饰类:该类被称为最终类,特点是不能被继承了。(常见于为工具类修饰)修饰方法:该方法被称为最终方法,特点是不能被重写了。修饰变量:该变量只能被赋值一次。(用于局部变量,成员变量;其中修饰静态成员变量我们称为常量)final修饰变量的注意事项final修饰基本类型的变量,变量存储的数据不能被改变。final修饰引用类型的变量,变量存储的地址不能被改变,但地址所指向对象的内容是可以被改变的。

2024-03-18 08:00:00 788

原创 JavaSE——面向对象高级二(1/4)-面向对象三大特征之三-多态(认识多态、使用多态的好处、多态下的类型转换问题)

对象多态可以理解为一个对象有多重形态,而行为多态可以理解为对象的不同行为,下面来看多态的具体代码体现然后来看可以看到,一个People类包含着Student和Teacher,以People类创建出学生对象和教师对象,体现了对象多态;p1调用的run(),实际上是Student重写的run方法,而非People里面的run方法,同样的,p2调用的run()则是Teacher重写的run方法,都是People的行为,但执行的结果不一样,体现了行为多态。多态的前提继承/实现存在方法重写。

2024-03-16 08:00:00 356

原创 JavaSE——面相对象高级一(4/4)-继承相关的注意事项:权限修饰符、单继承、Object类、方法重写、子类访问成员的特点......

什么是权限修饰符?权限修饰符有几种?各自的作用是什么?能够被访问的范围由大到小分别为:public、protected、缺省、private。在开发中,使用得最多的也就是public和private,其他两个权限修饰符只要求在看到源码时可以看得懂。也就是说,一个类不能继承多个父类;但一个类继承的父类,该父类还可以作为一个子类再继承父类,称为多层继承。例如:也就是说,我们创建一个类的时候,如果没有继承类,那么就会默认继承Object类,为Object的子类;而如果已经继承了类,那么也是间接继承了Obje

2024-03-14 08:00:00 827

原创 JavaSE——面向对象高级一(3/4)-面向对象三大特征之二:继承(初步认识继承、了解继承的好处)

1、什么是继承?继承后有啥特点?继承就是用extends关键字,让一个类和另一个类建立起一种父子关系。子类可以继承父类非私有的成员。2、带继承关系的类,JaVa会怎么创建它的对象?对象创建出来后,可以直接访问哪些成员?带继承关系的类,java会用类和其父类,这多张设计图来一起创建类的对象。对象能直接访问什么成员,是由子父类这多张设计图共同决定的,这多张设计图对外暴露了什么成员,对象就可以访问什么成员。

2024-03-12 08:00:00 356

原创 JavaSE——面向对象高级一(2/4)-饿汉式单例、懒汉式单例、代码块、static的注意事项

类方法中可以直接访问类的成员,不可以直接访问实例成员。实例方法中既可以直接访问类成员,也可以直接访问实例成员。实例方法中可以出现this关键字,类方法中不可以出现this关键字的。

2024-03-10 08:00:00 348

原创 JavaSE——面向对象高级一(1/4)-static修饰成员变量、应用场景,static修饰成员方法、应用场景

类变量:有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享。实例变量(对象的变量):无static修饰,属于每个对象的。类变量的用法:类名.类变量(推荐)对象.类变量(不推荐)类变量的应用场景在开发中,如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义成类变量来记住。

2024-03-08 08:00:00 390

原创 JavaSE——基础小项目-模拟ATM系统(项目主要目标、技术选型、架构搭建、具体实现、完整代码注释)

每个账户都是一个账户对象:所以需要设计账户类Account,月用于创建账户对象封装账户信息。ATM同样是一个对象,需要设计ATM类,代表ATM管理系统,负责对账户的处理。每个账户都是一个账户对象:所以需要设计账户类Account,月用于创建账户对象封装账户信息。ATM同样是一个对象,需要设计ATM类,代表ATM管理系统,负责对账户的处理。登录信息的内容比较,数据的分析,处理等都需要常用API来解决,如使用String。登录信息的内容比较,数据的分析,处理等都需要常用API来解决,如使用String。

2024-03-06 08:00:00 1671

原创 JavaSE——常用API(3/3)-ArrayList入门、ArratList使用、ArrayList综合案例

现在假如购物车中存储了如下这些商品:Java入门,宁夏枸杞,黑枸杞,人字拖,特级枸杞,枸杞子。设计完菜品类之后就可以开始设计菜品的操作类了,因为需求是进行菜品的上架,是由用户进行的,所以要通过菜品操作类来执行。尖括号内的E代表了容器可以存储什么数据类型,如果不写则代表可以存储任意数据类型。把每一个菜品当成一个对象,所以先要设计一个菜品类来创建菜品对象。通过完成一个简单的案例来掌握ArrayList的初步使用,设计菜品的操作类,要完成上架菜品的操作和展示菜品的操作。完成菜品的上架,以及菜品信息浏览功能。

2024-03-04 08:00:00 1601

原创 JavaSE——常用API(2/3)-String使用时的注意事项、String的应用案例

每次试图改变字符串对象实际上是新产生了新的字符串对象了,变量每次都是指向了新的字符串对象,之前字符串对象的内容确实是没有改变的,因此说String的对象是不可变的。(这么设计主要是为了节约内存)第一行代码执行时,new操作原本是让字符存储到了堆内存中,但此时String内部写了"abc",用双引号写出来的字符会被放入字符串常量池中;所以字符串常量池和堆内存中都各自有一个abc字符。第二行代码是用双引号书写的字符,将被放到堆内存中的字符串常量池里,但此时已存在abc,故。

2024-03-02 08:00:00 1504

原创 JavaSE——常用API(1/3)-包、String概述、String常用方法(length、charAt、遍历字符串、toCharArray......)

包是用来分门别类地管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护。建包的语法格式:一般我们在IDEA中建包时会自动帮我们写好java.lang.String 代表字符串、封装字符串数据、处理字符串的方法。创建对象封装字符串数据调string的方法String创建对象封装字符串数据的方法方式一:Java程序中的所有字符串文字(例如“abc”)都为此类的对象。String name = "小飞";String schoolName = "xx大学";

2024-02-28 08:00:00 869

原创 JavaSE——面向对象基础(4/4)-成员变量和局部变量的区别、面向对象综合案例(电影信息系统)

创建一个电影操作类的对象,接收电影数据,并对其进行业务处理。2.根据电影的编号查询电影的详细信息并展示。学习自:黑马程序员——JavaSE课程。1.展示电影全部信息。

2024-02-26 08:00:00 372

原创 JavaSE——面向对象基础(3/4)-封装、实体JavaBean(什么是封装、封装的设计规范、什么是实体类、实体类的应用场景)

封装就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。例如://姓名//语文成绩//数学成绩System.out.println(name + "同学的各科总分是:" + (chinese + math));System.out.println(name + "同学的各科平均分是:" + (chinese + main) / 2.0);

2024-02-24 08:00:00 377

原创 JavaSE——面向对象基础(2/4)-this关键字、构造器(this的执行原理、应用场景,构造器的特点、应用)

创建一个学生对象s1和s2,并尝试输出这个学生对象的this变量运行之后就会得到两对结果相同的地址值,例如:包名.类名.对象名@776ec8df包名.类名.对象名@776ec8df。

2024-02-22 08:00:00 880

原创 JavaSE——面向对象基础(1/4)-面向对象编程、程序中的对象、对象的产生、对象的执行原理、类和对象的一些注意事项

例如设计一个学生的对象,其中有姓名和成绩等,录入不同的信息就可以产生多个学生的数据。学生的数据,找学生对象处理;汽车的数据,找汽车对象处理;手机的数据,找手机对象处理。对象本质上是一种特殊的数据结构。

2024-02-20 08:00:00 1755

原创 JavaSE——模拟双色球业务(双色球业务介绍、总体实现步骤分析,代码+运行结果)

投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1一33中选择(不重复);蓝色球号码从1-16中选择。根据红色球和蓝色球的号码来共同决定是否中奖。奖等中奖条件单注奖金分配红色球蓝色球一等奖6个1个最高1000万二等奖6个0个最高500万三等奖5个1个3000元四等奖5个0个200元4个1个五等奖4个0个10元3个1个3个0个六等奖2个1个5元1个1个0个1个。

2024-02-18 08:00:00 832

原创 JavaSE——基于案例的基础语法练习(买飞机票、验证码、评委打分、数组拷贝、找素数)

用户购买机票时,机票原价会按照淡季、旺季,头等舱还是经济舱的情况进行相应的优惠,优惠方案如下:5-10月为旺季,头等舱9折,经济舱8.5折;11月到来年4月为淡季,头等舱7折,经济舱6.5折,请开发程序计算出用户当前机票的优惠价。在唱歌比赛中,可能有多名评委要给选手打分,分数是[0-100]之间的整数。选手最后得分为:去掉最高分、最低分后剩余分数的平均分,请编写程序能够录入多名评委的分数,并算出选手的最终得分。请把一个整型数组,例如存了数据:11,22,33,拷贝成一个一模一样的新数组出来。

2024-02-16 08:00:00 627

原创 JavaSE——方法(2/2)-方法重载、return关键字在方法中单独使用

方法的运行区域在栈内存。栈的特点是先进后出,保证一个方法调用完另一个方法后,可以回来。Java的参数传递机制都是所谓值传递:指的是在传输实参给方法的形参的时候,传输的是实参变量中存储的值的。实参:在方法内部定义的变量。形参:定义方法时 “(...)” 中所声明的参数。分为两种:基本类型的参数传递和引用类型(例如数组)的参数传递。

2024-02-14 08:00:00 731

原创 JavaSE——方法(1/2)-介绍、方法的各种形式、使用的要求

方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用。方法的完整格式修饰符 返回值类型 方法名 ( 形参列表 ){ 方法体代码(需要执行的功能代码) return 返回值;}

2024-02-12 08:00:00 698

原创 JavaSE——数组(2/2)-数组在计算机中的执行原理、数组案例、Debug工具的使用

程序都是在内存中执行的,Java程序编译之后会产生一个class文件,然后将这个class文件提取到内存中正在运行的虚拟机里面去执行的。Java为了便于虚拟机执行这个Java程序,它将虚拟机中的内存区域进行了划分:方法区栈堆目前重要的是关注前三块。其中,方法区是放置我们编译之后的class文件的,也就是字节码文件。栈是方法运行时所进入的内存, 由于变量是在方法里的,所以变量也是在这块内存中。也就是说,一个类中的main方法要执行的时候,它是把main方法提到栈里面来进行执行的。堆。

2024-02-10 08:00:00 1674

原创 JavaSE——数组(1/2)-数组的定义和访问(静态初始化数组、动态初始化数组、案例练习)

静态初始化数组即定义数组的时候直接给数组赋值。完整格式数据类型 [] 数组名 = new 数据类型 [] {元素1,元素2,元素3,...};简化格式数据类型[] 数组名 = {元素1,元素2,元素3,...};注意"数据类型[] 数组名"也可写成"数据类型 数组名[]"。什么类型的数组只能存放什么类型的数据。数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。

2024-02-08 08:00:00 848

原创 JavaSE——流程控制-跳转关键字(break、continue),小案例(随机数、猜数字)

break:跳出并结束当前所在循环的执行。continue:用于跳出当前循环的当次执行,直接进入循环的下一次执行。注意事项:break:只能用于结束所在循环,或者结束所在switch分支的执行。continue:只能在循环中进行使用。

2024-02-06 08:00:00 700

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除