d11(113-120)-勇敢开始Java,咖啡拯救人生

2024-04-26 13:28

本文主要是介绍d11(113-120)-勇敢开始Java,咖啡拯救人生,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

枚举

抽象枚举

应用

泛型

自己定义泛型类

自己定义泛型接口

自己定义泛型方法

注意事项

常用API应用程序编程接口

克隆

objects类

包装类

StringBuilder

StringBuffer

StringJoiner

Math类

System

Runtime

BigDecimal


枚举

是一种特殊的类

修饰符 enum 枚举类名{

                名称1,名称2..[枚举类对象的名字]

                其他

        }

枚举类地第一行只能写一些合法的标识符(名称),多个名称用逗号分开

这些名称,本质是常量,每个常量都会记住枚举类的一个对象 

和interface一样,创建时要在class里选enum

枚举类的而构造器都是私有的,因此枚举类对外不能创造对象

枚举都是最终类,不可以被继承

枚举类中从第二行开始,可以定义类的其它各种成员

编译器为,枚举类新增了几个方法,并且枚举类都是继承 java.lang.Enum类的,从enum类也会继承到一些方法

抽象枚举

第一行构建对象时,要重写,

x(){

        @Override

        public void 方法名(){

        }

};

枚举类中只有一个对象 -> 单例设计模式

应用

用来表示一组信息,然后作为参数进行传输

泛型

在定义类、接口、方法时,同时声明了一个或多个类型变量(如<E>),称为泛型类、泛型接口、泛型方法、统称为泛型。

比如ArrayList list = new ArrayList();

此时向ArrayList中可以添加任何类型内容

但ArrayList<String> list = new ArrayList<>();

此时就只能加入字符串

作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查的能力,这样可以避免强制类型转换,及其可能出现的异常。

泛型的本质:把具体的数据类型作为参数传给类型变量。

[也可以限定数据类型 例如 E extends A,则此时传输的数据类型必须时A类本身或者继承了A类的类,再填String之类的是不行的]

自己定义泛型类

修饰符 class 类名<类型变量,类型变量...>{}

自己定义泛型接口

修饰符 interface 接口名<类型变量,类型变量...>{}

自己定义泛型方法

修饰符 <类型变量,类型变量...> 返回值类型 方法名(形参列表){}

?可以在使用泛型时,代表一切类型;ETKV时在定义泛型的时候使用

泛型上限:? extends A  能接受A及A的子类

泛型下限:? super A  能接受A及A的父类

注意事项

泛型时工作在编译阶段的,一旦程序编译成class文件,其中就不存在泛型了,这就是泛型擦除

泛型不支持基本数据类型,只能支持对象类型(引用数据类型

常用API应用程序编程接口

object类 所有类的祖宗啊

克隆

浅克隆

深克隆

objects类

equals 比object类的更安全哦

能处理null

包装类

把基本类型的数据包装成对象

基本数据类型(byte,short,int,long,char,float,double,boolean)不是对象

其他操作:

不太好记哦

xxx.valueOf(A)        用于转换比较好用,把A转换为xxx类型

StringBuilder

StringBuilder代表可变字符串对象,相当于是一个容器。它里面装的字符串是可以改变的,就是用来操作字符串的。

好处:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码更简洁

对字符串频繁修改、拼接的话StringBuilder效果很高哦

StringBuffer

和StringBuilder差不多一样

但StringBuilder是线程不安全的,StringBuffer是线程安全的

StringJoiner

跟StringBuilder一样,操作字符串的,可以看作是容器,创建之后里面的内容可变

好处:能提高字符串的操作效率,并且在有些场景中使用,会更简洁

Math类

工具类,提供对数据进行操作的静态方法

System

代表程序所在的系统,是一个工具类

System.exit(0);

System.currentTimeMillis(); // 从1970-1-1 0:0:0 开始走到此刻的总的毫秒值

可用来总性能分析,程序开始前和结束时的毫秒值做差

Runtime

代表程序所在的运行环境,Runtime是一个单例类

BigDecimal

用于解决浮点型运算时,出现结果失真的问题

这篇关于d11(113-120)-勇敢开始Java,咖啡拯救人生的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937706

相关文章

Springboot配置文件相关语法及读取方式详解

《Springboot配置文件相关语法及读取方式详解》本文主要介绍了SpringBoot中的两种配置文件形式,即.properties文件和.yml/.yaml文件,详细讲解了这两种文件的语法和读取方... 目录配置文件的形式语法1、key-value形式2、数组形式读取方式1、通过@value注解2、通过

Java 接口定义变量的示例代码

《Java接口定义变量的示例代码》文章介绍了Java接口中的变量和方法,接口中的变量必须是publicstaticfinal的,用于定义常量,而方法默认是publicabstract的,必须由实现类... 在 Java 中,接口是一种抽象类型,用于定义类必须实现的方法。接口可以包含常量和方法,但不能包含实例

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Springboot的配置文件及其优先级说明

《Springboot的配置文件及其优先级说明》文章介绍了SpringBoot的配置文件,包括application.properties和application.yml的使用,以及它们的优先级,还讨... 目录配置文件内置配置文件yml与properties的比较优先级比较外置配置文件springboot

自定义注解SpringBoot防重复提交AOP方法详解

《自定义注解SpringBoot防重复提交AOP方法详解》该文章描述了一个防止重复提交的流程,通过HttpServletRequest对象获取请求信息,生成唯一标识,使用Redis分布式锁判断请求是否... 目录防重复提交流程引入依赖properties配置自定义注解切面Redis工具类controller

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

Java中的CompletableFuture核心用法和常见场景

《Java中的CompletableFuture核心用法和常见场景》CompletableFuture是Java8引入的强大的异步编程工具,支持链式异步编程、组合、异常处理和回调,介绍其核心用法,通过... 目录1、引言2. 基本概念3. 创建 CompletableFuture3.1. 手动创建3.2.

java中4种API参数传递方式统一说明

《java中4种API参数传递方式统一说明》在Java中,我们可以使用不同的方式来传递参数给方法或函数,:本文主要介绍java中4种API参数传递方式的相关资料,文中通过代码介绍的非常详细,需要的... 目录1. 概述2. 参数传递方式分类2.1 Query Parameters(查询参数)2.2 Path

SpringBoot整合 Quartz实现定时推送实战指南

《SpringBoot整合Quartz实现定时推送实战指南》文章介绍了SpringBoot中使用Quartz动态定时任务和任务持久化实现多条不确定结束时间并提前N分钟推送的方案,本文结合实例代码给大... 目录前言一、Quartz 是什么?1、核心定位:解决什么问题?2、Quartz 核心组件二、使用步骤1

Java线程池核心参数原理及使用指南

《Java线程池核心参数原理及使用指南》本文详细介绍了Java线程池的基本概念、核心类、核心参数、工作原理、常见类型以及最佳实践,通过理解每个参数的含义和工作原理,可以更好地配置线程池,提高系统性能,... 目录一、线程池概述1.1 什么是线程池1.2 线程池的优势二、线程池核心类三、ThreadPoolE