Java整理小結

Java跨平台的主要原因
Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

Java注释
文档注释

/**
 * 相关的注释内容,甚至可以使用 HTML 标签
 * 
 */

标识符的命名规范
* 只能包含数字、字母(大小写,Unicode字符)、下划线 _、美元符$
* 不能以数字开头

基本数据类型

  • 整数型:byte(-128-127)、short(15次方)、int(31次方)、long(63次方)
  • 浮点型:float(38次方)、double(308次方)
  • char
  • boolean:表示逻辑中的真和假,值只有 true / false。

变量
数据类型 变量名 = 值;
变量的生命周期在 {} 定义的范围内。

运算符
三目运算符

int age = 16;
String ageStr = age > 18 ? "成年" : "未成年";
System.out.println(ageStr); // 未成年

流程控制

  • 顺序结构
  • 判断(分支选择)结构
  • 循环结构

数组结构
定义语法

type[] 变量名; // 强烈建议用这种命名
type 变量名[]; // 只要知道就可以

数组的初始化
静态初始化

int[] arrs2;
arrs2 = new int[]{1, 2 ,3 ,4};

int[] arrs = {1, 2, 3, 4}; // 简写

动态初始化

type[] arrayName = new type[length];

类的定义

[修饰符] class 类名 {
    // 成员变量
    [修饰符] 数据类型 成员变量1;
    [修饰符] 数据类型 成员变量2;
    ...

    // 方法
    [修饰符] 返回值 方法名1([参数列表]) {
        方法体语句;
    }
    [修饰符] 返回值 方法名2([参数列表]) {
        方法体语句;
    }
    ...

    // 构造器:创建对象用的方法
    [修饰符] 类名([参数列表1]) {
        方法语句;
    }
    [修饰符] 类名([参数列表2]) {
        方法语句;
    }

}

类的三大部件:成员变量、方法、构造器。

封装
把成员变量隐藏起来,暴露方法来提供成员的修改和访问

Getter 和 Setter
把属性定义为 private 类型,即私有,向外部暴露其 get 和 set 方法。

构造器重载
如果需要在构造器中调用另外一个构造器,可以使用 this(params);

类的继承
继承是面向对象的三大特性之一,也是实现软件复用的重要手段。

[修饰符] class SubClass extends SuperClass {
  // 类定义部分
}

super限定
如果需要在子类中调用父类被覆盖的方法,可以使用super关键字。

调用父类的构造器
在子类的构造器中,无论如何在第一行语句中都会调用一次父类的构造器。
如果没有显式的调用,那么会调用父类的没有参数的构造器,如果父类没有定义空参数的构造器,则此时会无法编译。

instanceof运算符
instance运算符的前一个操作数一般是引用数据类型变量,后一个操作数是类名(接口),它是用于判断前面的对象是否是后面的类、或者其子类。如果是的话,返回true。

public class Client1 {
    public static void main(String[] args) {
        Animal tom = new Dog();
        Animal mimi = new Cat();

        Animal ani1 = new Animal();

        if (ani1 instanceof Dog) { // 此处ani1的数据类型为 Animal 所以运算的结果为 false
            Dog dog1 = (Dog) ani1;
            System.out.println(dog1.getAge());
        }

        if (tom instanceof Dog) { // 此处tom运行时数据类型为 Dog 所以运算的结果为 true,可以进行转换
            Dog dog2 = (Dog) tom; // 强制类型转换
            dog2.setAge(20);
            System.out.println(dog2.getAge());
        }

        tom.cry();
        mimi.cry();

    }
}

包装类
从引用数据类型转成基本数据类型,使用 对象.xxxxValue();

        int y = 10;
        Integer yi = new Integer(y);
        Integer yi2 = y;

        int y3 = yi.intValue();

        boolean b = false;
        Boolean bi = new Boolean(b);
        Boolean bi2 = b;

        boolean bi3 = bi2.booleanValue();

final 修饰符

  • 如果修饰类:则该类不会被继承(一般在开发中很少使用);
  • 如果修饰成员变量:一旦给成员变量赋值后就不允许修改其值,一般用在对常量的定义中。
  • 如果修饰方法:
public class Client1 {
    public static final String SCHOOL_NAME = "南通青鸟IT教育"; 
    public static void main(String[] args) {
        int r = 20;
        System.out.println(Math.PI * 2 * r);
//      Client1.SCHOOL_NAME = "青鸟IT教育"; // 错误代码,不能被修改
    }
}

方法的重载和重写
方法签名:只包含了方法名和参数列表
重写:发生在父类和子类之间,方法签名必须是一样的
重载:发生在本类中,方法名一样,但是参数列表不一样,重载可以是构造器的重载,也可以是方法的重载。

抽象方法和抽象类
抽象方法和抽象类都是使用 abstract 修饰的

最彻底的抽象类:接口
接口定义使用 interface 定义

  • 接口定义使用 interface 定义
  • 接口的命名规范同类的命名规范;
  • 在接口中,成员变量必须是静态的常量,方法必须是抽象方法,所以可以省略相关的修饰符。

接口的继承
接口的继承和类的继承不一样,接口支撑多继承

接口的使用
一个类是可以实现多个接口的,使用 implements 关键字,多个接口之间用逗号隔开。

集合框架
Collection 和 Map 两大接口。
在 Collection 中又分为 List (有序集合) 和 Set (无序集合)。List 和 Set 都是接口。
Map 存储的 Key-Value 结构。

List
插入元素:add()
遍历元素

  • 通过元素索引下标方式 for 循环
  • 通过 foreach 循环
  • 通过迭代器 Iterator

Map
获取某个 key 的 value
Value get(Key)

如何遍历 Map 结构

  • 获取 key 集合:map.keySet();
  • 遍历 Key 集合:iterator;
  • 获取 Value 值:get(key);

使用 Collections.sort(list) 进行排序
集合中的元素类要实现 Comparable 接口,重写 compareTo 方法;
调用 Collections.sort(list) 完成排序

常用类

Object
toString() :直接打印对象调用该方法,一般在类中重写(override)。
默认的 toString() 是打印类全名+hashcode
hashCode():返回该对象的哈希码值,内存地址。

String
charAt

replace

split

indexOf

substring

contains

日期 java.util.Date 和 Calendar
Date 和 SimpleDateFormat 的运用
Calendar 是更加先进的日期处理类

单例模式

所谓的单例模式,就是类只有一个对象,外部要使用该类的对象,通过调用一个类方法实现。

/**
 * 饱汉式单例模式
 * @author lzq31
 *
 */
public class Service2 {

    private static Service2 service = new Service2();

    private Service2() {

    }

    public static Service2 getInstance() {
        return service;
    }
}
/**
 * 饿汉式单例模式
 * @author lzq31
 *
 */
public class Service {

    private static Service service;

    private Service() {

    }

    public static Service getInstance() {
        if (null == service) {
            service = new Service();
        }
        return service;
    }
}

JDBC
1. 选择数据库:加载数据库驱动
2. 连接数据库
3. 创建数据库查询
4. 获取查询结果
5. 关闭查询和连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值