Java数据类型
定义
Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。
分类
- java的两大数据类型为基本数据类型和引用数据类型
基本数据类型
- 整数型 (byte,short,int,long)
- 浮点型 (float,double)
- 字符型 (char)
- 布尔型 (boolean)
引用数据类型
- 类 (class)
- 接口 (interface)
- 数组 ([])
数据类型转换
定义
数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。
分类
隐式转换
在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。
转换规则
数值型数据的转换:byte→short→int→long→float→double。
字符型转换为整型:char→int。
转换条件
自动类型转换的实现需要同时满足两个条件:①两种数据类型彼此兼容,②目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。
显式转换
当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。
语法格式
目标类型 变量名 = (目标类型) (被转换的数据);
举例:int b = (byte)(a + b);
Tips:如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同。不建议强制转换,因为会有精度的损失。
计算机存储单元
定义
数据必须首先在计算机内被表示,然后才能被计算机处理。计算机表示数据的部件主要是存储设备;而存储数据的具体单位是存储单元;因此,了解存储单元的结构是十分必要的。
(1)"位"(Bit):是计算机中最小的信息单位。一"位"只能表示0和1中的一个,即一个二进制位,或存储一个二进制数位的单位。
(2)"字节"(Byte):是由相连8个位组成的信息存储单位。
常用存储单元关系
1B= 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
@ Java中的特殊符号——注解
@Override 其实这是一种注解,注意是注解 ,不是“ // ”注释
Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。
概念
什么是注解
Java注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
注解的本质: 特殊的接口
声明注解: 创建了一个特殊接口
使用注解: @注解名(创建注解的一个对象)
注解的分类
1)根据【注解作用】分类
1.内置注解
jdk定义好这个注解的声明, 开发者直接使用, 语法检查
@Override
限定父类重写方法:当子类重写父类方法时,子类可以加上这个注解,这可以确保子类确实重写了父类的方法,避免出现低级错误他。【检测重写】
@Deprecated
标示已过时:这个注解用于表示某个程序元素类,方法等已过时,当其他程序使用已过时的类,方法时编译器会给出警告。
@SuppressWarnings
抑制编译器警告:被该注解修饰的元素以及该元素的所有子元素取消显示编译器警告,例如修饰一个类,那他的字段,方法都是显示警告
2.元注解
jdk定义好这个注解的声明, 在注解上使用
@Documented
注解是否将包含在JavaDoc中
一个简单的Annotations标记注解,表示是否将注解信息添加在javadoc文档中
@Retention
什么时候使用该注解
Retention 的英文意为保留期的意思。当 @Retention 应用到一个注解上的时候,它解释说明了这个注解的的存活时间
@Target
注解用于什么地方
默认值为任何元素,表示该注解用于什么地方。
@Inherited
定义该注释和子类的关系。
Inherited 是继承的意思,但是它并不是说注解本身可以继承,而是说如果一个超类被 @Inherited 注解过的注解进行注解的话,那么如果它的子类没有被任何注解应用的话,那么这个子类就继承了超类的注解
3.自定义注解
声明注解的语法: @interface
public @interface 注解名{ //成员 }
2)根据【注解参数】分类
如果要对于元数据的作用进行分类,还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类:
- ① 编写文档:通过代码里标识的元数据生成文档【生成文档doc文档】
- ② 代码分析:通过代码里标识的元数据对代码进行分析【使用反射】
- ③ 编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】
注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问
1. 标记注解
标记注解不包含 成员/元素。它仅用于标记声明。
其语法为:@AnnotationName( )
- 由于这些注解不包含元素,因此不需要括号。例如:@Override
2.单元素注解
单个元素注解仅包含一个元素。
其语法为:@AnnotationName(elementName = "elementValue")
如果只有一个元素,则习惯上将该元素命名为value:@AnnotationName(value = "elementValue")
在这种情况下,也可以移除元素名称。元素名称默认为value:@AnnotationName("elementValue")
3. 多元素注解
这些注解包含多个用逗号分隔的元素。
其语法为:@AnnotationName(element1 = "value1", element2 = "value2")
后续深入学习Java注解-最通俗易懂的讲解_java 注解-优快云博客
.......