阅读JavaPPt后的自用笔记,主要有一些和C和C++的差异,方便日后查询使用。
Java与C++的比较
(1)Java语言中不允许在类之外定义全局变量,而只能通过在类中定义静态变量来实现;
(2)Java语言中没有goto语句;
(3)Java语言中没有指针型变量;
(4)内存管理实现了自动化;
(5)Java语言对于不同的数据类型定义统一的规格,保证了平台无关性;
(6)Java语言中不允许像C和C++中那样任意进行类型转换;
(7)Java语言中无头文件;
(8)Java语言中无结构体和联合;
(9)Java语言中无预处理和宏定义。
Java语言特色:
类不支持多重继承、Abstract/Final类、接口、自动内存回收、多线程
java数据类型
分为基本数据类型和引用数据类型。
基本数据类型:3种
数值型:整数(byte short int long)和浮点(float double)
字符型(char)
布尔型(boolean)
引用数据类型:3种
类(class)
接口(interface)
数组
两个引用变量之间的赋值,会使两个变量指向同一个对象。
数据溢出处理,强行转换
public class TestJava {
public static void main(String[] args) {
int max = Integer.MAX_VALUE; // 得到整型的最大值
System.out.println("整型的最大值:" + max); // 输出最大值
System.out.println("整型最大值 + 1:" + (max + 1)); // 最大值加1
System.out.println("整型最大值 + 2:" + (max + 2L));// 最大值加2,变为long型
System.out.println("整型最大值 + 2:" + ((long)max + 2));// 强制转换为long型
}
}
字符类型也是整数类型的一种
public class TestJava {
public static void main(String[] args) {
char ch1 = 'a'; // 定义字符
char ch2 = 97; // 定义字符,整型转字符
System.out.println("ch1 = " + ch1); // 打印输出
System.out.println("ch2 = " + ch2); // 打印输出
}
}
基本数据类型的默认值
任何类型都会向String转型
public class TestJava {
public static void main(String[] args) {
String str = "lixinghua "; // 定义字符串变量
int x = 30; // 定义整型变量
str = str + x; // 改变字符串变量内容
System.out.println("str = " + str); // 打印输出
}
}
表达式
位运算符
& | ^ ~和数电学习时的运算方法一致
移位运算符
<< 乘法 >> 除法
num * 10 相当于 num<<3 + num<<1
杂
equal 比较对象
== 比较地址
引用的比较
this()可以调用构造方法
访问静态变量static
类名.成员
对象.成员
类中的成员方法也可以直接访问静态成员方法
一个类中,静态方法只能直接调用其它的静态成员
在Java中只允许单继承,不能使用多重继承,即:一个子类只能继承一个父类。但是允许进行多层继承,即:一个子类可以有一个父类,一个父类还可以有一个父类。
子类对象在实例化之前必须首先调用父类中的构造方法之后再调用子类自己的构造方法.
被子类覆写的方法不能拥有比父类方法更加严格的访问权限。
使用super可以从子类中调用父类中的构造方法、普通方法、属性。
使用final声明的类不能有子类;
使用final声明的方法不能被子类所覆写;
使用final声明的变量即成为常量,常量不可以修改 。
接口内的属性都是static和final的,所以我们可以很方便的利用这一点来创建一些常量。
在java中允许一个抽象类实现多个接口的