在学习了C和C++后决定学习java,这是部分笔记
内存分布:栈,堆,方法区 堆的分代:年轻代--Minor GC,年老代--Major GC,永久代--Full GC
垃圾回收算法:引用可达法,引用计数法(循环引用的无用对象无法识别回收)
内存泄露
例:拼接大量字符串的时候,应该使用StringBuilder而不是String
静态集合类(hashmap,vector,list等)的使用
各种连接对象(io流对象,数据库连接对象,网络连接对象)
对JVM调优的过程中,很大一部分工作就是对于Full GC的调节
System.gc()的作用只是提醒虚拟机调优,程序员无权主动调优,取决于虚拟机
问题:
1.垃圾回收过程一般分为两步,是哪两步?
2.垃圾回收常见的两种算法是什么?
3.堆内存划分成:年轻代、年老代、永久代。垃圾回收器划分成:Minor Gc、Major GcFull GC。这三种垃圾收回器都对应哪些区域?
4. 对 JM 调优的过程中,很大一部分工作就是对于 Fu GC 的调节。这句话对吗?
5.System.gc()的作用是什么?
this是当前对象的地址:见two.java
构造器调另一个构造器:见two.java
this不能用于Static方法中(static中不能访问this)
static成员变量只有一份,所有对象公用
static方法中不能访问非static成员
一般用“类名.变量名/方法”来调用
JDK中的主要包: java.lang 包含一些 Java 语言的核心类,如 String、Math、Integer、System 和 Thread。
java.awt 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
java.net 包含执行与网络相关的操作的类。
java.io 包含能提供多种输入/输出功能的类。
java.util 包含一些实用类工具如定义系统特性、使用与日期日历相关的函数。
导入同名类: import java.util.*;//导入该包下所有的类。会降低编译速度,但不会降低运行速度。
继承、封装、多态
继承:extends
父类也称作超类、基类。
子类:派生类等。
Java 中只有单继承,没有像 C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。
Java 中类没有多继承,接口有多继承。
子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不见4得可以直接访问(比如,父类私有的属性和方法)。
如果定义一个类时,没有调extends时,它的父类是:java.lang.object
instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回 true;否则,返回 false。
override重写:
子类重写父类的方法,可以用自身行为换父类行为。重写是实现多态的必要条件。方法重写需要符合下面的三个要点:
方法名、形参列表相同
返回值类型和声明异常类型,子类小于等于父类。
访问权限,子类大于等于父类。
重要:博客搜java错误: 无法从静态上下文中引用非静态 变量 this
初学者写java的时候一不小心就遇到 错误: 无法从静态上下文中引用非静态 变量 this 这样的小报错
首先 我们需要了解静态(static)方法和变量的特性;
关于这个问题是因为大家没有理解和记住这句话:静态方法中不能引用非静态变量!
怎样理解这句话呢?
我们知道 静态方法可以通过所在类直接调用而不需要实例化对象,非静态成员变量则是一个对象的属性
它只有在有实例化对象时才存在的,所以在静态方法中是不可以调用静态变量的!
如果发生调用,则编译器会报出如上的错误。
final:可以修饰变量和方法
修饰方法电话不可以被子类重写
修饰的类不能被继承
组合
组合就是在其他类里面实例化其他的类
继承,组合:
对于“is -a”关系建议使用继承“has-a”关系建议使用组合。
比如:上面的例子,Student is a Person 这个逻辑没问题,但是:Student has a Person就有问题了。这时候,显然继承关系比较合适。
再比如:笔记本和芯片的关系显然是“has-a”关系,使用组合更好。
问题:1.面向对象的三大特征是什么?
2.继承的两个主要作用是什么?
3.JAVA 中实现继承是哪个关键词?
4.JAVA 中的类继承,是单继承还是多继承?JAVA 中其他地方有多继承吗?5.子类继承父类可以获得除父类构造方法之外的所有,但不见得都能使用。找现实中的例子打比喻描述这个现象。
6.定义类时,没有使用 extends,他的父类是什么?
7.完成课堂中,Person、Student 继承关系的代码测试,
8.完成课堂中,Person、Student 组合关系的代码测试
9.组合和继承的关系如何理解?
10.完成课堂中,方法重写的测试
11.方法重写和方法重载什么区别?
12.final关键字修饰变量、方法、类,都分别代表什么含义?
1836

被折叠的 条评论
为什么被折叠?



