Java学习铺垫随记

来源:互联网 发布:无人机地面站软件开发 编辑:程序博客网 时间:2024/05/17 17:15

计算机 = 硬件+ 软件
计算机如果只用硬件没有软件,那就是台裸机。

一、硬件:
1、cpu : cpu是计算机中的运算核心与控制核心。负责了解析计算机的指令、与计算机运算的执行。
2、内存: 数据与cpu交互的桥梁。 程序所需要的数据都会先加载到内存中,cpu是直接读取内存中数据进行运算的。
特点: 存取速度快。
缺点:断电或者是程序退出的时候,内存中的数据都会丢失。
3、硬盘(分类:机械硬盘(通过磁头寻址)、固态硬盘(像U盘,没有磁头寻址))。
优点:可以永久性保存数据。
缺点:存取的速度慢。 特例:固态硬盘: 读取速度非常快。
4、计算机工作大致流程:cpu是把要读取的数据先从硬盘加载到内存当中,从而访问内存进行数据读取,而不是从硬盘中。因为cpu运行速度快,而硬盘的读取数据速度太慢。

二、软件:
1、软件就是按照一定顺序组织起来的计算机指令与数据的集合。 软件 = 数据 + 指令
2、软件的类别:
1)系统软件:比如: windows 、 linux 、 mac os 、 ios 、 android(改UI)
2)应用软件: 应用软件必须要在系统软件的基础上才能使用的。
比如: QQ、 微信、 迅雷、 飞信……
3、软件的本质(软件为我们解决了什么问题): 提高了人类与计算机的交互效率。

三、人类与计算机的交互方式:
1、图形化界面的交互方式: 特点:简单、功能强大。
2、通过dos命令的交互方式: 特点: 需要记忆大量的dos命令, 功能比较弱小。

首先具备一个控制台(命令行提示符窗口)用于输入dos命令:
打开一个控制台的方式:
方式一:开始——-> 所有程序———>附件———–>命令提示符
方式二:开始——->运行——–>输入cmd即可.
方式三:windows键+R

常见的dos命令:

盘符:         进入指定的盘下面。

操作文件夹(对文件夹操作用的尤为的多):

dir             列出当前控制台所在的路径下的所有文件以及文件夹。cd 路径           进入指定的路径下。cd ..           回退到上一级目录上。cd \            回退到当前路径下的根目录。md  文件夹的名字        创建一个文件夹rd  文件夹的名字        删除一个空文件夹。 注意: 不能用于删除非空到的文件夹。

操作文件:

echo  数据>文件名       创建一个文件并且指定写入的数据。type  文件名            查看指定文件的内容。del 文件名              删除指定的文件。  注意: del后面如果跟一个文件夹,那么是删除一个文件夹中的所有文件。*                       通配符(可以匹配任意的文件名)tab                     内容补全.cls                     清屏上下方向键               找回上一次所写过的命令。exit                    关闭控制台。

计算机语言(为了更好的与计算机进行交互):

四、计算机的发展历史:
1、机器语言(对硬件要求较高,不同硬件结果不同。并且难以掌握,专家用):010101010101010
2、汇编语言(单片机,程序的驱动用汇编语言,对硬件的依赖行也相对很高) 通过大量的英文单词代表计算机的指令:add 1 1
3、高级计算机语言: C \ JAVA \ C++ \ PHP

高级语言的发展
1993 , JAVA初衷: 1994 年互联网刚刚兴起。(高司令\ 高斯林),改造成了面向互联网的计算机语言。

java重要特性之 ——- 跨平台(一次编译,到处运行).
平台: 操作系统。

五、java的环境的搭建:
1、jre: java运行环境。 jre = java虚拟机 + 核心类库(辅助java虚拟机运行的文件)
2、jdk: java开发工具集 jdk = jre + java开发工具。

安装jdk的路径要注意: 不能带有中文路径或者是空格(在安卓上会出现问题)。

