静态导入:
通过静态导入可以在使用一个类型静态成员的时候,不
用书写类名,直接使用静态成员即可
以前统一声明常量时,很多人选择在一个接口中声明许多静态常量,接口的用途是约定实现类有什么功能,
用来声明常量显然不合理,现在可以统一在一个类中声明静态常量,并且在需要的地方使用静态导入
注意:静态导入会降低程序的可读性,不要过多使用!
可变长参数:
可变长参数其本质实际上就是数组,但比定义数组更加灵活
一个方法中最多有一个可变长参数
可变长参数必须作为方法的最后一个参数
格式化输出语句 System.out.printf()
String的静态方法:static String format(String format, Object… args)可以用来生成一个字符串,
这个方法的用法和printf一模一样,printf显然在程序中毫无用途,String.format方法才是非常实用的,
尤其在拼装字符串时
java.util.Scanner
不要关闭Scanner,如关闭了,则System.in也关闭了
当调用nextInt()等方法时如果抛出异常(InputMismatchException),
则这个Scanner对象不可以再继续使用,必须重新创建一个。
枚举类型:
一个类所创建的对象个数是固定的
枚举本质上还是类
enum关键字
enum Season {
SPRING,
SUMMER,
AUTUMN,
WINTER
}
枚举类型的父类 java.lang.Enum
.ordinal():获得枚举元素的索引值,默认从0开始
极重要的一个静态方法,valueOf,可以用字符串来找到对应枚举对象。
枚举类型可以定义属性,并提供相应的方法
枚举类型有构造方法 但只能是私有的
枚举类型可以显示提供构造方法
枚举不能够继承
枚举类型默认是final修饰符修饰,也是不能被别的类继承
枚举可以提供抽象方法
枚举支持switch case语句(java7中字符串也支持)
枚举是绝对的单例,绝不会出现多个实例,即使反序列化都无法创建多个实例,
用枚举来做单例非常简单直接且好用。
只有构造方法私有化,才能实现单实例
注解:
@override 注解表示子类重写了父类继承过来的方法,
仅仅是一种检查机制,加了Override注解,那么这个方法就必须重写
给程序员看的是注释(单行注释、多行注释、doc注释)
@注解名
JDK中提供的注解
@Override//方法重写
@Deprecated //该方法已经废弃,过期,暂时还能用,但是不推荐使用,不保证以后的版本还有这个方法。
@SupperessWarnings //去除警告信息
注解的分类:
来源分类:JDK自带注解,第三方注解,自定义注解
运行机制分类:代码级别注解,类级别注解,运行时注解
注解的分类:标记注解,单值注解,多值/普通注解
元注解:Target/Retention/Documented/Inherited
@Target:限定注解的使用目标
@Retention:注解信息的保存级别是运行时
@Inherited:注解能否被继承
@Documented:该注解是否生成帮助文档
注解的父类 java.lang.annotation.Annotation
自定义注解
public @interface 注解名
public @interface Test
@Retention
指明注解信息的保存时间
enum RetentionPolicy
SOURCE:注解信息只保存在源程序中,在类文件中不保存
CLASS (Default):注解信息保存在类文件中,程序运行时不能通过反射找到
RUNTIME:注解保存在类文件中,程序运行时通过反射API可以找到
注解属性的类型共有24种:
基本类型, String, Class, enums, annotations, 以及它们的数组
JavaSE ,JavaEE,JavaME的区别:
Java SE(Java Platform,Standard Edition)。Java SE 称为 J2SE。它允许开发和部署在桌面、服务器、
嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并
为 Java Platform,Enterprise Edition(Java EE)提供基础。Java EE(Java Platform,Enterprise Edition)。Java EE称为 J2EE。企业版本帮助开发和部署可移植、健壮、
可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、
管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)
和 Web 2.0 应用程序。- Java ME(Java Platform,Micro Edition)。Java ME称为 J2ME。Java ME 为在移动设备和嵌入式设备
(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的
用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。
基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
说得更简单点:
Java SE 是做电脑上运行的软件。
Java EE 是企业及开发,最多的应该是web开发-
Java ME 是做手机软件的。