1.基础语法
1.1 关键字
关键字不是一成不变的,都是有具体的含义和使用方法,**关键字都为小写的**。
1.2.1 标示符
识符是标识变量、类或方法的有效字符序列。简单地说标识符就是一个名字。
1.2.2 标识符的命名
1. 首字母只能以字母、下划线、$ 开头,其后可以跟字母、下划线、$ 和数字。
2. 标识符不能是关键字。
3. 标识符区分大小写 。
4. 标识符长度没有限制,但不宜过长。
5. 标示符多个单词构成时,第二个字母首字母大写。
6. 标识符尽量命名的有意义,让人能够望文知意。
7. 尽量少用带$符号的标识符,主要是习惯问题,大家都不是很习惯使用带$符号的标识符;还有内部类中,$具有特殊的含义。
1.3.1 java 注解
1. //单行注解
2. /* 多行注解* */
1.3.1 数据类型
float数据类型是单精度,默认值是0.0f,不可省。
String字符串:
String a = "A1"; //A1
System.out.println(a+1); //A11
+号相当于把字符串相连接。
String 的默认值是 null。
char字符:
char a = 97;
System.out.println(a); //a
char a = 'A';
System.out.println(a+0); //65
char 如果=数字(没有‘’)则是Unicode 编码。
整数:
int a = 10;
System.out.println(a/3); //结果为3
相同类型才能进行运算。
小数:
double a = 10d;
System.out.println(a/3); //3.3333333333333335
强制转换int:
double a = 2.2;
int b =(int)a;
System.out.print(b);//double 类型转换成 int类型
运行过程中,谁的数据类型大则转换成大的类型。
IDEA 创建一个java项目
1、打开 IDEA 软件,点击界面上的 Create New Project
2、出现以下界面,选中 Java,然后选择 JDK,最后点击 Next,进行下一步(我的是 jdk1.8)
3、这里是选择生成项目时是否创建 Java 文件,点击 Next 进行下一步。
4、点击绿色的三角,点击run。
1.4.1 常量和变量
变量的值是可以改变的,可以通过操作变量来操作变量所对应的内存区域或值块的值。
赋值就是为一个声明的变量或者常量赋予具体的值,也就是赋予值的意思。使用一个等号“=”来表示。
变量的定义规则:
- 遵从所有标识符的规则。
- 所有变量都可大小写混用,但首字符应小写。
- 尽量不要使用下划线和$符号。
- 可以先声明再赋值。
- 没有赋值的变量是不可以使用的。
常量:
- 用final关键字修饰,常量是值是不可以改变的,也就是说常量引用的存储单元中的数据是不可更改的。
- 对常量命名的定义规则:建议大家尽量全部大写,并用下划线将词分隔。
1.5.1 算术运算
算术运算是指:+ - * / %(取余)等基本运算。
- 实线箭头表示没有信息丢失的转换,也就是安全性的转换,虚线的箭头表示有精度损失的转化,也就是不安全的。
- 当两个操作数类型不相同时,操作数在运算前会子松向上造型成相同的类型,再进行运算。
如果+运算符中有一个自变量为 String 对象,则其它自变量将被转换成String。所有对象都可被自动转换成String,尽管这样做的结果可能是意义含糊的。不是字符串的对象是通过使用 toString()成员方法而转换成串的等价物的。
1.5.2 一元运算符
- -(取反)
- ++(自增1)
- –(自减1)
运算过程中需要注意的是 ++ 或 – 操作:
- ++x 因为++在前,所以先加后用。
- x++ 因为++在后,所以先用(先不加1)运算完之后再加。
有一种特殊的情况:a+ ++b和a+++b是不一样的(因为有一个空格)。
1.5.3 关系(比较)运算符
< 小于 > 大于 <=小于等于 >= 大于等于 == 等于 != 不等于
需要注意的是:关系运算符中的"==“和”!="既可以操作基本数据类型,也可以操作引用数据类型。
操作引用数据类型时,比较的是引用的内存地址。所以在比较非基本数据类型时,应该使用equals方法。
1.5.4 逻辑运算
运算符!(定义为“非”)、&& (定义为“与”)、||(定义为“或”)执行布尔逻辑表达式。
短路现象:
&& 左边为true,则右边不执行。
|| 左边如果是fase,则右边不执行。
1.5.5 三目运算
格式为:(a> b) ? a : b;
判断a是否大于b,是则执行a,否则执行b。
1.6.1 控制语句
if-else 语句的基本句法是:
if( 布尔表达式 ){
成立执行语句块;
}
if( 布尔表达式 ){
成立执行语句块;
}else{
否则执行语句块;
}
if( 布尔表达式 ){
成立执行语句块;
}else if( 布尔表达式 ){
成立执行语句块;
}else if( 布尔表达式 ){
成立执行语句块;
}else{
否则执行语句块;
}
switch ( 表达式 ){
case 常量1:
语句;
break;
case 常量2:
语句;
break;
default:
语句;
break;
}
(1)表达式的类型,可以是byte、short、int 、char、字符串。
(2)case分支是要执行的程序语句。
(3)常量1、常量2是可能出现的值。
(4)不同的case分支对应着不同的语句或块序列。
(5)break表示跳出这一分支。
(6)当变量或表达式的值不能与任何 case 值相匹配时,可选缺省符(defauit)指出了应该执行的程序代码。
(7)如果没有 break 语句作为某一个 case 代码段的结束句,则程序的执行将继续到下一个 case,而不检查 case 表达式的值。
for (初值表达式; 测试表达式; 改变量表达式/步长){
语句块
}
其执行顺序如下:
(1) 首先运行初值表达式。
(2) 然后计算测试表达式,如果表达式为true,执行语句或块;如果表达式为false,退出for循环。
(3) 最后执行步长,第一次循环结束。
(4) 第二次循环开始:首先判断测试表达式,转到第2步继续运行。
while (布尔表达式) {
语句块
}
说明:当布尔表达式为true时,执行语句或块,否则跳出while循环。
do {
语句块;
}while (测试值表达式);
说明:
先执行语句或块,然后再判断布尔表达式。与while语句不同,当布尔表达式一次都不为true时,while语句一开始判断就跳出循环,一次都不执行语句或块,而在do语句中则要执行一次。
break和continue:
break 语句被用来从 switch 语句、循环语句和预先给定了 label 的块中退出,跳出离break 最近的循环。
continue 语句被用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。
label 可标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。当嵌套在几层循环中想退出循环时,正常的break只退出一重循环,你可以用标号标出你想退出哪一个语句。它类似以前被人诟病的“goto”语句,我们应该尽量避免使用。
例 1:label 的使用
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
L: if (i == 3) {
break L;
}
System.out.println("i==" + i);
}
}
}
//i==0
//i==1
//i==2
//i==3
//i==4
例 2:label 的使用
public class Test {
public static void main(String[] args) {
L: for (int i = 0; i < 5; i++) {
if (i == 3) {
continue L;
}
System.out.println("i==" + i);
}
}
}
//i==0
//i==1
//i==2