3、jdk目录的介绍:
bin: 存放的是java的开发工具。
db : JDK7附带的一个轻量级的数据库(7.0新增加的,但使用较少),名字叫做Derby。
include :存放的调用系统资源的接口文件。
jre : java运行环境
lib : 核心类库。
src.zip : java源代码

java.exe 启动java虚拟机解释并执行指定的class文件。

java工具的使用格式:

java 指定的class文件

javac.exe 启动java编译器对指定的java源文件进行编译。

编写第一个java的程序:
第一步: 新建一个txt文件。把后缀名改成java。

第二步: java 代码全部都是写到类上面的。
如何编写一个类:使用一个关键字class即可定义个类。
格式:

class 类名{            }  备注: 大括号表示是一个类的范围,在类的范围之内都可以写代码,

第三步: 编写一个主方法。 主方法的写法是固定的,是一个程序的入口,代码从主方法开始执行。

public static void main(String[] args){}

如何启动java编译对java的源文件进行编译?
javac的使用格式:

javac java源文件。  

编译的过程中我们就面临的问题:每次编译的时候都需要写上java源文件的完整路径(即javac 文件完整路径+文件名.java)。 烦!!!
解决方案: 如果可以在任意的路径下都可以找到java的开发工具,那么该问题就解决了。

在控制台写一个可执行文件的文件名的执行原理:
在控制台写一个可执行文件的文件名,那么系统首先会在控制台当前路径下去搜索是否存在该文件,如果可以找到指定的文件,那么就执行该文件,如果找不到该文件,那么系统还会根据path的环境变量所保存的路径信息下去搜索是否有指定的文件,如果能找到,那么就执行该文件。

配置path环境变量:
如何找到path的环境变量:
我的电脑——-属性————>高级系统设置———->高级———>环境变量————path
把javac所在的路径拷贝到path环境变量中即可。

如果不配置环境变量,那么就要将源文件(即.java文件)放在含有javac.exe文件夹里(即bin目录下)

配置path环境变量的目的是什么?
控制台可以在任意的路径下都可以找到java的开发工具。

D:\;D:\JDK\JDK\bin;D:\eclipse4.3\adt-bundle-windows-x86-20131030\adt-bundle-windows-x86-20131030\sdk\platform-tools;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\OpenCL SDK\2.0\bin\x86;D:\mysql\bin;C:\Program Files\TortoiseSVN\bin;D:\firfox\quicktime\QTSystem\

目前path环境变量除了保存了我们自己配置的信息以外,还有系统自带的信息,如果一旦不不小心删除了path环境变量信息,那么就可能导致系统部分功能无法使用。所以要尽量避免修改的path环境变量信息。

目的是为了尽量避免频繁修改path环境变量?
解决办法:新建一个环境变量保存jdk安装目录会发生变化的部分,然后在path环境变量上引用新环境变量所保存的信息。
即先配置JAME_HOME,再配置path=%JAME_HOME%bin;

需求: 在现实开发中有时候jdk版本的信息有时候只会使用一次或者几次就不再使用了,那么如果是这种需求,我们一般都是通过set命令配置临时环境变量。
临时环境变量就是仅对于当前控制台窗口起作用,窗口一旦关闭,那么配置的临时环境变量信息会发生消失。

set命令的用法:

set                 查看所有的环境变量信息。set 环境变量的名字         查看指定的环境变量信息。set 环境变量名字 = 路径信息     设置指定的环境变量信息。set 环境变量名字 =              清空指定的环境变量信息。set 环境变量名字 = 新路径;%环境变量名字%    在原有的基础上添加新的路径信息。

注意: 以后大家但凡看到是set命令设置的环境变量信息,都是临时环境变量信息。

