JavaSE基础部分易错点_01

JavaSE基础部分易错点_01

由于Java基础部分,尤其是前半部分内容比较简单,在此笔者在前面几篇博文中只会提及易错易漏的知识点。

本篇博文涉及以下几个知识点。

1.    更进一步了解JDK与JRE的关系和区别。

2.    Java跨平台特性的初步了解。

3.    用记事本开发java程序时应注意点。

4.    为什么要配置Windows的PATH环境变量,以及好处

5.    输出语句输出字符串常量以外的其他常量类型。

6.    Java数据类型易错点。

7.    Java算术运算符易错点。

8.    Java赋值(类似于+=,*=)运算符自动强制类型装换。

9.    逻辑运算符&,|与&&,||区别

10.  break跳出外层循环

 

下面进行详细讲解

1.更进一步了解JDK与JRE的关系和区别

JDK(Java开发工具包)是Java开发运行环境,就像人类需要基本的生存环境一般,程序员在电脑上开发Java当然要安装JDK。JRE(Java运行环境)Java程序运行的保障,JRE包含在JDK中(安装了JDK也就安装了JRE),但如果你只需要运行Java程序而不用开发,那么你就可以只安装JRE(用户)。

 

2. Java跨平台特性的初步了解。

a.     平台指的是操作系统(Windows,Linux,Mac)。

b.    实现跨平台依赖于Java的虚拟机JVM(存在于JRE中)

通俗的来说Java的跨平台特新就是指java程序只需要一次编译成class文件,就可实现跨平台执行。实际上就是不同系统的JVM把class文件都解释成相同的意思,实现了跨平台。可C程序针对不同的平台会用不同的编译器来编译和链接同样的源代码,所以C在不同系统的运行实际上运行的是不同的程序,虽然它们的源码是相同的,java就不同了,它只编译一次,就可以跨平台了。

3. 用记事本开发java程序时应注意点。

现在许多初学Java的同学经常会选择使用一本IDE(eclipse之类)入门的书籍来进行学习Java,虽然IDE的功能很强大,但是不管是出于兴趣还是出于职业,我们还是尽可能的了解软件开发的全部步骤。

a.     类名必须与文件名相同。

b.    编译器为javac.exe,解释器为Java.exe都在JDK的bin目录下,二者都无法双击运行,要通过DOS命令来执行

c.在运行字节码文件时不能给出.class.


 

 

4. 为什么要配置Windows的PATH环境变量及原理

每次程序的编译与运行都要输入许多的地址才能完成开发,但是通过配置Windows的PATH环境变量可以简化这一操作。原理:PATH变量中保存着多个路径,当我们在DOS控制台中只给出程序名称时,Windows系统会到PATH变量保存的路径中查找程序。

 JavaSE基础部分易错点_01_第1张图片

5. 输出语句输出字符串常量以外的其他常量类型。

一般情况下初学者通常会把输出语句记得十分牢靠。一般为一下两种

,但其实输出语句还可以输出其他类型的常量

 

package review;

public class review {

	public static void main(String[] args) {
		int a=9;
		//大家所熟知的两种输出方法
		System.out.println(a);
		System.out.println(9);
		//输出其他常量
		System.out.println('1');
		System.out.println(123);
	}
}

6. Java数据类型易错点

a.Java的基本数据类型一共为4类8种,其中初学者一般遗忘byte类型(整型,1个字节,

-128~127)

b.字符型占2个字节(与C语言不同

c.各种基本数据类型按照范围从小到大的排序(long并不是最大

byte>short>int>long>float>double

d.布尔类型不能参与类型转换

 

7. Java算术运算符易错点

a.除法当两边为整数是结果一定位整数 例如1/2=0。

b.小数取余无意义,结果符号与被取余符号相同

 

8. Java赋值(类似于+=,*=)运算符自动强制类型装换。

诸如+=,*=这样的赋值运算符,会将结果自动转换为等号左边的数据类型

 

package review;

public class review {

	public static void main(String[] args) {
		int c=0;
		double b=3.2;
		c=c+b;//无法自动转化报错
		c+=b;//相当于c=(int)(c+b);
		System.out.println(c);
	}

}

9. 逻辑运算符&,|与&&,||区别

&&和||存在短路现象,A&&B当A为false时不在执行B,A||B当A为true时不在执行B。

 

package review;

public class review {

	public static void main(String[] args) {
		int x = 1,y = 1;

		if(x++==2 & ++y==2)
		{
			x =7;
		}
		System.out.println("x="+x+",y="+y);  
		//x=2 y=2(不存在短路现象,x++==2 与 ++y==2都要执行)
		
//		第二题
		int x1 = 1,y1 = 1;

		if(x1++==2 && ++y1==2)
		{
			x1 =7;
		}
		System.out.println("x1="+x1+",y1="+y1);
		
		//x1=2 y1 = 1(存在短路现象x1++==2为false++y1==2不执行)
//		第三题
		int x2 = 1,y2 = 1;

		if(x2++==1 | ++y2==1) 
		{
			x2 =7;
		}
		System.out.println("x2="+x2+",y2="+y2);

		//x2 = 7 y2 = 2
//		第四题
		int x3 = 1,y3 = 1;

		if(x3++==1 || ++y3==1) 
		{
			x3 =7;
		}
		System.out.println("x3="+x3+",y3="+y3);
	}
	//x3 = 7 y3 = 1
}

10. break跳出外层循环

用标号(对continue同样适用)

package review;

public class review {

	public static void main(String[] args) {
		OUT:
		for(int i=0;i<9;i++){
			for(int j=0;j<9;j++){
				System.out.println(i+"\t"+j);
				if(j==1){
					break OUT;
				}
			}
		}
	}
}


你可能感兴趣的:(Java,SE)