Java:是一种程序设计语言,可以用来开发跨平台的应用软件。
特点:简单性、跨平台性、安全性、面向对象性
面向对象的特点:以对象为核心,以事件为驱动,各个功能模块化
三大体系:JavaSE、JavaEE、JavaME
命名: 命名只能使用两个特殊字符:_ $,多个单词联用时每个单词首字母大写
源文件名首字母大写,与 public 类名一致;
类名不能以数字开头
Java 大小写敏感,即区分大小写
运算符:算术运算符:+ - * / %
关系运算符:< > <= >=
逻辑运算符:&& || !
数据类型:
基本数据类型:数值型:整型:byte/short/int/long
浮点型:float/double
非数值型:char/boolean
引用数据类型:String
数据类型转换:大字节数据类型转换成小字节数据类型需要强制转换。。如 double d = **; int i = (int)d;
比 int字节小的数据做运算时,都默认自动转换为 int,所以应该用 int类型变量接收结果,或强转为对应的小字节类型数据
小字节数据类型转换成大字节数据类型可以自动转换,
当计算及格率等时,因除数和被除数都是整形,用 /除出来的结果也是整形,但实际结果一般都是小数,这时应该在表达式里加一个 double;
分支结构:if(条件) {
满足条件要执行的内容;
}
else if(条件) {
}
else{
除以上条件以外的情况所发生的行为;
}
if esle 结构可以嵌套,可以只有 if ,但是不能只有 else。
switch(代表所有情况的变量) {
case 情况1: 执行相应行为;
break; ---切记每个 case后面都应该有个break,不要丢掉了。除非是没有 default的最后一个 case
case 情况2:
case 情况3: ...... ---发生情况 2或者 3 时执行的行为
break;
default:
其他情况应执行的行为;
}
switch() 可以接收 byte/short/int/char/enum(java5开始支持)/String(java7开始支持)类型的变量
一般情况下,两种分支结构都可以使用,但是 switch case更适合于等值判断,而 if else 更适合于区间判断
循环结构:注意循环的终止条件
while(条件) {
循环体
}
do{
循环体
}while(条件);
for(初始化;终止条件;迭代) { ---for 括号中的字段都可以放到外面,但是其中的分号必须存在
循环体
}
三个循环之间的特点区别:
1. 执行顺序:while 循环先判断条件,符合条件才开始循环;do while循环先执行一次,再判断条件,不符合则退出循环;因此当条件一开始就不符合时,
while 将一次都不执行,而 do while 循环至少会执行一次。for循环先执行初始化,然后判断条件,符合条件则进入循环,再进行迭代,再次判断条件,不符合则退出。
2. while和 do while 循环更适合没有确定终止条件的循环,而 for循环更适合有确定终止条件的循环。
3. for循环更简洁,而且占用的内存更小,因为一些迭代变量只是在循环里起作用,循环结束后就释放空间。
扩展:冒泡排序 ---延伸:选择排序,插入排序,快速排序
数组:用来存放一类相同数据类型的元素。 数组大小不可变。要想增加或减少数组长度,就得另辟空间新建数组,把原来的数组所有元素转到新数组。
定义声明方式:以 int类型为例
一维数组:int[ ] arr = new int[10]; --推荐 左边的 [ ] 可以在数组名的左边,也可以在数组名的右边
int[ ] arr = {1, 2, 3}; --直接赋值,这种方式也不错,简单
int[ ] arr = new int[] {1, 2, 3} --注意后面的 [ ]不能写数组大小了
二维数组:int[ ][ ] arr = new int [3][2];
int[ ][ ] arr = {{1,2}, {1, 2},{1, 2}};
int[ ][ ] arr = {1, 2, 1, 2, 1, 2};
不规则数组:int[][] arr = new int[3][];
arr[0] = new int[2]; arr[1] = new int[1]; int[2] = new int[2];
int[][] arr = {{1, 2}, {1}, {1, 2}};
遍历数组:for循环 --- 注意数组下标的最大值是数组最大长度 - 1
---一维数组:for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
---二维数组:for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
for each循环 ---一维数组:for(int i:arr) {
System.out.println( i ); --注意输出的只是 i,不是arr[i]
}
---二维数组:for(int[ ] a: arr) { --注意 a是一个数组。。。不规则数组也可以这样遍历
for(int a1: a) {
System.out.println( a1 );
}
}
类与对象:
类:有一类有相似特点的事物抽象而来的一个虚拟的概念
对象:一个个具体存在的事物
联系:类可以实例化出多个对象,有相似部分的多个对象可以抽象化成一个类
成员变量:在方法外部,但在类内部,可以不用赋值,系统会给其默认值;作用域为整个类
局部变量:在方法内部,作用域为方法内;必须先赋值才能使用;
调用其他类的属性与方法,必须先 new出该类的对象,通过对象来调用相关属性和方法
如:自己写了一个 Student 类,里面有 name 属性和 getName()方法。我现在在测试类中调用属性:Student stu = new Student();用 stu.name 就调用了属性
stu.getName()就调用了方法
调用本类的属性就是直接写属性名,调用本类的方法就直接写方法名。
形参:形式参数,是在定义方法时使用的参数
实参:真实进行方法行为的参数