(线程)Java有几种方法创建线程执行任务
1.单继承Thread,
2.实现Runnable接口 (匿名内部类)
3.Callable接口
4.线程池
3种循环:
while;do-while;for
3种跳出循环
break return continue
三大特性之一:继承
子类会自动获得父类的功能
子类会获得父类的public类型的实例变量和方法,但不会继承父类所有private类型的变量和方法。
继承下来的方法可以被覆盖掉,但实例变量不会被覆盖。
对象本身已知的事物叫做实例变量
任何变量只要加上public、static、final就会变成全局变量取用的常数。
Java“拾荒”机制:
在创建对象时,无论什么情况都会被存放在名为“堆”的内存区域;并非普通堆,是可回收垃圾的堆。
八种数据类型
byte(位) short(短整数) int(整数) long(长整数) float(单精度浮动数) double(双精度) boolean() char(字符)
-128~127 -32768~32767
当对象被JVM察觉到不再使用,就会被标记为可回收。如果内存不足,就会被清理、回收空间。
封装: 将实例变量标记为Private,将getter和setter标记为Public
局部变量:定义在方法内部,或者作为方法的参数 内存:存放stack栈区
全局变量:定义在方法的外部,类的内部 =>引申作用域 a.(static关键字)静态成员变量:存放于常量区、静态区。 b.普通成员变量:存放于heap堆区
局部变量在使用前必须初始化!
ArrayList是一个集合 和 LinkedList区别
底层数据结构不同,arraylist基于数组,linkedlist基于链表。
适用的场景不同,前者更适合查找,后者更适CRUD。时间复杂度不同。
两者都实现List接口,但是LinkedList额外实现Deque接口,所有LinkedList可以当队列来使用。
==只是用来比对两个变量的字节组合,比较的是引用地址。
equals()判断两个对象在意义上是否相等。String类重写equals()方法,内部比较字符串中间的各个字符是否全部相等。
重载和多态毫无关系,重载的方法和覆盖方法不一样。
编译器不会让你初始化抽象类。
非抽象类不能包含抽象方法;抽象类可以有普通方法。 用abstract
实例变量是在堆上,局部变量是在栈上。当局部变量所处的方法被执行结束时,局部变量就会被回收。(生命周期)