1、Java为什么能跨平台运行?
Java语言编写的程序既是编译型的,又是解释型的。程序代码经过编译之后转换为一种Java字节码的中间语言,Java虚拟机即JVM将对字节码进行解释和运行。编译只进行一次,而解释在每次运行程序时都会进行。
Java程序运行在虚拟机上,每个平台都有JVM,所以Java能实现“一次编译,到处运行”。
2、请尝试安装和配置JDK,并给出安装、配置JDK的步骤。
jdk可以从Oracle官网上下载,下载后直接安装即可,傻瓜式安装点击下一步,不过切记安装目录中不要有中文。
特别提示:jdk和eclipse保存的路径不能有中文字符
1.打开我的电脑--属性--高级--环境变量
2.新建系统变量JAVA_HOME
变量名:JAVA_HOME
变量值:jdk的目录,比如F:\jdk\jdk1.8.0_91_x64
3. 选择“系统变量”中变量名为“Path”的环境变量
双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:Path
添加的变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
配置完成后在cmd中输入java会出现下图所示,则表示环境变量配置成功。
这是java的环境配置,配置完成后直接启动eclipse,它会自动完成java环境的配置
3、请问配置JDK时环境变量path和JAVA_HOME的作用是什么?
JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
4、利用文本编辑器输入课堂上练习的Hello.java,并在JDK环境下编译和运行。
public class hello{ public static void main(String[] args){ System.out.println("Hello World!"); } }
5、如果在DOS命令下输入:java Hello出现以下结果:Bad command or the file name可能是什么原因?
(错误的命令或文件名) 输入的命令不存在,或者不在指定的路径中。 确保键入了正确的命令、在正确的位置留出了空格和使用了正确的路径名。
原因:命令或文件名错,路径出错。
这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。
6、如果第4题中在DOS命令下输入:java Hello出现以下结果:Exception in thread “main” java.lang.NoClassDefFoundError: Hello
1)、你的文件名对吗?JAVA要求你的文件和你的类名严格对应的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔细了!
2)、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
7、在第4题中Hello.class所在路径下,输入命令:java Hello.class,会出现什么结果,为什么?
应该是java hello java hello已经是加载类,不能再加一个class。
8、请描述基本数据类型和引用数据类型的区别?
主要区别:内存使用:基本数据类型的值直接存储在栈中,而引用数据类型将值存储在堆内存中,把首地址存储在栈内存,这样节省内存占用,使用引用数据时先从栈中找到相应地址,通过地址去找到值。
变量的赋值:基本数据类型由于在栈中存的是实际值,直接把值赋给新变量;引用数据类型在栈中存的是首地址,所以它会将首地址赋给新变量。
9、Java主要有那几种文件类型?各自的作用是什么?
1)、源代码:.java文件,编写的源代码
2)、字节码:.class文件,编译后的生成的文件
3)、jar包:把相关的字节码文件压缩之后形成的,便于使用和传递
两个小程序:
1、编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。把圆周率π定义为常量,半径定义为变量,然后进行计算并输出结果。
public class test02circle { public static void main(String[] args){ double r,zhouchang, mianji; r=3.0; zhouchang=2*Math.PI*r; mianji=Math.PI*Math.pow(r, 2); System.out.println("周长是:"+zhouchang); System.out.println("面积是:"+mianji); } }
2、编写一个Java项目,定义包,在包下定义包含main方法的类,在main方法中声明8种基本数据类型的变量并赋值,练习数据类型转换。
public class test03_shujuleixing { //创建类 public static void main(String[] args){ //主方法 byte mybyte = 127; //声明byte型变量并赋值 short myshort = 32564; //声明short型变量并赋值 int myint = 45784612; //声明int型变量并赋值 long mylong = 456789451; //声明long型变量并赋值 long result = mybyte+myshort+myint+mylong; //获得各数进行相加 隐性转换 System.out.println(result); float myfloat =1.234f; //声明float型变量并赋值 double mydouble = 1.23445; //声明double型变量并赋值 double result2 = result + myfloat + mydouble; //获取各数进行相加 隐性转换 System.out.println(result2); char mychar = ‘a‘; //声明char型变量并赋值 //字符集 unicode表 a在unicode表中排序是97 System.out.println("unicode表中a是"+(int)mychar+"位"); int p = 23456; char x= (char)p; //将int型强制转换成char型 System.out.println("unicode表中第23456位是:"+x); boolean boolean1 = true; //声明布尔型,并赋值只能赋值true或false boolean boolean2 = false; System.out.println(boolean1); } }
PS:java初学者在刚学java时会要到这些常见的问题,将这些问题搞懂,对java会有一个基本的了解,对以后学习java有很大的帮助。