Java关键字
在这里面,蓝色的都是关键字。
public class HelloWorld { public static void main(String[] args){ System.out.println("HelloWorld"); }}
一下是Java所有的关键字:
标识符
比如我们自己定义的HelloWorld就是标识符。
public class HelloWorld { public static void main(String[] args){ System.out.println("HelloWorld"); }}
标识符规则如下:
标识符是区分大小写的,标识符不能和关键字重复。
标识符的合法与不合法
字面值
比如你在程序里面定义6,就能看出来你是定义的是6,这就是字面值。
然后创建一个java文件,我们进行试一下,输出如下代码:
/*字符串,用双引号括起来的内容,例如:”monkey”整数,所有整数,例如:1024小数,所有小数,例如:3.14字符,用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号,例如:’a’布尔,只有true和false*/ public class ConstTest { public static void main(String[] args){ System.out.println("Monkey"); System.out.println(1024); System.out.println(3.14); System.out.println("a"); System.out.println(true); } }
然后在命令行中打印:
就是我们在java程序输出的代码,然后在命令行中打印出来了。
变量
在编辑器中输入如下代码:
public class VarTest01{ public static void main(String[]args){ //数据类型 变量名=变量值 int i = 10; //就是告诉计算机开辟一个 //数据类型 变量名; //变量名 = 变量值 int j; j =20; System.out.println(i); }}
在命令行执行你的代码如下:
可以看到打印的就是当菜定义的变量i,结果为10.
在定义变量a = 10以后,如何改变a的值,代码如下:
public class VarTest02{ public static void main(String[]args){ int a = 10; System.out.println(a); a = 15; System.out.println(a); }}
此时直接用 a=15;就能重新定义了。命令行输出结果如下:
输出的a的改变后的结果为:15
细心的同学看到了 这次不是int a = 15;。而是a=15;。原因是我们在上面已经定义过a了,不能再次定义。如果再次在同一个域中(同一个大括号)重复定义a的话,代码如下:
public class VarTest02{ public static void main(String[]args){ int a = 10; System.out.println(a); int a = 15; System.out.println(a); }}
命令行输出结果为:
会提示重复定义变量a,所以这是不可行的。修改变量值的时候,不需要重新声明。在同一个域中(同一个大括号),变量名不能重复。
刚才讲了在同一个域中不能重复命名,但是可以在另一个大括号中声明变量a,代码如下:
public class VarTest02{ public static void main(String[]args){ int a = 10; System.out.println(a); a = 15; System.out.println(a); } public static void ml(){ int a = 10; }}
这个我们稍后进行讲解。
如果定义一个变量不给他赋值呢。会出现什么结果,代码如下:
public class VarTest02{ public static void main(String[]args){ int a = 10; System.out.println(a); a = 15; System.out.println(a); int b; //b没有被赋值 System.out.println(b); }}
命令行输出结果为:
他会提示 没有初始变量b。所以这是一个错误的编码。
Java基本数据类型
我们首先学习整数型,下面我们输入以下代码:
public class DataType01{ public static void main(String[]args){ int i = 10; long l = 888; }}
命令行输出结果为:
可见是没有报错的。
当我们输入以下代码时:
他会提示你整数的值太大,明明定义的是long类型的整数,怎么会这样呢。原来是程序默认long类型的整数也为int类型。如何正确的打印出来呢,输入以下代码:
public class DataType01{ public static void main(String[]args){ int i = 10; long l = 888; long z = 43810234803284039L; }}
命令行输出结果为:
我们只需要在long类型的整数后面,加一个“L”就行了。
有的同学会问,为什么 long l = 888;这个整数不报错?答案是:自动类型转换,因为int类型比long类型的数值小,因为long l =888 的值还是属于int类型。没有超过int类型的位数。
在代码中注释如下:
public class DataType01{ public static void main(String[]args){ int i = 10; //自动化类型转换 long l = 888; //程序将 43810234803284039看作是int类型,因为 43810234803284039已经超出了int类型的取值范围,所以会报错。 //正确的方法 :在为long类型赋值的时候,需要在后面加上“L" //程序会默认的把整数的字面值当做int类型。 long z = 43810234803284039L; }}
long l = 888;属于字符小的转行成字符大的。下面我们用字符大的转行成字符小的如下:
public class DataType02{ public static void main(String[]args){ long a = 999; int b = a; }}
命令行输出如下:
随意我们不能这样转换,会出现报错。怎么样才能不会报错呢,我们需要强制转换 如下代码:
public class DataType02{ public static void main(String[]args){ long a = 999; //容量大的像容量小的类型转换时,需要强制类型转换。 //可能会损失精度,所以不太建议使用。 int b = (int)a; }}
命令行输出结果为:
可以看到这次是我们成功编译了。
下面我们看byte与short类型:
byte类型:
public class DataType02{ public static void main(String[]args){ // 需要注意,给byte类型赋值时,需要注意取值范围。 // byte b = 128; error byte b1 = 127; //只要不超过byte类型的取值范围,是没有问题的。 }}
short类型:
public class DataType02{ public static void main(String[]args){ short b1 = 32767; }}
只要不超过他的取值范围就可以编译成功。不会报错。