Java中的枚举类enum
枚举类和普通类的区别:
使用 enum 定义的枚举类默认继承了 java.lang.Enum 类
枚举类的构造器只能使用 private 访问控制符
枚举类的所有实例必须在枚举类中显式列出(用 ‘,’ 分隔,’;’ 结尾 ),系统会自动为列出的实例添加 public static final 修饰;
所有枚举类都提供一个 values 方法,该方法可以很方便地遍历所有的枚举值;
枚举类中的每个枚举,都是单例模式的。
JDK 1.5 中可以在 switch 表达式中使用枚举类的对象作为表达式,case 子句可以直接使用枚举值的名字,无需添加枚举类作为限定。
若枚举类只有一个成员,则可以作为一种单子模式的实现方式。
123456789101112131415161718enum Season { SPRING("春天", "春暖花开"), SUMMER("夏天", "炎炎夏日"), AUTUMN("秋天", "秋高气爽"), WIN ...
Java中的泛型
1. 泛型类1class Generic<T> {...}
2. 泛型接口1interface Generic<T> {...}
如果类中不确定接口中的泛型,那么类也要定义为泛型类。
3. 泛型方法123456789101112131415161718class Generic { // 无返回值的泛型方法 public <T> void test1(T s) { T t = s; } // 有返回值的泛型方法 public <T> T test2(T s) { return s; } // 无返回值的可变参数泛型方法 public <T> void test3(T... strs) { for(T s: strs) { System.out.println(s); } & ...
Java中的异常处理
捕获错误最理想的是在编译期间,但有的错误只有运行时才会发生。
对于这些错误,一般有两种解决方法:
遇到错误就终止程序运行;
由程序员在编写程序时,就考虑到错误的检测、错误消息的提示以及错误的处理。
1. 异常事件的分类Java 程序运行过程中所发生的异常事件可分类两类:
Error:JVM系统内部错误、资源耗尽的严重情况;
Exception:其他因编程错误或偶然的外在因素导致的一般性问题,例如:
空指针访问
试图读取不存在的文件
网络连接中断
2. 异常类层次
3. 异常处理机制
在编写程序时,经常要在可能出现错误的地方加上检测代码。如进行 x/y 运算时,要检测分母为 0,数据为空,输入的不是数字而是字符等。过多的分支会导致程序的代码过长,可读性差,因此采用异常机制。
Java 采用异常处理机制,将异常处理的程序代码集中在一起,与正常的程序代码分开,使得程序简洁,并易于维护。
Java 提供的是异常处理的抓抛模型。
Java 程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给 Java 运行时系统,这个过程称为抛出(throw)异常。
如果 ...
JDBC笔记
1. MySQL补充笔记123456show databases; # 显示所有数据库select database(); # 显示当前使用的数据库show tables; # 显示当前数据库中的所有表desc 表名; # 显示表的信息rename table 原表名 to 新表名; # 修改表名select * from t_user limit [行数偏移量,] 行数; # 行数偏移量从 0 开始,用于分页查询
2. JDBC笔记2.1. 查询数据库全部内容 代码示例
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051public static void selectAll() { Connection con = null; Statement stmt = null; ResultSet rs = null; try { // 1. 注册数据库驱动 Class.forNam ...
JavaBean
JavaBean指符合如下标准的 Java 类:
类是公共的;
有一个无参的公共构造器;
有属性,属性一般私有,且有对应的 get(),set() 方法
Java中的注释
1. 单行注释//
2. 多行注释 /*…*/
3. 文档注释(java特有)以 /* 开始,以 /结束。
Java 文档注释
Java中的工厂方法(FactoryMethod)
FactoryMethod 模式是设计模式中应用最为广泛的模式。
在面向对象编程中,对象的创建工作非常简单,但对象创建的时机却很重要。
FactoryMethod 解决的就是这个问题。
FactoryMethod 通过面向对象的手法,将所要创建具体对象的创建工作延迟到了子类,从而提供了一种扩展的策略,较好的解决了这种紧耦合的关系。
工厂方法举例
开发人员1:橙色框;
开发人员2:紫色框。
理解:开发人1 提供一个固定的制造汽车的接口,此接口永远不变。需要更改内容的的时候,只修改内容、与内容和接口之间的衔接,不对开发人员2的代码造成任何影响。
Java中main()方法参数
Java中的main()方法
1234public class HelloWorld { public static void main(String[] args) { }}
在命令行下执行 Java 的 Class 时,此参数接收一个参数列表,形式为
1$ java ClassName arg1 arg2 arg3 ...
Java中的Inner Class(内部类)
1. 什么是内部类
在 Java 中,允许一个类的定义位于另一个类内部,前者称为内部类,后者称为外部类。
内部类的作用:主要解决 Java 不能多重继承的问题。
Inner Class 一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称。
Inner Class 的名字不能与包含它的类相同。
Inner Class 可以使用外部类的私有数据,因为他是外部类的成员,同一个类的成员之间可以相互访问。而外部类要访问内部类的成员需要 内部类.成员 或 内部类对象.成员。
2. 内部类的分类
成员内部类(static 成员内部类和非 static 成员内部类)
局部内部类(不谈修饰符)
匿名内部类
3. Inner Class 作为类的成员
可以声明为 final;
和外部类不同,可以声明为 private 和 protected;
Inner Class 可以声明为 static 的,但此时就不能再使用外层类的非 static 成员变量。
4. Inner Class 作为类可以声明为 abstract 类,因此可以被其他内部类继承。
非 static 的内部类中的成员不 ...
Java中的初始化块
1. 初始化块(代码块)的作用对 Java 对象进行初始化。
2. 程序的执行顺序
声明成员变量的默认值;
显式初始化,多个初始化块被一次执行(先static代码块后普通代码块,同级别下按先后顺序执行)。
构造器再对成员进行赋值操作。
3. 非静态代码块和静态代码块3.1. 非静态代码块 非静态代码块没有 static 修饰。
123{ // statements}
可以有输出语句;
可以对类的静态和非静态属性声明进行初始化操作;
可以调用静态和非静态的属性或方法;
若有多个非静态的代码块,按照从上到下的顺序依次执行;
每次创建对象,都会执行一次;
先于构造器执行。
3.2. 静态代码块静态代码块有 static 修饰。
123static { // statements}
可以有输出语句;
可以对类的静态属性声明进行初始化操作;
可以调用静态的属性或方法;
多有多个静态代码块,按照从上到下的顺序依次执行;
静态代码块只执行一次;
先于非静态代码块执行。
static 代码块多用于对 static 属性进行初始化。
4. ...