Java学习笔记
- 类名要与文件名相同
- private成员只能被类中成员访问
- protect成员能够被继承类继承
- 缺省类型成员为所在包的类都能访问(friendly)
- 上传(upcast):把派生类当做基类来用
- abstract:创建抽象类,这个方法没有实现,abstract方法只能存在于abstract类中
- interface把接口与实现分离,可以继承多个接口,但不能继承多个类
- 锁定对象内存通过synchronized
- BigInteger表示任意精度的整数;BigDecimal支持任意精度定点数字
- static声明用于不必创建对象的前提下调用的方法
- Java中可以将一个数组赋给另一个数组
- 如果想利用新类内部一个现有类的特性,而不想使用其接口,通常应选择合成
- 有抽象方法的类必须是抽象类;基础类为抽象类时,只有派生类对基础类里的所有抽象方法进行重定义,否则必须为抽象类
- 若要多继承,当继承中有一个为非接口时,其他元素必须为接口
- 所有static、final即编译期常数命名为全部大写,由”_”分隔
- Interface具有static、final属性;final参数在运行期间不能改变其值;final方法不可重写、覆写;final类禁止继承
- 构造器遵照的顺序: a.先调用基础类构建器,再调用衍生类 b.按声明顺序调用成员初始化模块 c.调用衍生构建器的主体
- Java提供四种集合类:Vector(矢量)\BitSet(位集)\Stack(堆栈)\Hashtable(散列表)
- 新集合:Collections/List
- 为了减少服务器延时,使其最小化:
减轻处理任务的负载,通常是分散给客户端处理
使用”中间件”将负载分散给服务器端的其它机器 - static变量-分配存储空间;static方法-不与对象关联,没有创建对象也可使用
- 移位操作:
左移位:右侧加0
有符号右移:正数-补0;负数-补1
无符号右移:高位补0 - 扩展类型转换:int->long无需显示转换;窄化类型转换:long->int需显式转换
执行按位运算或算术运算时,比int小的如:char/Byte/short等转化为int,最终生成的结果为int;混合赋值时,不需要显式的转化,如:
1
2
3char a = 'a';
char b = 'b';
b+=c;(b=b+c会报错应改为b=(char)(b+c))长度长的数据显示转化为长度短的数据,从低位开始截取相应的位数长度的数据
- 判断语句中进行判断的必须为true或false
- 标签作用的唯一地方是迭代语句之前,只有在循环嵌套时才能使用标签
- 浮点型->整型去除小数点后的数值
- 设计了自己的构造器后,缺省构造器变为无效
- 静态方法中不能调用非静态方法
- 构造派生类时必须先构造基类,当基类存在自己写的构造器时,派生类必须存在自己的构造器调用super构造基类
- 除非是在”宿主类(outer class)”的非static方法中,否则无论你在哪里创建内部类的对象,都必须用OuterClassName.InnerClassName的形式表示这个对象类型
- JavaDoc默认提取public方法或属性前的注释
- 在匿名方法中或内部类中被使用的参数必须是final
内部类会自动获得访问其宿主类成员的权限.
static内部类:
1. 不需要宿主类对象就能创建内部类对象
2. 不能在其对象里面访问非static的宿主对象普通的内部类不能有static数据和static属性,也不能包含嵌套类;嵌套类可以
通过OuterClassName\InnerClassName的方式准确说继承的内部类,缺省构造器会报错,应通过宿主类引用调用super构造内部类
- 类中方法返回值类型不可少,无返回值为void
- 局部变量在栈中,成员变量在堆中,Java采用值传递
- jdbc<协议名>:oracle(种类)<子协议名: >:thin(连接方式):@10.166.15.102<机器名:服务IP>:1521<端口>:orcl<数据库名称>
- for-each:逐个遍历数组或集合中的所有元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21for(int k<迭代变量声明>:a<数组或集合>)
{
k=a[0]或a[1].....
}
```
41. 栈内存:基本类型变量,引用类型;堆内存:对象,对象的属性值
42. 数组对象一经创建,进行隐式初始化
43. 继承->复用性;多态->可扩展性\可维护性\
44. 方法中不能定义static变量
45. 接口与抽象类:
-相同点:-
*都不能实例化*
*都有抽象方法*
*都可以作为一个架构*
-不同点:-
*抽象类有具体方法,接口没有*
*抽象类单继承,接口多继承*
*接口没有属性*
46. protect变量在子类中可以直接使用,而private变量只能通过父类的getter和setter方法使用
47. static初始块如下所示,可以对静态方法等初始化,在加载类时调用
class XXX {
static {
}
}`
- 子类存在和父类相同签名的方法为重写
- Javadoc注释文本只识别以/*…/注释的内容
- 多态:同一种事物,由于条件不同,产生结果也不同;同一个引用类型,使用不同实例而执行不同操作
- throws声明方法可能抛出的异常,通过throw手动抛出的异常只能为声明的异常,但运行出错抛的异常可以接收到
- static方法,即使创建类对象为null时亦可以调用成功
- Java整数二进制表示.Java二进制数采用补码形式表示
正或负 | 二进制->十进制 | 十进制转二进制 |
---|---|---|
正 | 累加求和 | 除2取余 |
负 | 减1->逐位取反->转换为十进制正数->乘-1 | 取绝对值->转换二进制->逐位取反->加1 |