字符串
- 字符串应用主要分为String类操作与字符串生成器
- 在程序中频繁的进行附加字符串则使用字符串生成器StringBuilder
数组
概述
数组创建
- 先声明,再用new运算符进行内存分配
- 声明的同时为数组分配内存
数组初始化
int arr[] = new int[]{1,2,3,5,25};
//第一种初始化方式
int arr2[] = {34,23,12,6};
//第二种初始化方式
int[] arr = new int[3];
arr[0] = 1; // 为数组的第1个元素赋值为1
arr[1] = 2; // 为数组的第2个元素赋值为2
arr[2] = 3; // 为数组的第3个元素赋值为3
//第三种初始化方式
高维数组创建以及初始化
数组元素类型 数组名字[ ][ ];
数组元素类型[ ][ ] 数组名字;
type arrayname[][] = {
{value1,value2…valuen},
{value1,value2…valuen}
…
};
面向对象概述
- In other words,The properties and behavior of similar things encapsulated into the class
多态
- 父类对象应用于子类的特征就是多态
- 多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类以及相关类,这统一风格可以由父类来实现,根据父类统一风格的处理,就可以实例化子类的对象。由于整个事件的处理都只依赖于父类的方法,所以日后只要维护和调整父类的方法即可,这样降低了维护的难度和时间
- 抽象类不能实例化对象。在多态的机制中,父类通常会被定义为抽象类,在抽象类中给出一个方法的标准,而不给出实现的具体流程,实质上这个方法也是抽象的
- 多态中最重要的是抽象类与接口,由抽象方法组成的集合就是接口
类成员
成员变量
成员方法
权限修饰符
this关键字
静态变量、常量、方法
- 在静态方法中不可以使用this关键字
- 在静态方法中不可以直接调用非静态方法
- 在Java中规定不能将方法体内的局部变量声明为static的
主方法
- 主方法也是静态的,所以要直接在主方法中调用其他方法,则该方法必须也是静态的
- 主方法没有返回值
- 主方法的形参为数组
对象
对象的比较
- 在Java语言中有两种对象的比较方式,分别为“==”运算符与equals()方法,实质上这两种方式有本质区别
- equals()方法是String类中的方法,它用于比较两个对象引用所指的内容是否相等
- “==”运算符比较的是两个对象引用的地址是否相等
对象的销毁
- Java中存在一种垃圾回收器
- 对象被视为垃圾有两种情况,一种是对象引用超过其作用范围或者将对象赋值为null
- 垃圾回收器只能回收那些由new操作符创建的对象
- 在Java中提供了一个finalize()方法,这个方法是Object类的方法,它被声明为protected,用户可以在自己的类中定义这个方法,如果用户在类中定义了finalize()方法,在垃圾回收时首先调用该方法,并且在下一次垃圾回收动作发生时,才能真正回收对象占用的内存
- 有一点需要明确的是,垃圾回收或是finalize()方法不保证一定会发生,比如Java虚拟机面临内存损耗待尽的情形,它是不会执行垃圾回收的。由于垃圾回收不受人为控制,具体执行时间也不确定,所以finalize()方法也就无法执行,为此,Java提供了System.gc()方法强制启动垃圾回收器,这与给120打电话通知医院来救护的道理一样,告知垃圾回收器来清理
包装类
- Integer
- Long
- Short
- Boolean
- Byte
- Character
- Double
- Float
- Number
数字处理
数字格式
- DecimalFormat类中使用一些特殊字符构成一个格式化模板,使数字按照一定规则进行匹配
字符 |
字符含义 |
0 |
代表阿拉伯数字,使用特殊字符“0”表示数字的一位阿拉伯数字,如果该位不存在数字,则显示0 |
# |
代表阿拉伯数字,使用特殊字符“#”表示数字的一位阿拉伯数字,如果该位存在数字,则显示字符,如果该位不存在数字,则不显示 |
. |
小数分隔符或货币小数分隔符 |
- |
负号 |
, |
分组分隔符 |
E |
分隔科学技术法中的尾数和指数 |
% |
本符号放置在数字的前缀或后缀,将数字乘以100显示为百分数 |
\u2030 |
本符号放置在数字的前缀或后缀,将数字乘以1000显示为千分数 |
¤\u00A4 |
本符号放置在数字的前缀或后缀,作为货币记号 |
‘ |
本符号为单引号,当上述特殊字符出现在数字中,应为特殊符号添加单引号,系统会将此符号视为普通符号处理 |
数学运算
- Math类
- Math.random()方法是可以产生随机数的
随机数
- 在Math类中存在一个random方法,此方法是可以产生一个0-1的double型数据
- m+(int)(Math.random()*n)此公式可以产生一个m~m+n之间的一个随机数
- Random类,Java.util.Random类,可以通过实例化一个Random对象创建一个随机数生成器。以这种形式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数将不同,但是如果运行速度太快,也会产生两次运行结果相同的随机数。同时也可以在实例化Random类对象时,设置随机数生成器的种子
方法 |
作用 |
public int nextInt() |
返回一个大等于0小于10的整数 |
public int nextInt(int n) |
返回大等于0小于n的整数 |
public long nextLong() |
返回一个随机长整型值 |
public boolean nextBoolean() |
返回随机布尔型值 |
public float nextFloat() |
返回一个随机浮点型值 |
public double nextDouble() |
返回一个随机双精度值 |
public double nextGaussian() |
返回一个概率密度为高斯分布的双精度值 |
大数字
- BigInteger,BigInteger支持任意精度的整数,也就是说在运算中BigInteger类型可以准确的表示任何大小的整数值而不会丢失任何信息
- BigDecimal,BigDecimal类支持任何精度的定点数,可以用它来精确计算货币值
Annotation注解
元数据
- 元数据从metadata一词译来,就是“关于数据的数据”的意思,元数据的功能有很多种,元数据可以用来创建文档,跟踪代码的依赖性,执行编译时格式检查,代替已有的配置文件
- 根据它所起的作用分为三类,编写文档,代码分析,编译检查
- 元数据以标签的形式存在于Java代码中
- 元数据描述的信息是类型安全的,即元数据内部的数据都是有明确类型的
- 元数据需要编译器之外的工具额外的处理用来生成其他的程序部件
- 元数据可以存在与Java源码中也可以存在于编译后的class文件内部
注解应用场合
- 生成文档,也是Java中最早提供的注解,@see、@parap、@return等
- 跟踪代码依赖性,实现替代配置文件功能,比较常见的spring2.5开始基于注解配置,作用就是减少配置文件的数量
- 在编译时进行格式检查,@override检查方法是否为覆盖方法
注解分类
根据注解参数的个数
- 标记注解:一个没有成员定义的Annotation类型被称为标记注解,这种annotation类型仅使用自身的存在与否来为我们提供信息,比如@override
- 单值注解
- 完整注解
根据注解使用方法和途径
- jdk内置系统注解,JavaSE中内置三个标准注解,定义在java.lang中,@override、@Deprecated(过时方法)、@SuppressWarnnings(用于通知Java编译器禁止特定的编译警告)
- 元注解
- 自定义注解(第三方提供和自己定义)
基本注解使用注意事项
- @override,检查所检测方法的名字是否覆盖对了父类方法的名字
- @Deprecated,@Deprecated这个annotation类型和javadoc中的@deprecated这个tag是有区别的,前者是java编译器识别,后者是被javadoc工具识别用来生成文档,使用@Deprecated注解标示方法过期,同时在方法注释中用@deprecated tag标示该方法已经过时
- @SuppressWarnnings,抑制编译器的警告,它有一个类型为String[]的成员,这个成员的值为被禁止的警告名