基础常识

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

常见的软件:

  • 系统软件:如:DOS,windows,Linux等
  • 应用软件:如:扫雷,迅雷,QQ等

软件的出现实现了人与计算机之间的更好的交互

交互方式:

  • 图形化界面:这种方式简单直观,使用者易于 接受,容易上手操作
  • 命令行方式:需要有一个控制台,输入特定的 指令,让计算机完成一些操作。较为麻烦,需 要记录住一些命令

dos命令行常见的命令

  • dir: 列出当前目录下的文件以及文件夹
  • md: 创建目录
  • rd: 删除目录
  • cd: 进入指定目录
  • cd..: 退回到上一级目录
  • cd/: 退回到根目录
  • del: 删除文件
  • exit: 退出dos命令行

Java语言概述

是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言

是一种面向Internet的编程语言

随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言

是简单易学,完全面向对象,安全可靠,与平台无关的编程语言

Java语言的三种技术架构

  • J2EE(Java 2 Platform Enterprise Edition)企业版

    是为开发企业环境下的应用程序提供的一套解决方案。 该技术体系中包含的技术如Servlet Jsp等,主要针对于Web应用程序开发

  • J2SE(Java 2 Platform Standard Edition)标准版

    是为开发普通桌面和商务应用程序提供的解决方案。 该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。 比如Java版的扫雷

  • J2ME(Java 2 Platform Micro Edition)小型版

    是为开发电子消费产品和嵌入式设备提供的解决方案。 该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等

Java5.0版本后,更名为JAVAEE JAVASE JAVAME

Java语言的特点:跨平台性

通过Java语言编写的应用程序在不同的系统平台上都可以运行

原理:

只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可

JVM来负责Java程序在该系统中的运行



因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性

Java语言的环境搭建

JDKJRE

  • JRE(Java Runtime Environment Java运行环境)

    包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可
  • JDK(Java Development Kit Java开发工具包)

    JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等

简单而言:使用JDK开发完成的java程序,交给JRE去运行

JDK安装

JDK 可从oracle下载,也可从sun下载。

建议:安装路径不要有中文或者特殊符号,如空格等

当提示安装 JRE 时,可以选择不安装

JDK目录结构

安装完java以后,产生的相应文件夹,其目录结构解释如下:

bin:存放JDK的各种命令工具,例如javac,java等

db:安装Java DB的路径

include:一些平台特定的头文件

jre:运行java程序所需的JRE环境

lib:存放JDK工具命令的实际执行程序

javafx-src.zip:Java FX所有核心类库源代码

src.zip:Java所有核心类库源代码

READMELICENSE等说明性文档

配置环境变量path

当完成JDK的安装时,java还不可以使用

需要配置环境变量,才可以在任意开启的cmd命令窗口使用

环境变量主要配置的是path

我的电脑–属性–高级–环境变量

  • 变量名输入:JAVA_HOME

    变量值指的是实际的安装路径(比如我的路径为:E:\Java\jdk1.8.0_171)

    最后点击确定

  • 更改path

    变量名不变,变量值增加为

    %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

    最后点击确定

  • 变量名输入:CLASSPATH

    在JDK1.5以后不用配置CLASSPATH

    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

    最后点击确定

  • 检测是否配置成功

    任意位置打开cmd

    输入:java -version

    如果输出版本号,那么代表配置成功

临时配置方式:通过dos命令中set命令完成

set:用于查看本机的所有环境变量的信息

set 变量名:查看具体一个环境变量的值

set 变量名=:清空一个环境变量的值

set 变量名=具体值:给指定变量定义具体值

在原有环境变量值基础上添加新值

  • 首先,通过%变量名%操作符获取到原有环境变量的值
  • 然后加上新值后在定义给该变量名即可

    举例:给path环境变量加入新值

    set path=新值;%path%

注意:这种配置方式只在当前dos窗口有效。窗口关闭,配置消失

