重拾计算机知识、java俩月来,发现自己底子好薄,好多东西知道但理解不深,这样不好-容易膈着腚疼。
java回收垃圾: system.gc();对象指null。
析构方法平时可以被调用,但类不会被销毁,也不会有任何效果。
变量为定义可以在for等结构中复用:
public static void main(String[] args) {
for(int i=0; i <1;i++){}
for(int i=0; i <1;i++){}
}
传值,传递的是值得拷贝,传递后互不相关了。
传引用,是值得引用,也就是传递前后指向同一块内存。
java中只有基本类型和双引号定义的String是按值传递。
初始化子类前先初始化父类
构造方法不能被继承,许多情况下使用默认的构造方法对父类进行初始化
可以super来显示调用父类的构造方法,super/this必须在构造方法第一行
new谁就掉谁的方法,但编译时看那数据类型,运行时看new的实际对象类型
Parent e = new Childern() e不可以调用children私用的东西,编译会报错
覆盖方法,权限不允许缩小。
一个类中,一个static变量只会有一个内存空间,多个实例共享同一个static
static的变量是在类装载的时候被初始化的,无论你用不用他
静态方法:
可以直接用类名调用,不需要new实例
只能访问静态属性
不能直接调用非静态方法
不存在当前对象,因而没this/super
静态不能被非静态覆盖
构造方法不能被声明为static
堆内存用来存放由new创建的对象与数组
数组占用连续的地址空间,数组一旦被创建,不能改变长度
java内存分配:
方法区:基本信息;运行时常量池;字段信息;方法信息;静态变量
栈内存:以帧形式存放本地方法调用
堆内存:new对象与数组
$ _ 字母 三类可做变量首字母
unicode 16位 4个16进制数字 “龙”9F99
hashcode true 1231 false1237
八进制0开头 0x十六进制
ipv4 32位 分成4个每个8位 最大256,也就是一般是4个十进制数字标示
ipv6 128位 表达形式一般采用32个十六进制数然后4个一组,看起来和ipv4蛮像的
修饰符作用域:
| 同类中 | 同包中 | 不同包自类 | 任何位置 | |
| private | √ | |||
| 无修饰符 | √ | √ | ||
| protect | √ | √ | √ | |
| public | √ | √ | √ | √ |
类的修饰符只有public/无修饰符,方法四类都有
参数变量和局部变量直到程序调理该方法/方法结束
java变量的范围:
| 类 | 对象实例级 | 方法 | 块级 |
| static | 属性变量 | 局部变量 |
浙公网安备 33010602011771号