Java 基础(一)

基础概念

  1. oop 三原则 

    封装 继承 多态

  2. 标识符

    不能以数字开头的字母,数字,下划线,美元符号  jdk8 不建议使用下划线

  3. 分隔符

     :: 双冒号 方法引用

数据类型 变量 数组

  基本类型不是对象 为了提高效率 

  byte,short 虽然占用空间小,但并不会效率更高,表达式求值时 会自动提升为int类型,所有int是最好的选择

  浮点型数据遵循IEEE-754标准 针对高速数学运算优化的某些处理器 双精度运算更快

  Java采用Unicode码 char类型占两个字节 char类型可以进行算数运算 根据Unicode码

  jdk7 开始 可以使用二进制指定整型字面值 使用0b 或0B 前缀 整型字面值可以嵌入多个下划线方便阅读

  C++ 字符串是字符数组 Java 字符串是对象

  Java类型转换

    自动类型转换  两种类型兼容 目标类型大于源类型

    强制类型转换  丢失精度(如:结尾),范围取模的余数

  数组

    声明 初始化(基本类型初始化默认值,对象初始化为null)  

    {} 或new 方法初始化分配空间

    多维数组 初始化可以先分配第一维  int[][] twoD = new int[4][]; 可以创建不规则的多维数组

运算符   

      复合赋值运算的效率有时候更高

  位运算符

    ~ 按位一元取反     ^ 按位异或  >> 右移  >>>右移填充0  << 左移

    & 按位与    |  按位或

    Java数据采用补码表示数据  按位取反 在加1  解码负数也是这样

    按位异或 0 位不变,1 该位取反 这个特性很有用

    左移右移 会受到Java 自动类型提升的影响 这也是对2的乘除高效率的操作 但是要注意数据范围超出数据就不对了

    >> 右移操作 会按照符号位扩展  -1进行右移总是-1

控制语句  

  switch(expression)  expression 可以是byte short int char enum jdk7以后 可以是String

  switch 操作要比if判断运行速度更快 

  for循环 for-each 迭代变量是只读的 如果不是对象引用 那么修改可能不起作用

  编译器自动将每个类放入到各自的.class文件中

  new 运算符

    new 运算符动态的为对象分配内存,内存不足 发生运行时异常

  一个对象变量赋值给另外一个对象引用变量时,不是创建对象的副本,而是创建引用的副本

  形参与实参  基本类型传值,对象引用传引用的值 形参的修改会影响实参

  finalize()方法

    当回收对象时 Java 调用该方法 意味着不知道什么时候会执行finalize()方法

  重载

    方法名相同 参数类型,顺序,个数不同的方法。  匹配不一定都是准确的,自动类型转换也会影响,当没有找到准确的匹配,Java会使用自动类型转换

  

  

 

    

  

  

    

    

  

   

 

posted @ 2017-08-28 17:19  OneStepCloser  阅读(129)  评论(0)    收藏  举报