堆和栈

变量以及方法调用的生存空间在stack里,对象的生存空间在heap里,而变量也有很多种类,其实这里说的变量都在stack里是不对的,比如实例变量,假如对一个类进行实例化,就会在heap上分配存储空间给对象,但是要分配多少空间,取决于该对象所有的实例变量,因此实例变量生存空间是在对象所在的heap空间上

局部变量:stack上,本身又被称为栈变量

实例变量:heap上,上面已经说了

方法:stack[……]

Read more

类成员变量和类变量

一般习惯称为实例变量和类变量,也有习惯叫实例变量和静态变量,总之几种变量类型比较简单,但是叫法各色各样

成员变量最常见,类中独立声明的变量,不在方法之内,而且没有static来修饰

类变量,也是在类中独立声明的变量,不在方法之内,但是有static来修饰

局部变量,这个意思比较大众化,类中方法内部声明的变量

它们之间的异同点还是不少,最大的差异就是实例变量是属于某个对象的属性,必须创建了实例化对象[……]

Read more

封装

封装十分有用,可以将一些数据信息封装起来,或者隐藏,或者做一些额外的限制操作,而这部分的行为都在内部来进行,对外只保留了适当的接口来提供调用,而类内部的各种信息可以自动修改达到很轻松可控的效果

有一个简单的Girl类

class Girl {
    public String name;
    public int age;
    public int id;
}

类有三个成员变量,分别[……]

Read more

Javacomplete

听这名字就知道应该是有关java的vim插件,YouComplete对于C,C++,python支持得赏心悦目,作为vim脑残粉,Java的插件也想试试

具体流程和YouComplete类似

1:安装插件,可以直接githup上clone

https://github.com/artur-shaik/vim-javacomplete2

也可以通过Vundle来安装,一般来说推荐这种方法

在.v[……]

Read more

接口Interface

Java里无法多重继承,和Python不同,子类是无法同时从多个父类那里来继承方法和属性的,而提供了另一种方式,接口interface,来实现类似的行为,简单来说,接口可以看做是一系列方法声明的集合,这里只有声明没有实现,就和抽象方法一样,没有函数体,理论上还可以包含有成员变量,这里必须是不可变常量,说得太多,直接看个具体的

interface Book {
    void chinese()[......]

Read more