第一天,Java_Day01

软件的定义:
一系列按照特定顺序组织的计算机数据和指令的集合

软件的交互方式:
1.图形化界面 GUI;
2.命令行方式 CLI;

 

Java语言特性:跨平台性;
java文件在jvm下是跨平台,但JVM不是跨平台

 

JRE:jvm+java程序所需的核心类库
JDK:JRE+java的开发工具

 

jdk安装文件夹最重要的文件夹名:bin(binary:二进制)包含jdk给我们的开发工具
bin文件下的javac.exe一闪而过的原因是:它不是属于图形化界面程序,而是一个命令行界面程序,windows下需要DOS进行打开。

 

DOS命令行,课程中常见的命令
dir:列出当前目录下的文件以及文件夹
md:创建目录 (make directory)
rd:删除目录
cd:进入指定目录 cd jdk*(正则表达式表明以jdk开头的文件都选中打开)
cd..:退回到上一级目录
cd\:退回到根目录
del:删除文件 del *;del *.*;del *.txt(*为通配符);
exit:退出dos命令行;
help: 帮助命令;若想知道某个指令的详细用法,例如cd,可以这样写:help cd

 

执行JAVA程序的两个步骤:(1)java源文件(程序员编写的*.java文件)----使用javac编译生成*.class文件(字节码文件)--- 使用java命令解释执行---生成特定平台的机器码--成功运行

 

环境变量:环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等

Java -vresion:查询本机的java jre版本号,注:一台机可能会装有多个java版本
因此可以使用 javac -version (版本号)进行指定版本编译

cmd.exe状态下输入help,SET指令可以查看环境变量 set path

Path环境变量临时设置:在cmd下设置的path只会在当前窗体进行设置,关闭cmd后path的值不会更改,所以仅仅只有当前的cmd有效,所以可以作为环境变量的临时配置方式。
临时环境变量,动态获取当前环境变量,并在后边添加,而不是重写:set path = e:\123\bin;%path%(这样写能有效获取之前path的值):这种写法的目的是为了可以动态加载不同版本的jdk或者mysql的程序,最好是吧动态加载的放在%path%前面,这样可以使让系统忽略后面名字相同的软件名,只执行前面那个标记的

注意:类名与文件名必须一致,不然javac编译报错

main(String[] args)中的String[] args什么意思
这是主类中的主方法的形式参数 ,是一个String 对象数组,用来保存java 应用程序后所带的参数,如同DOS命令中后面所带的参数。
如编写一个JAVA程序程序用来把一个位置文件复制到另一个位置,编译后程序名为copyfile.class ,将C:\a\1.txt复制到D:\b\下,文件名改为 b.txt,则在命令行解释执行:
java copyfile C:\a\1.txt D:\b\b.txt,注意这四个部分之间有空格,则两个参数字符串就存在数组args中,可以在程序中访问它们。

main()方法是入口,能保证该类的独立运行。


public class helloworld{
public static void main(String[] args){
System.out.println("Hello World!");
for(String s : args){
System.out.println(s);
}
}}

cmd执行:javac helloworld.java
java helloworld 1.7988p 29ioy(Java执行的就是类的名字)
cmd输出:hello world!
1.7988p
29ioy

 

编写程序一个重要的点就是:阅读性是第一位(能让别人与自己都能看懂,才能进行维护与修改),功能性是第二位。

系统的环境变量设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包

例如,我有一个helloworld类在C:\123文件夹中,

此时我进入cmd是发现我进入了C:\user文件夹,

但我不想更改当前文件夹的路径,此时设置环境变量path是不行的,因为path只认识*.exe等执行文件,不会搜索执行编译好的*.class文件

所以我们可以临时设置 set classpath=C:\123;%path%,此时,在user文件夹路径下执行java helloworld,不会报错,因为jvm会优先搜索classpath的路径。

若不设置classpath,jvm会在当前路径进行类的查找,有classpath(并且每一个路径后都加上";"分号,不加分号只会在指定的classpath中去找,有分号的话classpath找不到会到当前目录下去找)的会优先搜索classpath,再到当前文件夹中找。其实为了避免同名class的执行与自身预想不符,应该在临时设置classpath时不用添加";",这样目标才会明确。但如果只想寻找指定目录与当前目录可以这样去写:set classpath=.;c:\myclass      (记得后面不要加分号,这样写会变得明确路径)

 

Java中,类名与文件名需要相同吗?
如果一个编译单元(文件)中含有public的类,则文件名必须与类名一致,如果没有public类,则文件可以随意命名。一个文件中,public的类可以有零个或一个,非public的类可以有零个或多个。其实写public会把类的权限提升了,保证文件名与类名内外一致性,这是java所倡导的。

文件名:123.java

内容:

class Demo
{
public static void main(String[] args)
{
System.out.println("hello E盘");
}
}

cmd.exe下输入javac 123.java 会生成Demo.class

 

posted @ 2015-06-11 23:21  暴走骑士  阅读(170)  评论(0编辑  收藏  举报