Java概述
1、Java语言的引入JavaSE学习笔记:Java概述
首先,我们与计算机进行交流就需要一种媒介,这种媒介就是我们所熟悉的一个名词—软件。软件?软件就是一系列按照特定顺序组织的计算机数据和指令的集合。软件可分为系统软件(Dos、Linux、Windows等)和应用软件(360、qq、酷狗等)。软件的开发就是制作软件。人机交互的方式有两种:图形化界面交互方式和命令行交互方式。
我们在使用电脑就是在和电脑说话,我们可以通过图形化界面交互方式(Windows操作系统等)或者通过命令行交互方式(DOS操作系统等)。
图形化界面交互方式:操作简单,容易接受,容易上手。
命令行交互方式:操作复杂,需要记忆一些命令,不易上手。
常见的命令:
Dir:列出当前目录下所有的内容。
Md:创建新目录。
Rd:删除目录。
Cd:进入指定目录。
Cd..:退回到上一级。
Cd\:退回到根目录。
Del:删除文件。
Exit:退出dos命令行。
切盘命令:盘符+:+回车。
注意:Rd命令只能删除空目录。
若目录不为空,则先使用del命令,在使用rd命令。后面都是相同的文件夹。
拓展:
创建文件:echo 文件内容>文件名.txt
删除所有.txt文件:del *.txt
通过命令行的演示,发现原来操作计算机就如同和计算机说话一样,我们告诉它做什么,它就可以做什么。前提是,我们和它说的内容它必须识别才可以,这就是计算机语言(c、c++、Java、汇编)。
2、Java语言概述
特点:
① 面向对象(将所有的行为封装到对象中)
② 平台无关(由于Java应用程序的执行有jvm负责,无论在那个平台,只要有对应的jvm即可。如win版的jvm)
版本:
① J2EE(Javaee)
② J2SE(javase)
③ J2ME(javame)
VS:javase压缩一点,再增加一些CLDC等方面的特性就是javame。Javase扩充一点,在增加一些EJB等企业应用方面的特性就是javaee。
Ps:学完Javase之后有两个方向可以选择继续发展:(1)J2EE,就是企业级应用开发,设计到web,一般为B/S结构的应用开发;需要深入学习掌握的知识包括SQL、HTML、CSS、JavaScript等,主流相关技术框架有Spring、Struts、Hibernate、jQuery等。J2EE的开发特点之一就是一般资源(CPU、内存、硬盘存储等)足够丰富。(2)J2ME,就是嵌入式Java开发,涉及到手机,机顶盒,电视之类的设备,在过去的诺基亚为王的时代,很多小游戏就是基于J2ME开发的。如今安卓很流行,很多手机、智能电视都是用安卓系统,而安卓的SDK开发也是基于java的,就是使用java进行开发。
3、JAVA语言的环境搭建
JRE:java的运行环境。包括Java虚拟机和java程序所需的核心类库等。适用于一个开发好的java程序。
JDK:java的开发环境。包括JRE和java的开发工具(比如编译工具javac.exe、打包工具jar.exe等)
JDK>JRE>JVM
下载网址:
www.oracle.com或者是java.sum.com(打开网页后首先找到Download for Developer然后找到下载JDK的那一栏,选择对应的版本如jdk-8u71-windows-x64.exe,即可下载)
安装后,比如生成的是jdk1.6.0-24可放在移动设备中到哪台机器上都可以用,本身即是一个绿色软件,不用在重新下载安装。若重新下载安装,会在电脑的注册表上有一个注册,当jdk有新版本是,在有网的情况下会自动更新,否则不会更新,但一样能用。
打开jdk1.6.0-24,有很多内容,只看bin目录,开发工具都在其内,打开后,会看到很多.exe文件,这些文件中也有些是java写的,所以想要执行这些程序,必须有jvm所以jdk中必须有一个jre。当双击javac.exe,发现一闪而过,说明它不是一个图形花界面,得用命令行方式。
若想执行某一个开发工具,必须打开dos命令行,进入到该执行文件所在的路径下。现在想在任意路径下都能执行该.exe文件,我们只需要配置环境变量,具体做法:在我的电脑—高级—环境变量,找到path变量,在它的值中加入该路径并用分号将其与原来的path的值隔开。
Ps:配置前不能在任意路径下执行该程序。配置后,必须重新打开一个命令行才能生效。不能通过star命令打开新的命令行,这样会沿袭之前,仍不能见效。
配置技巧:比如将之前path的值添加D:\jdk1.6.0_24\bin;但考虑到盘符和文件名可变,因此将可变部分用新的变量名JAVA_HOME记录(即JAVA_HOME的值为D:jdk1.6.0_24,而将变量名path的值改为%JAVA_HOME%\bin即可,当可变部分改变时,只需改变JAVA_HOME即可)。
临时配置:(适用于拿移动设备到别人的电脑上开发软件)
打开dos命令行,在任意路径下,执行set命令,即可查看所有已配置好的环境变量和其所对应的值。
查看某一特定的环境变量的值:set path 回车
改变某一特定的环境变量的值:set path=...... 回车
清空变量的值:set path= 回车
在原有的变量值中添加新值:set path=......;%path% 回车
临时配置后,重新打开一个dos窗口,查看path的值不变。表明dos这种配置环境变量的方式只在当前窗口有效。
注意:当我们在开发时,我们在编译程序的时候,我们是否也会想到,将我们的java文件所在目录配置到环境变量中,这样我们就完全实现了在任意路径下,使用我们的开发工具编译运行我们的文件。但是,一切想得都很完美,但现实总是残酷的。呵呵。。。至少我本人还不知道有这么一个环境变量。因此,用dos命令行来编译文件时,必须进入到该文件目录中,对着文件进行编译。
4、Java程序开发体验--hello world
Javac.exe Java.exe
.java文件————.class文件————结果
编译 运行
Java语言文字编辑工具:记事本、、eclipse
低端 高端
超文本编辑器:editplus
每一次程序改动后要调试运行之前都要保存,否则结果是上一次的结果。
源文件名命名注意:当类是公共类时,源文件名必须是与类名相同,当类不是公共类时,源文件名不限制,但与类名相同,可读性好。当一个源文件中有若干个类时,源文件名通常与主类的类名相同。还有就是一定要保证源文件的扩展名一定是.java。且生成的.class文件的文件名与主类的类名相同,因此不同文件中的主类类名不能相同。
在运行.class文件时,发现只能在文件所在路径下进行,我们可以找到一个环境变量,对其进行配置,实现在任意路径下都可以运行该文件,这个变量是classpath,同path配置类似。同样classpath的配置也有两种方式:临时配置和一劳永逸的配置。
在临时配置中,若在A路径下将classpath值设置为B;,当一执行.class文件时,Java命令会启动虚拟机,虚拟机就会从classpath的值去找有没有该.class文件,有就直接执行;若没有则再从A路径去找。若在A路径下将classpath值设为B,当一执行.class文件时,Java命令会启动虚拟机,虚拟机就会从classpath的值去找有没有该.class文件,有就直接执行,若没有则不会再从当前路径A去找。我们一般提倡第二种做法,若真想再从当前路径去找一次,则,将classpath的值设置为.;B。
在这里,path和classpath相反,是先在当前路径下找,没找着再从变量值所代表的路径去找。
在Java学习的开始,我们还不需要对classpath进行配置,应为,源文件和类文件都在同一个目录下,当讲到包时,就要用到classpath。
注意:path变量值是Windows程序文件的目录。
Classpath变量值是Java类文件的目录。
拓展:在dos执行qq.exe,比如,
E:\>set path=C:\program Files\Tencent\QQ\Bin;%path%
E:\set path
E:\>qq.exe
操作以上步骤,会打开一个qq。
我们知道,桌面可以创建快捷方式,如QQ.exe,它不是可执行文件,执行文件在C盘的Program Files中,该快捷方式指向那个位置。(右键—属性—目标)不指向它也可以,如将目标改成扫雷的路径,则双击qq图标则打开扫雷。
详解Hello World小程序中的一些特点:
Hello world代表学习计算机语言的第一个入门小程序。现在泛指接触新事物的第一步。
Java中的第一个关键字(被Java语言赋予了特殊含义的单词),专门用于定义类。有固定写法,大小写严格区分,只能小写才是关键字。Java语言的程序代码都需要定义在类中。
class Demo
类名。为了方便使用这个类,给这个类取的名字。Java的程序都是以类的形式存在,生成的类文件名与其相同,一定要见名知义,写拼音都可以。在写法上,有一个规范(不是规则),可遵守可不遵守,但人家都遵守就不要另类,即类名的首字母大写,多个单词组成,首字母都大写。
{
阶梯层次感,按tab键
.....public static void main(String[] args)
主函数保证该类的独立运行。原因:Java的工具java.exe会去调用虚拟机,虚拟机会调用Windows底层内容并去执行你指定的类Demo,然后会先去找Demo类中是否有该函数,该函数写错一点都不可以,典型错误mian。接着在命令行中编译,没有问题,叫做自定义函数,接着运行,会有提示“没有主函数”。其实,虚拟机就在调用你指定类中的主函数,它在执行主函数中每一句代码。不管代码多长,起始点都从主函数开始执行。
{
.....System.out.println(“hello world!”);
分号不能少(语法),编译时会有提醒。
}
}
一个源文件中可以有多个类,并且多个类中都可以有主函数,关键是想不想让每个类都可以独立运行。但是一个类中不可以有多个main函数。
注释:(不被Java虚拟机解析)
(1)大多计算机语言都支持的方式。
单行注释://...........
多行注释:/*
............
............
............
*/
(2)Java自己特殊的注释:文档注释
对程序进行说明以后,可以通过jdk中另外一款工具javadoc.exe,该工具将程序中文档注释都提取出来形成一个网页,该网页即是所写程序的说明书,给开发者看的。一般一个软件有两个说明书:软件说明书、软件使用说明书。/**
.................
................
..................
*/
如:/**
作者:张三
版本:V1.0
这个类是用于演示hello world。
*/
注释的作用:注解说明书
调试程序:当一个程序编译用错,回头看源程序,并不知道哪错了,可以将某一句注释掉(用//),再编译,好了,即错误出现在被注释的那一句。多句用/**/。
注意:单行注释中可以有单行注释。
多行注释中可以有单行注释。
多行注释中不可以有多行注释。
(1)学习中养成注释的习惯,老师给的代码,哪句比较特殊或不懂,就希望加上一句注释,注释不宜过多,否则阅读性较差。
(2)实际开发和面试中所用的。早期,思路不能断,一个劲的写代码,没写注释,写后提交到服务器上,提交完以后,N多年不用了,最近又赶上升级,需将源代码查阅一下,因为没注释,所以看不懂了,需一句一句看,才能知道程序的功能,较麻烦。或者是项目干一半,别人接手,别人看起来非常吃力。
综上所述,一边写注释一边写代码。一般情况下,类上面加文档注释,函数上面加文档注释。若函数的修饰符有改变,需多行注释。代码当中那某几句话比较关键难懂,需加单行注释,但不要每行都加。初学者,一般加点注释,后期不用,只需注释关键语句。写代码的习惯要贯穿整个学习当中。不要一上来就class什么什么东西,代码仅仅是思想的一种体现形式,计算机语言,语言是为了表达思想而体现出来的。那么得先有思想。写代码先写注释。
演示:1
/*
需求:定义一个hello world小程序。
思路;(该代码中还没有涉及到思路,后期讲程序代码 会涉及。没有思路、不知道用什么工具,就不能完成 代码。思路中可以不涉及代码。)
1、
2、
步骤:
1、通过class关键字定义一个类。将代码都编写到该类中。
2、为了保证该类的独立运行。在类中定义一个主函数。格式public static void main(String[] args)。
3、保存成一个扩展名为Java的文件。
4、在doc控制台通过Javac工具对Java文件进行编译。
5、再通过Java命令对生成的class文件进行执行。
*/
class Demo//定义一个类
{
//主函数
Public static void main(String[] args)
{
//输出语句
System.out.println(“hello world ”)
}
}
演示:2
/**
作者:张三
版本:V1.0
这个类是用于演示hello world。
*/
class Demo//这是我的第一个Java小程序,//很爽
{
/*
main函数可以保证该类的独立运行。
它是程序的入口。
它会被jvm所调用。
*/
public static viod main(String[] args)
{
/*
System.out.println(“hello java ”);//这是输出语句,可以打印括号里的内容。
System.out.println(“hello world ”);//????
*/
System.out.println(“hello java”);
System.out.println(“hello world”);
}
}
2015-08-01至2015-08-04著