20161103-Java-2013学习笔记整理

Java学习笔记

  1. 类名要与文件名相同
  2. private成员只能被类中成员访问
  3. protect成员能够被继承类继承
  4. 缺省类型成员为所在包的类都能访问(friendly)
  5. 上传(upcast):把派生类当做基类来用
  6. abstract:创建抽象类,这个方法没有实现,abstract方法只能存在于abstract类中
  7. interface把接口与实现分离,可以继承多个接口,但不能继承多个类
  8. 锁定对象内存通过synchronized
  9. BigInteger表示任意精度的整数;BigDecimal支持任意精度定点数字
  10. static声明用于不必创建对象的前提下调用的方法
  11. Java中可以将一个数组赋给另一个数组
  12. 如果想利用新类内部一个现有类的特性,而不想使用其接口,通常应选择合成
  13. 有抽象方法的类必须是抽象类;基础类为抽象类时,只有派生类对基础类里的所有抽象方法进行重定义,否则必须为抽象类
  14. 若要多继承,当继承中有一个为非接口时,其他元素必须为接口
  15. 所有static、final即编译期常数命名为全部大写,由”_”分隔
  16. Interface具有static、final属性;final参数在运行期间不能改变其值;final方法不可重写、覆写;final类禁止继承
  17. 构造器遵照的顺序: a.先调用基础类构建器,再调用衍生类 b.按声明顺序调用成员初始化模块 c.调用衍生构建器的主体
  18. Java提供四种集合类:Vector(矢量)\BitSet(位集)\Stack(堆栈)\Hashtable(散列表)
  19. 新集合:Collections/List
  20. 为了减少服务器延时,使其最小化:
    减轻处理任务的负载,通常是分散给客户端处理
    使用”中间件”将负载分散给服务器端的其它机器
  21. static变量-分配存储空间;static方法-不与对象关联,没有创建对象也可使用
  22. 移位操作:
    左移位:右侧加0
    有符号右移:正数-补0;负数-补1
    无符号右移:高位补0
  23. 扩展类型转换:int->long无需显示转换;窄化类型转换:long->int需显式转换
  24. 执行按位运算或算术运算时,比int小的如:char/Byte/short等转化为int,最终生成的结果为int;混合赋值时,不需要显式的转化,如:

    1
    2
    3
    char a = 'a';
    char b = 'b';
    b+=c;(b=b+c会报错应改为b=(char)(b+c))
  25. 长度长的数据显示转化为长度短的数据,从低位开始截取相应的位数长度的数据

  26. 判断语句中进行判断的必须为true或false
  27. 标签作用的唯一地方是迭代语句之前,只有在循环嵌套时才能使用标签
  28. 浮点型->整型去除小数点后的数值
  29. 设计了自己的构造器后,缺省构造器变为无效
  30. 静态方法中不能调用非静态方法
  31. 构造派生类时必须先构造基类,当基类存在自己写的构造器时,派生类必须存在自己的构造器调用super构造基类
  32. 除非是在”宿主类(outer class)”的非static方法中,否则无论你在哪里创建内部类的对象,都必须用OuterClassName.InnerClassName的形式表示这个对象类型
  33. JavaDoc默认提取public方法或属性前的注释
  34. 在匿名方法中或内部类中被使用的参数必须是final
  35. 内部类会自动获得访问其宿主类成员的权限.
    static内部类:
    1. 不需要宿主类对象就能创建内部类对象
    2. 不能在其对象里面访问非static的宿主对象

    普通的内部类不能有static数据和static属性,也不能包含嵌套类;嵌套类可以

  36. 通过OuterClassName\InnerClassName的方式准确说继承的内部类,缺省构造器会报错,应通过宿主类引用调用super构造内部类

  37. 类中方法返回值类型不可少,无返回值为void
  38. 局部变量在栈中,成员变量在堆中,Java采用值传递
  39. jdbc<协议名>:oracle(种类)<子协议名: >:thin(连接方式):@10.166.15.102<机器名:服务IP>:1521<端口>:orcl<数据库名称>
  40. for-each:逐个遍历数组或集合中的所有元素
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    for(int k<迭代变量声明>:a<数组或集合>)
    {
    k=a[0]或a[1].....
    }
    ```

    41. 栈内存:基本类型变量,引用类型;堆内存:对象,对象的属性值
    42. 数组对象一经创建,进行隐式初始化
    43. 继承->复用性;多态->可扩展性\可维护性\
    44. 方法中不能定义static变量
    45. 接口与抽象类:
    -相同点:-
    *都不能实例化*
    *都有抽象方法*
    *都可以作为一个架构*
    -不同点:-
    *抽象类有具体方法,接口没有*
    *抽象类单继承,接口多继承*
    *接口没有属性*
    46. protect变量在子类中可以直接使用,而private变量只能通过父类的getter和setter方法使用
    47. static初始块如下所示,可以对静态方法等初始化,在加载类时调用

class XXX {
static {

}

}
`

  1. 子类存在和父类相同签名的方法为重写
  2. Javadoc注释文本只识别以/*/注释的内容
  3. 多态:同一种事物,由于条件不同,产生结果也不同;同一个引用类型,使用不同实例而执行不同操作
  4. throws声明方法可能抛出的异常,通过throw手动抛出的异常只能为声明的异常,但运行出错抛的异常可以接收到
  5. static方法,即使创建类对象为null时亦可以调用成功
  6. Java整数二进制表示.Java二进制数采用补码形式表示
正或负 二进制->十进制 十进制转二进制
累加求和 除2取余
减1->逐位取反->转换为十进制正数->乘-1 取绝对值->转换二进制->逐位取反->加1
Damon Xiong wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!