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会使用自动类型转换

浙公网安备 33010602011771号