以前自学Java的时候记的笔记,与大家分享一下。
1-1,计算机语言概述
1,基础知识
(1)软件开发:
软件:一系列按照特定顺序组织的计算机数据和指令的集合。
常见的软件:系统软件:DOS(DiskOperate System)磁盘操作系统,Windows,Linux。
应用软件:扫雷,迅雷,QQ。
开发:制作软件。
(2)人机交互
软件的出现实现了人与计算机之间更好的交互。
交互方式:图形化界面(GUI:Graphical UserInterface)
命令行方式(CLI:Command Line Interface)
2,Java语言概述
(1)Java是SUN公司(StanfordUniversity Network,斯坦福大学网络公司)1995年推出的一门高级编程语言,SUN公司提供的服务端操作系统是Solaris。
(2)是一种面向Internet的编程语言。
(3)随着Java在WEB方面的不断成熟,已经成为WEB应用程序的首选开发语言。
(4)是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
3,Java语言的三种技术架构(解决不同领域的问题)
(1)JavaEE(Java 2 Platform EnterpriseEdition)企业版
是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如Servlet,JSP等,主要针对WEB应用的开发。
(2)JavaSE(Java 2 Platform StandardEdition)标准版
是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发,比如QQ,扫雷。
(3)JavaME(Java 2 Platform MicroEdition)小型版
是为开发电子消费产品和嵌入式设备提供的解决方案,该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。由于安卓的兴起,一般用安卓的开发工具开发,安卓是基于Java开发出来的。
4,了解:SUN公司被Oracle公司收购了,Oracle的数据库一般用在中高端,如大型银行、电信、工商总局等。正因为被Oracle公司收购了,Java会更火。SUN有两个很牛的产品,一个是Java,一个是服务级的操作系统Solaris,而Oracle有数据库,这就意味着,Oracle有自己的开发语言,有自己的服务端操作系统,有自己的数据库产品。这和微软很像,微软有C#语言,有数据库,也有Windows操作系统,那么将来用Java连接Oracle数据库可能会实现无缝连接,就不需要各种驱动了。
1-2,Java语言跨平台原理(JVM)
1,操作系统不同,解析方式是不一样的。
2,Java语言最大的特性:跨平台性。
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称Java具有良好的可移植性。
软件必须被操作系统解析才能运行。
Windows是使用C++和C做出来的,本身自带C和C++的解析器。
为了让windows能解析Java的程序,就在windows中安装了一个能解析Java的程序——虚拟机。就是在windows上虚拟出来一台机器,专门用来运行Java的程序,这就是JVM(Java Virtual Machine)。
Java程序可以一次编译,随处运行。
虚拟机是Java程序和系统之间的一个桥梁。
3,什么是跨平台?
因为有虚拟机的出现,只要在不同的操作系统上安装上对应的JVM,就可以解析Java程序,实现了跨平台。
1-3,Java语言,JDK,JRE
1,在使用任何一门语言之前,都要先搭建该语言的环境。
2,概念:
JRE(Java Runtime Environment,Java运行环境):
包括Java虚拟机和Java程序所需要的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK(Java Development Kit,Java开发程序包):
JDK是提供给Java开发人员使用的,其中包含了Java的开发工具,额包括了JRE,所以安装了JDK就不用再单独安装JRE了。
其中的开发工具:编译工具(javac.exe)、打包工具(jar.exe)等。
简言之:使用JDK开发完成的Java程序,交给JRE去运行。
3,为什么JDK中包含一个JRE呢?
(1)开发完的程序,总需要运行一下,看一下效果。
(2)也是最重要的,JDK中的开发工具其实都是Java语言编写的应用程序,为了方便使用才打包成.exe文件,如果没有JRE,那么这些工具是运行不了的。
JRE:JVM+类库。
JDK:JRE+Java开发工具。
1-4,环境变量的配置
1,若想在命令行执行javac命令,必须要进入到javac所在的目录才能执行,这样局限性比较大,要想在任意目录下都能执行javac命令,就要配置环境变量。
2,当执行一个命令时,首先在当前目录找有没有这个命令,如果没有,则到配置的环境变量中找。也就是系统变量中的配置的path中。
3,环境变量位置:我的电脑à属性à高级à环境变量,系统变量中的path,path中存放的都是系统中应用程序所在的路径。将JDK中bin所在的目录的路径粘到path中即可。注意用;分隔。
1-5,环境变量配置技巧
1,用javac –version,可用于确定当前使用的JDK版本。
2,JDK使用过程中,可能出现JDK所在路径的变动或所在文件夹名称的变动,这时按照上面配置的环境变量就是错的了,不能准确指向JDK所在路径,可以使用一些技巧解决:
技巧:一般Bin目录不会变动,所以:
如:bin目录为E:\JavaJDK\JDK1.6\bin,把\bin前的路径单独取一个名字,如haha,则haha=E:\JavaJDK\JDK1.6,用haha代替\bin前的目录就可以,但这样电脑会认为haha是一个文件夹名,所以还要在haha两边加上%,%haha%,才能被标识为路径。可以降低对path修改的风险。
Haha不具备阅读性,一般用JAVA_HOME。
步骤:在系统变量中,点新建,变量名为JAVA_HOME,变量值为E:\JavaJDK\JDK1.6,把path中的路径改为%JAVA_HOME%\bin;即可。因为别的应用程序可能会到系统变量中找JAVA_HOME变量的值,所以一定要配制成JAVA_HOME。
1-6,环境变量配置-临时配置方式
1,当你用别人的电脑临时进行Java开发,就要配置临时环境变量。可以将JDK安装到U盘中,就可以随插随用了。
2,在CMD中用DOS命令做这样的设置:
用set命令:显示设置或删除windows环境变量。
Set path查看path变量。
Set path = haha,即可修改。这种修改只在当前DOS窗口有效,关闭DOS窗口就无效了,这就是临时配置。将haha改为U盘中的JDK路径即可成功。
Set path = 就可以删除了。
3,若想使用对方电脑上已有的环境变量,要把自己的环境变量加到对方的环境变量中,可用setpath = E:\JavaJDK\JDK1.7\bin;%path%即可。
4,若JDK中有两个JDK路径,如:前边是1.7,后面是1.6,则按照1.7执行,按前边的执行。
1-7,Hello World
1,开发流程:
.java文件通过javac编译,生成.class文件,通过java执行.class文件得到结果。
2,Java是由类组成的,定义类的方式为class 类名{ },将文本文件村委.java的文件。用JDK的工具java编译,用java运行。Java后面的类名要与类名一致。
3,main函数的作用,可以保证一个类的独立运行。
1-8,Hello World细节
1,main函数是程序的入口,程序从这里开始I执行。Main被JVM执行,只能有一个main。
2,Javac命令是调用了JDK里提供的一个编译程序,编译器对.java文件进行检查,看是否地方写错,检查源代码的正确性,编译失败不会产生.class文件。
3,Java命令底层对应的应用程序是虚拟机,编译时不启动虚拟机。JVM到指定的位置找.class文件,加载进内存运行。JVM先找main,找到后按顺序执行。
1-9,Hello World常见问题
1,javac时,文件名若写错会报找不到文件异常,路径不对也会报此异常。
注意扩展名,若文件名为123.java.txt,然后把扩展名隐藏,视觉上是123.java文件,实际是.txt文件,编译时报找不到找不到文件异常。这时可以用dir命令来查看完整的文件名。
2,若main写错,编译时不会报错,编译器认为publicstatic void mian(String[] args)这种格式是对的(这里假设误写为mian),将被看作是一个自定义的函数,不是main函数,所以运行时找不到main函数。
1-10,classpath环境变量
1,需求:在当前路径下运行非当前路径的运行程序。即:在任何目录下都能执行制定目录的.class文件。
2,解决:可以设置一个新的环境变量-classpath(类文件路径)。
Set classpath = C:\myclass
Classpath的作用:可以让JVM到指定的路径执行.class文件。
若配置了classpath,则JVM到指定的目录找,如果没有找到目标,且classpath的结尾没有分号,就不到当前路径找了;若classpath结尾有分号,则没找到时还会在当前目录下找一次,找到则运行,否则找不到。建议不加分号。
3,若既想执行当前路径又想执行指定路径,可以这样设置:setclasspath=.;C:\myclass,其中,“.”代表当前路径。
4,在DOS命令行中设置的classpath是临时设置,还可以在系统变量中设置,在系统变量中设置是永久的。
5,找不到类文件的原因:
(1)类名写错
(2)classpath设置,JVM没找到当前路径,可以使用set classpath查看。