资料来源于《明解 Java》日本作者 写的很详细
1:命令---java 类名
该命令不是去执行类名.class文件(文件名和类名有可能不一致),切记是表示执行具体的类;
2:“字符”+数值
执行顺序时先把数值转换为字符型“数值”,再进行的字符串的+运算,不是简单的字符串+数值获得新字符串;
3:=赋值运算符
表示把右边的值赋给左侧变量,不是数学意义的相等;
4:字符串变量赋值
变量表示中存放引用,引用指向字符串,
注意与基本类型的区别
5:if语句
if 语句结构图,
严格意义if语句两种形式:if (表达式)语句和 if(表达式)语句 else 语句,
else if表示else的语句嵌套是if语句 ,else if(表达式可拆解)
6:表达式与表达式语句
表达式是常量、变量、把常量与变量用运算符连接的式子,比如判断语句的中if(表达式);
表达式语句是给表达式加上分号,比如赋值int i=0;
7:只在程序块{语句}使用的变量可以在程序块中进行声明;
8:switch从jdk7开始除了整型,也支持字符串类型,switch与if都是分支语句,switch将程序分为多个分支,if将程序分为两个分支
在单一表达式程序中swithc的可读性要比if要好。
9:switch分支中break
在没有break语句的地方,程序流会“掉落”至下一条
case 1:
case 2:语句;break;
1和2分支执行相同语句;
10:字符常量和字符串常量
用单引号将单个字符括起来的表达式就是字符常量'*',类型时char
用双引号将字符括起来的表达式就是字符串常量“*”,类型时String
11:for语句与while语句可以互换
for中A,B,C位置可省略,但 “;” 不能省略
a. 省略“A”,可以在 for 语句之前由赋值语句进行变量初始化操作;
b. 省略“B”,如果语句中没有中断,会造成的“死循环”现象;
c. 省略“C”,可以在循环体语句中进行循环变量的变化,如下;
12:扩展for语句
for-in或者for-each 格式:for(int i:arr){语句},i表示当前的元素,不是索引
13:带标签的break语句 和 带标签的continue语句
java中的标签就是一个紧跟着“:”的标识符,Java中的标签就是一个紧跟着“:”的标识符;
14:Java类型基本类型,引用类型
15:整型的范围-char是非负数的值
一个字节时8位
8位能表示的数值个数就是2^8(一位表示是0,1(0,1),两个数值(2的1次方);二位表示0,1,2,3(00,01,10,11),四个数值(2的2次方)……),8位能表示的最大值是多少?2^8 - 1 ,也就是255。
当为一位时,最大值的二进制就是1,也就是十进制的1,也就是2^1 - 1,当为2位时,最大值的二进制是11,也就是十进制的3,也就是2^2 - 1,
同理,8位时,最大值的二进制是8个1,也就是1111 1111,算下来的十进制数值就是255,也就是2^8 - 1。8位能表示的最小值想必都知道,就是八个0,也就是0
(参考https://blog.csdn.net/QQ_20255275/article/details/99703848)
16:整数常量
整数常量中不包含符号.例如不存在-10的整数常量。-10是对整数常量10应用了-运算符后的表达式
17:浮点类型float double
声明小数的时候,默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f;这样会报错float x=3.14;(精度不一致)。正确的写法:float x=3.14f;
18:数组
int[] a(建议采用) 和int a[];
int[] a=new int[5];a表示数组变量,右侧是数组主体,数组变量是引用数组主体的变量
equals判断两个数组是否相等
19:方法构成
20:在方法外部声明的变量称为字段(field)(类作用域),区别于方法内部的声明的变量(局部变量)
当同一作用域内相同名称的字段和局部变量同时存在,则字段被隐藏,需要“类名.字段名”访问
0
21:方法重载-同一个类中定义多个相同名称的方法
方法的签名:方法名、形参个数、类型的组合,但不包含类型;相同签名的方法不可以重载;
思考为什么返回类型不包含签名,下面例子无法区分调用ave(5,3)执行哪个方法;