六、系统环境变量与用户环境变量的区别:
1、环境变量分为系统环境变量和用户环境变量。
2、系统环境变量,对所有用户起作用。而用户环境变量只对当前用户起作用。
3、例如你要用java,那么你把java的bin目录加入到path变量下面,那么它就是系统环境变量,所用用户登陆,在命令行输入java都会有java的帮助信息出来。
而如果你在某个用户的变量下面新建一个变量,那么它就只对这个用户有用,当你以其他用户登陆时这个变量就和不存在一样。

七、第一个hello world例子常见 的问题:
1、找不到对应的文件
原因:
1)隐藏了后缀名,你的不是java文件是txt文件。
2)编译的时候写错了文件名。
2、找不到或无法加载主类 Demo1
原因: 运行的时候写错了类名. 注意: class文件的文件名是对应的类名的。不是对应的java文件名的。
举例:文件名为Demo1.java,而类名为Demo。那么进行编译javac Demo1.java 出现的class文件为Demo.class,而非Demo1.class,然后运行时java Demo1则报错。
3、java的代码是严格区分大小写的。
4、’javac’ 不是内部或外部命令
原因: 没有配置path环境变量信息,或者是配置错误了。

八、classpath 环境变量:
1、设置了classpath环境变量的时候,启动jvm(java虚拟机)的时候,那么java虚拟机就会 根据classpath环境变量所保存路径信息,去寻找对应的class文件。

举例:
在E盘下,有一个Demo.java文件,经过编译生成了Demo.class文件。在E盘目录下java Demo可以运行,但如果在非E盘目录下,则不可以运行。
但是如果在其他盘,例如F盘,设置classpath路径,即set classpath=e:\,那么此时在F盘目录下java Demo可以运行(前提在E盘下有Demo.class文件)

2、设置classpath环境变量信息的有分号与没有分号的区别:
1)如果配置classpath环境变量信息没有加上分号,那么java虚拟机仅会在classpath所保存的路径下去搜索对应的class文件,不会在当前路径下去搜索了。
2)如果配置classpath环境变量信息加上分号,那么java虚拟机除了会在classpath所保存的路径下去搜索对应的class文件之外,如果能找到对应的class文件,那么就马上指定对应的class文件,否则还会去当前路径下去搜索。
a)举例:如果这样设置classpath,set classpath=e:\;,仅多了一个分号。作用就不太一样了,分号的作用相当于当前路径。什么意思呢?如果这个Demo.class文件放在了F盘下,那么如果没有分号,则运行不出结果,但是如果加上分好了,就可以正常运行了。
b)还有一种:在E盘下也有一个Demo.class文件,如果这样设置classpath,set classpath=;f:\,然后再E盘目录下java Demo,路径从左到右执行,依旧还是执行e盘中的java文件。

综上所诉,不建议配置永久的classpath,会导致很多问题。从JDK5.0开始,Sun公司的官方文档也不建议配置永久的classpath,5.0之前由于JVM需要核心类库进行支持,但不会自动查找到,所以强制要求要配置classpath,把JDK自带的jar包的路径配置到classpath下。但5.0之后JVM可以自动寻找,所以可以省略classpath配置。

配置classpath的作用(不仅对JVM起作用,对java编译器也有作用):设置了class文件的路径信息。

九、总结:
1、JVM:java虚拟机、JRE:java运行环境,JRE=java虚拟机+核心类库、JDK:java开发工具集,JDK=JRE+java开发工具
2、path:为了让控制台在任意路径下都可以找到path环境变量、JAVA_HOME:为了避免频繁的修改path环境变量信息、classpath:设置class文件所在的路径信息,不要设置为永久的。
3、javac:启动java编译器对指定的java源文件进行编译、java:启动java虚拟机解释并执行对应的class文件

十、java的大致就业方向:
1、(web就业方向)
1)做系统,比如:淘宝 、 京东、 高考报考系统
2)云—->大数据
3)客户端软件——->网页版 的软件 比如: QQ—webQQ
2、(手机开发)android ,比如: 微信、 QQ、 新浪微博…
3、物联网 : 智能家居…. 一台手机控制所有的家电等东西…

2 0