java工程师是开发软件的
什么是软件呢?
计算机包括两部分:
硬件:
鼠标、键盘、显示器、主机箱内部的cpu、内存条、硬盘等
软件:
软件包括:系统软件和应用软件
系统软件:直接和硬件交互的软件:win7、winxp、win8、win10、linux操作系统
应用软件:
应用软件通常运行在系统软件中,例如QQ运行在windows操作系统上。
QQ就是系统软件,win7就是操作系统软件
我们说的软件开发,通常是指,使用变成语言完成“应用软件”的开发
最基本的windows相关的DOS命令:
DOS命令就在终端输入,win+r 输入cmd,打开的黑呼呼的窗口
exit-----退出DOS窗口
cls-----清除屏幕(清除窗口之前输入过的命令 clear)
DOS窗口中的内容怎么复制,鼠标选中需要复制的内容,右键即可复制,然后在需要输入的地方再次右键,就可以粘贴
dir-----查看当前目录下的文件列表
cd-----cd+文件路径 可以跳转到对应的文件下 路径分为:相对路径和绝对路径,绝对路径是重盘头的出发点开始,相对路径是相对当前文件的路径, ../表示上一级 ./表示当前路径 cd+反斜杠 直接回到跟目录(盘头) 怎么切换盘符? c: d: e: f: 等
常见windows操作系统的一些操作:
java程序员以后会建很多java文件,但是如果把计算机的隐藏拓展名隐藏的话,一眼看不清是txt文件还是java文件,所以不让计算机隐藏拓展名
显示隐藏文件的拓展名/显示隐藏文件等:打开文件窗口,--》组织---》文件夹和搜索选项---》查看---》将隐藏文件拓展名的对勾去掉---》应用
java语言属于一种高级计算机语言,诞生于1995年,创作者是james gosling (詹姆士 高司令)。
什么是JDK?
JDK是java开发必须安装的工具包,该工具包需要从官网下载。目前SUN被Oracle公司收购了,下载需要去http://www.oracle.com
官网里面有开发人员选项,进去后,点击Downloads,可以下载JDK。我直接把网址帖过来:https://www.oracle.com/technetwork/java/javase/overview/index.html
点击downloads,找到JDK下面有个download按钮,进去后可以看到当前JDK最高版本时8,下载之前首先要接受,然后选择下载的操作系统版本,windowsx86或 windowsx64,或者linux。。。等等,选择对应的版本下载JDK即可。
下载JDK时,会让登陆oracle账号,在网上找了一个:2696671285@qq.com 密码:Oracle123
资源链接:https://pan.baidu.com/s/1vBh2zA8L5eTJ5fQs7LPbFA 提取码:b8su
java包括三大块:
javaSE(java标准版)------是基础,是javaEE和javaME方向必须要先学的
javaEE(java企业版)-------这个方向是开发企业级的东西,我们大多是走的这个方向
javaME(java微型版)-----这个方向是开发 吸尘器内核等这些微型的东西
java语言特性:【开源、免费、纯面向对象、跨平台】
*简单性:
相对而言的,例如java不再支持多继承,而c++是支持多继承的,多继承比较复杂。
c++中有指针,java中屏蔽了指针的概念。所以相对来讲,java是简单的。
java语言底层是c++,不是c语言,java的logo是一杯冒着热气儿的咖啡,咖啡是咖啡豆磨成的,咖啡豆来自java岛,所以叫java
*面向对象
java是纯的面向对象的,更符合人的思维模式,更容易理解。
*可移植性
什么是可移植性?
java程序可以做到一次编译到处运行。也就是说,java程序编译后可以在windows系统上运行,不做任何修改,同样可以在linux系统和是哪个运行。
或者称为跨平台。因为windows操作系统和linux操作系统的操作指令是不同的,要想java跨平台,那么java程序不能直接和操作系统打交道。
SUN团队很重名,他们让java程序运行在一台虚拟的计算机中,这个虚拟的计算机叫作java虚拟机,简称JVM。之后JVM再和底层的操作系统打交道。
windows系统和linux系统的JVM(java虚拟机是不一样的),JVM包含在JDK中(工具包),只要到官网下载JDK安装后,自然会有JVM。
*多线程
一件事可以多个人同时去干
*健壮性
自动垃圾回收机制,简称GC机制。
java语言运行过程中产生的垃圾是自动回收的,不用程序员关心。
*安全性
java的加载与执行:
*java程序的运行包括两个非常重要的阶段
-编译阶段
-运行阶段
*编译阶段:主要是检查java源文件(.java)是否符合java语法,如果符合java语法则能够生成正常的字节码文件(.class),否则则不能生成字节码文件
注意,字节码文件(.class)不是纯粹的二进制文件,不能直接在操作系统上运行
*编译阶段的过程:
1、程序员需要在硬盘的某个位置<位置随意>新建一个.java扩展名的文件,该文件被称为java源文件,源文件中编写的是java源代码/源程序。
而这个源程序是不能随意编写的,必须符合java语法规则<java语法规则是需要记忆的>
2、java程序员需要使用JDK当中自带的javac.exe命令进行java程序的编译。
*javac怎么用呢?在哪用呢?
-在DOS命令窗口中使用
-javac的使用规则:
javac java源文件的路径
*javac是java编译器工具/命令。
*一个java源文件,可以编译生成多个.class文件。【后面再说】
*字节码文件/.class文件是最终要执行的文件,所以.class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源程序一般不要删
除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头重新修改java源文件,然后将java源文件重新编译生成新的class文件,
然后再运行这个class程序,生成新的效果。
3、编译完成之后,可以将.class文件拷贝到其它操作系统运行。【跨平台】
*运行阶段:
-JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫作java.exe,java.exe命令主要负责运行阶段。
-java.exe在哪用?怎么用?
-在DOS窗口中使用。
-java.exe怎么用呢?
java 类名(就是.class文件的文件名)
例如:硬盘上有一个A.class,那么,就这样用: java A
硬盘上有一个B.class,那么,就这样用: java B
硬盘上有一个C.class,那么,就这样用: java C
千万不要写成这样: java C.class 【这样是错误的】
-运行阶段的过程时怎样的?
1、打开DOS命令窗口
2、输入: java A
3、java.exe命令会启动java虚拟机(JVM),JVM会启动类加载器ClassLoader
4、ClassLoader回去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中。
5、JVM会将A.class字节码文件解释成二进制100101001这样的数据。
6、然后操作系统执行二进制与底层硬件平台进行交互。
---------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------
安装JDK:
上面已经下载过JDK了,
1、双击安装,点下一步
2、选择安装路径,一般不用改,然后点下一步
3、之后会弹出,是否安装独立的JRE,
JRE又是什么呢?
JRE是java程序的run time(运行时环境)
JDK、JRE、JVM是什么关系呢?
如果是开发人员,肯定要安装JDK,开发完后会在运行时环境中运行一下java程序,那么最终的java程序是在JVM中运行的。它们三者的关系如下:
如果,我们的程序开发好了,只需要给客户部署,那么我们在客户的电脑上就不需要安装JDK了,只安装JRE就行了。
注意,JDK中是有一个JRE文件的,如果安装独立的,就会和JDK并排的位置,安装上JRE。
我点了下一步,安装个独立的JRE,
4、安装过JRE之后,会弹出一个问你当连接地址的弹窗,我们关闭即可,想看的也可以看
此时:
至此,JDK安装完成!!
JDK目录介绍
下面来简单介绍一下安装JDK后,jdk文件下目录
JDK/jre:是java的运行时环境,后面会接触
JDK/bin:该目录下存放很多命令,例如javac.exe和java.exe
javac.exe负责编译
java.exe负责运行
其它的不过多介绍,后面会介绍
接下来开始开发我们的第一个java程序
开发java程序:
首先我们建立一个HelloWord.java文件,随便放在硬盘的一个地方
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
下一步我们需要编译源文件
首先加餐javac工具能否用,现在还未配置环境变量,在DOS命令窗口,输入javac加回车,肯定报,javac不是内部或外部命令。在未配置环境变量的情况下,想执行javac命令,我们需要在DOS窗口跳转到JDK的bin目录下才能执行javac命令,因为javac.exe在JDK的bin目录下;
跳转到JDK的bin目录后,输入javac -version 可以查看javac的版本号
很显然,如果每次编译都需要手动跳转到JDK的bin目录显得有点繁琐,所以我们最好配置上环境变量,这样,只要我们打开DOS窗口,直接输入javac命令就可以用。
在这里需要说一下,比如说我们在DOS窗口中输入ipconfig就可以直接执行,但ipconfig.exe命令却是在c:windows/System32/的目录下,为了解释这样的问题,我们需要知道windows操作系统是如何搜索硬盘上某个命令的呢?
1、首先会从当前目录下搜索
2、当前目录搜索不到的话,会从环境变量path指定的路径当中搜索某个命令
3、如果都搜索不到,则报以上错误,(javac不是内部或外部命令)
那么下面说一下环境变量怎么配置?
环境变量配置:
右键计算机---属性---高级系统设置---高级---环境变量
上面是用户变量,下面是系统变量,在用户变量中配置的变量只在当前用户起作用,在系统变量中配置的变量在任何用户下都起作用。
我们看一下系统变量中path中的值:
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\NetSarang\Xftp 6\;C:\Program Files (x86)\NetSarang\Xshell 6\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\nodejs\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\VisualSVN Server\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
上面配置了很多的系统变量,都是路径,每个路径代表一个环境变量,每个路径之间用;(分号)隔开。必须是英文分号。
那么我们只需要把javac.exe所在的目录路径加到系统变量中就行;C:\Program Files\Java\jdk1.8.0_91\bin
然后记得重新打开DOS窗口,否则环境变量不会生效
记住,环境变量path和java语言没有关系,是windows操作系统的环境变量。
好了,环境变量配置好之后,我们就可以愉快的用javac命令进行编译了:
javac 文件路径
路径可以是绝对路径也可以是相对路径
然后就生成了HelloWorld.class文件,
需要注意的是,大小写一定注意,另外public指的是公共类,此类名,需要和文件名一样,否则编译报错。
以上javac 后面跟的是绝对路径,如果跟相对路径该怎么弄呢?
打开HelloWorld.java文件所在的目录,在路径栏上直接输入cmd回车,就可以打开HelloWorld.java文件所在的目录路径,
我的HelloWorld.java文件就放在桌面上,再次编译前,需要把原来的编译好的文件删除,(没必要删除,我发现新编译的文件会把之前的编译好的文件覆盖!)
我们可以删除桌面上所有的.class文件
输入 del *class即可
然后再次编译,javac HelloWorld.java
这就是相对路径
上面已经编译好java程序了,下面应该运行java程序了
运行java程序:
首先要检查java.exe命令是否可用,在DOS窗口输入java -version 如果查询出java.exe命令的版本号,代表命令可用
java命令如何使用
java 类名
硬盘上有HelloWorld.class,那么类名就是:HelloWorld
执行java Helloworld 即可运行Hellowrold.class程序
注意,java命令后面跟的不是文件路径,是一个类的名字。
首先需要将DOS窗口的路径切换到HelloWorld.class文件所在的目录
好,程序运行成功!
另外需要注意,千万不要这样做:java HelloWorld.class 跟上后缀时错误的。
另外补充一下,我们上述配置过环境变量,这样可以在任何路径下执行java.exe命令,那么这个环境变量是windows操作系统的变量,当我们想为java的运行单独设置环境变量时,可以使用classpath,这个变量虽然也是在环境变量中设置的,但是它属于java的环境变量。当我们运行java命令运行java程序时,类加载器(ClassLoader),会从当前目录下去查找执行文件,当我们制定了classpath后,类加载器就会按照指定的路径去寻找类。
classpath 可以给类加载器指路,同样的,路径之间用分号隔开,(英文的分号)
当然也可以将classpath=.
因为. 指的是当前目录, ..指的是上级目录
。后面开始介绍一些java的只是点,请看java学习笔记(2)