注释

单行注释://注释

多行注释:/*注释*/

文档注释:/**文档注释*/

文档注释可以调用javadoc生成API文档

javadoc -d apidoc -windowtitle test -doctitle study -header myclass *.java

-d 指定生成的API存放路径

-windowtitle 设置API文档浏览器标题

-doctitle 指定概述页面标题

-header 包含每页的页眉

Javadoc标记:

@auther @version @deprecated @param @return @see @exception @throws

标识符和关键字

分隔符:( ; {} [] () 空格 . )

java语句结束的标志是";",一个语句直到";"才算结束。

{}用于包含java代码的语句块

[]主要用于访问数组元素

()声明,传参,提高优先级,强制转换等

空格用于代码缩进,方便阅读

.一般用于调用成员变量、方法和内部类

标识符:不可使用关键字,数字字母下划线和美元符,不可以数字开头,一般也不用美元符开头

Java程序开发体验

  • 将Java代码编写到扩展名为.java的文件中

  • 通过javac命令对该java文件进行编译

  • 通过java命令对生成的class文件进行运行



  • 编写源代码(保存为Demo.java)

class Demo//定义一个类
{
//主函数
public static void main(String[] args)
{
//输出语句
System.out.println("hello haha");
}
}
  • 编译源代码

    有了java源文件,将其编译成JVM可以识别的文件
javac Demo.java
  • 运行程序

    编译源代码以后生成Demo.class字节码文件

    使用java.exe运行字节码文件

    运行字节码文件不需要添加文件后缀
java Demo

既然class文件(字节码文件)是java的运行文件,可不可以实现, 在任意目录下都可以执行某一目录下的 class文件呢?

  • 根据path环境变量的原理,可以定义一个名为classpath环境变 量,将要运行的 class文件所在目录定义在该变量中

    例:set classpath=c:\
  • classpath变量值是java类文件的目录,先按照配置目录查找
  • path变量是windows程序文件的目录。先查找当前目录

JVM查找类文件的顺序:

  • 如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件
  • 如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件
    • 值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次
    • 值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目 录下有,也不会运行
    • 建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”表示

常见编译错误:

  • 源文件名不存在或者写错,或者当前路径错误。
  • 类文件名写错,或者类文件不在当前路径下,或者不再classpath指定路径下

最新文章

  1. JVM原理讲解和调优
  2. 为什么我的新项目选择了Quick-cocos2d-x
  3. ASP.NET 递归将分类绑定到 TreeView
  4. POJ1154
  5. JQuery 对 Select option 的操作
  6. ucenter 显示通信成功的条件
  7. HDU(3605),二分图多重匹配
  8. (《数论及应用1.3》NEFU 116 两仪剑法(最小公倍数&&最大公约数))
  9. Cocos2d-x 在缓存创建图片
  10. “Options模式”下的配置是如何绑定为Options对象
  11. Android菜鸟的成长笔记(9)——Intent与Intent Filter(下)
  12. HtmlParser的使用-爬虫学习(三)
  13. WildMagic 简单图元(一)
  14. [笔记]Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart
  15. 6.listview显示不用条目
  16. leetcode — merge-intervals
  17. 4-具体学习git--分支
  18. ps切图 切png图片——学习笔记
  19. Apache 配置多个HTTPS站点
  20. PAT乙级1032

热门文章

  1. 基于 C++ 的脚本语言 cpps 脚本
  2. node.js通过回调函数获取异步函数的返回结果
  3. 2019牛客多校第四场B xor——线段树&&线性基的交
  4. 03_mysql-python模块, linux环境下python2,python3的
  5. [HTML5] Add Semantic Styling to the Current Page of a Navigation Item with aria-current
  6. SIGAI深度学习第七集 卷积神经网络1
  7. ora-28002
  8. [Luogu] 被污染的河流
  9. NSMutableArray
  10. List的子类特点