# shanggg-java-se
## 介绍
**尚硅谷Java SE课程复习,代码&总结的仓库**
## 3、数组
数组(Array):多个相同类型数据按一定顺序排列的集合,通过编号的方式进行管理。
数组属于引用数据类型,元素可以是基本数据类型和引用数据类型,创建数组会在内存中开辟一整块连续的空间,而数组名引用的是这块空间的首地址。
数组长度一旦确定,就不能修改。通过下标(索引)的方式调用指定位置的元素。
数组的内存解析见:https://www.cnblogs.com/shawnyue-08/p/12656049.html
二维数组,可以看成一维数组array1作为另一个一维数组array2元素而存在,从数组底层运行机制来看,其实没有多维数组。
**二维数组的元素存放的是各个一维数组的地址值,引用。**
二维数组元素的默认初始化值和内存解析见:https://www.cnblogs.com/shawnyue-08/p/12676395.html
Arrays工具类的使用
```java
public static boolean equals(int[] a, int[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++)
if (a[i] != a2[i])
return false;
return true;
}
```
数组中常见的异常:`ArrayIndexOutOfBoundsException`、`NullPointerException`
## 10、枚举类与注解
### 枚举类
**类的对象只有有限个,确定的**。如星期、季节、线程状态、订单状态、设备类型、页面类型等。
**当需要定义一组常量时,建议使用枚举类。**
(枚举类只有一个对象时,可以作为一种**单例模式**的实现方式。)
自定义枚举类(JDK 1.5之前)
使用**enum**关键字定义枚举类(JDK 1.5以后)
Enum类的常用方法:`valueOf`、`toString/name`
使用enum关键字定义的枚举类实现接口(枚举类的对象分别实现接口中的抽象方法)
### 注解
Annotation,从JDK 1.5开始,Java增加了对元数据(MetaData)的支持,即注解。
注解是代码中的特殊标记,在编译、运行时被读取,并进行处理。通过使用注解,可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息,**可用于修饰类、方法、成员变量、参数等**。
在Java SE阶段,注解使用较简单, 例如标记过时、重写等,在Java EE阶段作用更明显。
在一定程度上可以说:**框架 = 注解 + 反射 + 设计模式**。
常见Annotation示例
* 生成文档相关注解
* 在编译时进行格式检查(`@Override`、`@Deprecated`:已过时、`@SuppressWarnings`:抑制编译器警告)
* 实现替代配置文件功能(Servlet 3.0、Spring Bean的管理)
自定义注解
* 定义新的Annotation类型使用`@interface`关键字
* 自定义注解自动继承了`java.lang.annotation.Annotation`接口
* 注解的成员变量是**以无参方法的形式**来声明,其方法名和返回值定义了该成员的名字和类型,称为配置参数,类型只能是8种基本数据类型、String类型、Class类型、enum类型、Annotation类型和以上所有类型的数组
* 在定义成员变量时可以为其指定初始值,使用`default`关键字
* 如果只有一个参数成员,建议使用参数名为`value`
* 如果只有一个参数成员,且名称为value,在使用时可以省略`value = xxx`
* 没有成员定义的注解称为标记
* **自定义注解必须配合注解的处理流程才有意义**(运行中通过反射读取类、方法、参数的注解)
JDK中四个基本的元注解
* JDK的元注解用于修饰其他注解
* `Retention`:用于指定注解的生命周期(SOURCE、CLASS[默认值]、RUNTIME)
* 只有声明为RUNTIME的注解,才能通过反射获取
* `Target`:用于指定注解可以用于修饰哪些程序元素
* CONSTRUCTOR、FIELD、LOCAL_VARIABLE、METHOD、PACKAGE、PARAMETER、TYPE(类、接口、注解、enum)、等
* `Document`:用于指定注解将被javadoc工具提取为文档
* `Inherited`:被其修饰的注解具有继承性,如果某个类使用了被`@Inherited`修饰的注解,则其子类将自动具有该注解,实际使用较少
JDK 1.8中注解的新特性
可重复注解
* `@MyAnnotation`注解声明`@Repeatable`注解
* `@MyAnnotation`和`@MyAnnotations`注解的`@Target`、`@Retention`等元注解相同
类型注解
* `ElementType.TYPE_PARAMETER`:表示该注解可以写在类型变量的声明语句中(如泛型声明)
* `ElementType.TYPE_USE`:表示该注解能写在使用类型的任何语句中
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
介绍 Java SE复习,代码总结 3、数组 数组(Array):多个相同类型数据按一定顺序排列的集合,通过编号的方式进行管理。 数组属于引用数据类型,元素可以是基本数据类型和引用数据类型,创建数组会在内存中开辟一整块连续的空间,而数组名引用的是这块空间的首地址。 数组长度一旦确定,就不能修改。通过下标(索引)的方式调用指定位置的元素。 二维数组,可以看成一维数组array1作为另一个一维数组array2元素而存在,从数组底层运行机制来看,其实没有多维数组。 二维数组的元素存放的是各个一维数组的地址值,引用。 Arrays工具类的使用 public static boolean equals(int[] a, int[] a2) { if (a==a2)
资源推荐
资源详情
资源评论
收起资源包目录
shanggg-java-se-master.zip (72个子文件)
shanggg-java-se-master
java-enum-annotation
pom.xml 573B
src
test
java
org
openplatform
java
SeasonTest.java 437B
AppDeviceTypeTest.java 301B
main
java
org
openplatform
java
MyAnnotation.java 572B
EnumMethods.java 1KB
MyAnnotations.java 427B
Season.java 1KB
AppDeviceType.java 133B
java-collection-map
pom.xml 528B
src
main
java
org
openplatform
java
collection
CollectionAPIDemo.java 2KB
pom.xml 1KB
java-array
pom.xml 519B
src
main
java
org
openplatform
java
ScoreLevel.java 1KB
ArrayDemo.java 1KB
ArraysDemo.java 836B
ArrayTwoDimDemo.java 675B
.idea
jarRepositories.xml 861B
codeStyles
codeStyleConfig.xml 148B
Project.xml 5KB
uiDesigner.xml 9KB
vcs.xml 180B
misc.xml 616B
compiler.xml 792B
.gitignore 214B
encodings.xml 200B
.gitee
ISSUE_TEMPLATE.zh-CN.md 79B
java-common-class
pom.xml 526B
java-oop-middle
pom.xml 524B
src
main
java
org
openplatform
java
wrapper
WrapperClassTest.java 4KB
unittest
JUnitTest.java 1KB
objects
ObjectTest.java 4KB
polymorphism
exercises
SubTest.java 910B
PolymorphismTest.java 5KB
inherit
OOPTest.java 3KB
exercises
Student.java 1KB
Person.java 936B
OverrideTest.java 4KB
keywords
SuperTest.java 3KB
README.en.md 959B
java-oop-upper
pom.xml 523B
src
main
java
org
openplatform
java
encapsulation
AnimalTest.java 3KB
base
DeveloperTest.java 2KB
RecursionMethod.java 934B
Phone.java 1KB
ArrayUtilTest.java 1KB
OverloadTest.java 685B
ArrayPrintTest.java 972B
PersonTest.java 1KB
ArrayUtil.java 3KB
ValueTransferTest.java 3KB
VariableNumberArgs.java 2KB
CustomerTest.java 2KB
Person.java 609B
OopTest.java 2KB
constructor
FieldInitialProcess.java 1KB
Person.java 2KB
Bean.java 746B
keywords
Person.java 4KB
exercises
StudentTest.java 2KB
MethodDefined.java 815B
Student.java 204B
Person.java 733B
README.md 5KB
java-oop-lower
pom.xml 523B
src
main
java
org
openplatform
java
singleton
SingletonTest.java 2KB
MainTest.java 548B
templatemethod
TemplateMethodTest.java 816B
codeblock
CodeBlockTest.java 4KB
keywords
FinalTest.java 2KB
StaticTest.java 3KB
AbstractTest.java 2KB
shanggg-java-se.iml 80B
共 72 条
- 1
资源评论
哆啦哆啦S梦
- 粉丝: 138
- 资源: 517
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功