---------------------- android培训 、java培训 、期待与您交流! ----------------------
Java 知识点总结一
1. 环境塔建与开发
JAVA_HOME:Java 的安装目录 .
Path: 指定一个路径列表 , 用于搜索可执行的文件 . 这个路径指定 jdk 安装目录下的 bin 目录 .
可以用 %JAVA_HOME% 来塔配环境 .
ClassPath: 指定一个路径列表,用于搜索 Java 在编译或运行时需要用到的类( .class 文件) , 比如 sun 提供的 dr.jar 和 tools.jar 等 .
2. 变量与常量
实例变量 : 定义在类中但在任何方法外 .
局部变量 : 定义在方法中的变量 .
任何变量在使用前都要被初始化 . 变量的数据类型有基本数据类型和引用数据类型
基本数据类型 |
整型: byte, short, int, long |
实型: float, double |
|
字符型: char |
|
布尔型: boolean |
|
引用数据类型 |
数组 array |
类 class |
|
接口 interface |
byte 占 8 位 short 占 16 位 int 占 32 位 long 占 64 位 .
类型转化可以分为自动类型转换和强制类型转换
3. 运算符
算术运算符 要注意 0 不能做为除数和任何数都不能对 0 取模 .
i++ 是使用 i 的在自加一次 . ++i 是自加一次后在使用 .
位运算符 << :左移
>> :带符号右移(最高位为 0 则补 0 ,为 1 则补 1 )
>>> :无符号右移(补 0 )
赋值运算符 .
如果赋值运算符两边的数据类型不相同,则需要进行类型转换,即“向左看齐”;如果这种转换是由小向大的转换,系统将自动进行,如果是由大向小的转换,则需强制类型转换。
逻辑运算符
有短路 (&&,||) 和非短路 (&,|),
短路可以稍微提高效率 . “&” 和 “&&” 的区别在于,如果使用 & 连接,那么无论任何情况, “&” 两边的表达式都会参与计算。如果使用 && 连接,当 “&&” 的左边为 false ,则将不会计算其右边的表达式。 “|” 和 “||” 的区别与 “&” 和 “&&” 的区别一样。
三无运算符可以简化一下代码的书写 . 格式为 : (condition)?a:b
4. 程序控制语句
if if.else Switch while do.while for for 循环嵌套 break-continue
其中 do.while 是先执行一次在判断条件是否为真 .
要控制循环的流程在循环中跳出 . 可以在循环外面设置一个 boolean 值 . 通过在循环中控制此布尔值来控制循环是否继续执行 .
5.java 函数的重载
构造函数 : 构造函数的名字和它从属的类的名字是相同的 . 一个构造函数是对象被创建时初始化对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返 回类型,即使是 void 类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始化一个对象的内部状态,所以用 new 操 作符创建一个实例后,立刻就会得到一个清楚、可用的对象。
构造函数的函数名与类名相同并且没有返回值类型 , 也不能定义为 void, 在方法名前也不用声明方法的类型 . 构造函数主查为了完成对象的初始化工作 , 它能够把定义对象时的参数传递给这个对象所在的域 . 构造方法只能由系统调用 . 一个类中的构造方法可以重载 .
被依赖的先构造,依赖于人的后构造。 JAVA 是跨层依赖优先于同层依 赖构造
下面这段代码对于层次间的构造函数重载分析的很好
class Cake{
Cake(){System.out.println("Cake()");}
}
class Meal {
Meal() { System.out.println("Meal()"); }
}
class Bread {
Bread() { System.out.println("Bread()"); }
}
class Cheese {
Cheese() { System.out.println("Cheese()"); }
}
class Lettuce {
Lettuce() { System.out.println("Lettuce()"); }
}
class Lunch extends Meal {
Lunch() { System.out.println("Lunch()"); }
}
class PortableLunch extends Lunch {
private Cake a=new Cake();
PortableLunch() { System.out.println("PortableLunch()");}
}
public class OverLoadTest extends PortableLunch
{
private Bread b = new Bread();
private Cheese c = new Cheese();
private Lettuce l = new Lettuce();
public OverLoadTest() {
System.out.println("Sandwich()");
}
public static void main(String[] args) {
new OverLoadTest();
}
}
上面的代码输出的结果为:
Meal()
Lunch()
Cake()
PortableLunch()
Bread()
Cheese()
Lettuce()
Sandwich()
在同一个类中 , 允许存在一个以上的同名函数 . 只要它们的参数个数和参数类型不同即可 . 重载与返回值类型无关 , 只与参数列表有关 .
6. 数组
数组定义 int[] arr=new int[2]; 和 int arr[]=new int[2]; 都可以 , 一般都常用第一种 .
也可以在定义的时候直接给初始值 int[] arr=new int[]{1,2,4,5,5}; 数组常见的操作有遍历和获取最值等 , 遍历数组一般用 for 循环 .for 循环遍历在对象确定情况下可以用 JDK1.5 以后的新特性 , 增强 for 循环 for( 类型 : 类型成员 成员集合 )
---------------------- android培训 、java培训 、期待与您交流! ----------------------