美文网首页
学习 Spring 时碰到的 Java 知识点

学习 Spring 时碰到的 Java 知识点

作者: SongLiang | 来源:发表于2017-11-04 15:13 被阅读0次

mysql 启动

http://www.jianshu.com/p/d1957a0e4e03

alias mysql = /usr/local/mysql/bin/mysql
alias mysqladmin = /usr/local/mysql/bin/mysqladmin

mysql admin -u root -p password newpass --newpass 为新密码
mysql -u root -p

Java final 修饰符的作用

在 Java 中,我们有时会使用final对变量进行修饰,被修饰的变量只能够被赋值一次。如果final变量是引用类型,则它将永远持有相同的对象的引用;如果是简单类型,则它会拥有着不变的值。
那么,final变量就是我们所说的常量吗?事实上不是的,因为一个被final修饰的变量,虽然只能被赋值一次,但是如果它为引用类型的变量,那么它所指向的对象则可能改变。

  • final 的变量的值不能够被改变
    final 的成员变量
    final 的局部变量(形参)
  • final 的方法不能够被重写
  • final 的类不能够被挤成

注解 @Override

@Override
public String toString() {
     return "xxxxx";
}

上面的代码中,重写了toString()方法并使用了@Override注解。但是,即使不使用@Override注解标记代码,程序也能够正常执行。

那么,该注解表示什么?这么写有什么好处吗?

事实上,@Override告诉编译器这个方法是一个重写方法(描述方法的元数据),如果父类中不存在该方法,编译器便会报错,提示该方法没有重写父类中的方法。

注解 @Repository

用于标注数据访问组建,即 DAO 组件。

注解

基本数据类型

4类8种

  • 布尔
    boolean
  • 字符
    char (2字节)
  • 整数类型
    byte (1 字节 -128~127)
    short (2 字节)
    int (4 字节)
    long (8 字节)
  • 浮点数
    float(4字节)
    double(8字节)

tips:

  • Java 中没有无符号类型的值
  • Java 语言中的整型常量默认为 int 型,声明 long 型常量可以后加 ‘l’ 或 ‘L’,如:
  • 看到一个整数,就会被当成 int 类型。看到一个小数,就会被当成 float 类型。
int i = 600; // 正确
long l = 88888888888L; //必须加 l 否则会出错

例子

class Main {
    public static void main(String[] args) {
        // boolean b1 = true;
        int i = 1, j;
        float f1 = 0.1f; // 或者写成 (float)0.1, 这两者是有区别的,0.1f 表示把 double 类型的 0.1 转成 float 存在计算机中,0.1f 本身就是一个
        float f2 = 123; //
        long l1 = 12345678;
        long l2 = 88888888888888l;
        double d1 = 2e20;
        double d2 = 124;
        byte b1 = 1;
        byte b2 = 2;
        byte b3 = 125;
        // j = j + 10;
        i = i / 10;
        i = (int)(i * 0.1); // i * 0.1 是 double,必须转成 int
        char c1 = 'a';
        char c2 = 125;
        byte b = (byte)(b1 - b2); // 错误 首先转换成 int 进行计算
        char c = (char)(c1 + c2 - 1); // 错误 计算时,首先会转换成为 int ,最后转成 char
        float f3 = f1 + f2;
        float f4 = (float)(f1 + f2 * 0.1); // 0.1 是 double,先转成 double 计算
        // double d = d1 * i + j;
        float f = (float)(d1 * 5 + d2);// double 转成 float 要用强制转换符

        System.out.println("test");
    }
}

break 、 continue 、switch

break 语句用语终止某个语句块的执行。用在循环语句体中,可以强行退出循环;
例如:

  • break
public class Test {
    public static void main(String[] args) {
        int stop = 4;
        for (int i = 1; i <= 10; i++) {
            if (i == stop) {
                break;
            }
            System.out.println(" i= " + i);
        }
    }
}
  • switch
    没有写 break,就会造成 case 穿透。
public class TestSwitch {
    public static void main(String[] args) {
        int i = 13;
        switch(i) { // java 这里面只能探测 int 类型e的数据
            // char short byte 都可以,他们都可以转化成为 int 类型的数据
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            case 3:
                System.out.println("3");
                break;
            default:
                System.out.println("error");
        }
    }
}

方法的本质是什么?

增强我们代码的复用性。

首先定义类,才能有对象

为什么用对象

对象都有对外服务的接口(通过继承可以复用)
对象隐藏内部服务的实现(通过聚合可以复用)

成员变量与局部变量的区别

在定义成员变量时可以对其进行初始化,如果不对其初始化,Java 使用默认的值对其初始化。
而局部变量如果不初始化,就会出问题。

引用类型与基础类型

基础类型在内存中就占一块区域,除基础类型之外的都是引用类型,在内存区域中占两块内存。

约定俗称的命名规则

  • 类名首字母应该大些
  • 变量名和方法名的首字母应该小写
  • 运用驼峰标识

构造方法的重载

构造函数也可以被重载,可以增加构造过程的灵活性。

遇到复杂表达式时,从里向外分解

链式调用

在栈内存中会连续生成多个临时引用

static 关键字

  • 在类中,用 static 声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static 成员变量只有一份。
  • 用 static 声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在 static 方法中不可访问非 static 的成员。
    -- 静态方法不再是针对于某个对象调用,所以不能访问非静态成员
  • 可以通过对象引用或类名(不需要实例化)访问静态成员。

方法的重写

  • 在子类中可以根据需要对从基类中继承来的方法进行重写。
  • 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
  • 重写方法不能使用比被重写方法更严格的访问权限。

继承中的构造方法

  • 子类的构造的过程中必须调用其基类的构造方法
  • 子类可以在自己的构造方法中使用 super(argument_list) 调用基类的构造方法。
    使用this(argument_list)调用本类的另外的构造方法。
    如果调用 super,必须写在子类构造方法的第一行。
  • 如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用基类无参数的构造方法。
  • 如果子类构造方法中既没有显示调用基类构造方法,而基类中又没有无参的构造方法,则编译出错。

对象转型(casting)

  • 一个基类的引用类型变量可以“指向”其子类的对象。
  • 一个基类的引用不可以访问其子类对象新增的成员(属性和方法)
  • 可以使用引用变量 instanceof 类名来判断该引用类型变量所“指向”的对象是否属于该类或该类的子类。
  • 子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting)

interface

  • 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
    举例子:
public interface Runner {
    public static final int id = 1;

    public void start();
    public void run();
    public void stop();
}

异常

Throwable:

  • Error (系统错误,虚拟机出错,不可处理,不用处理
  • Exception: 其中包括 RuntimeException (Exception 可以处理,(另一类是必须得逮住的 Exception,比如 IOException)

相关文章

网友评论

      本文标题:学习 Spring 时碰到的 Java 知识点

      本文链接:https://www.haomeiwen.com/subject/uxxouxtx.html