java笔记二——java概述

一、Java语言概述

Java技术体系

  • Java SE(Java Standard Edition)标准版

    支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE

  • Java EE(Java Enterprise Edition)企业版

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

  • Java ME(Java Micro Edition)小型版

    支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME

Java语言的特点

  • 面向对象

    • 三大特性:封装、继承、多态
  • 健壮性

    • 吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
  • 跨平台性

    • 跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere
    • 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

    友情提示:

    • java具有跨平台性,JVM不具有跨平台性。不同的平台,JVM会略有区别,如linux上的JVM与Windows上的JVM就有不同。

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

Java语言运行机制及运行过程

  • Java两种核心机制

    Java虚拟机 (Java Virtal Machine)

    垃圾收集机制 (Garbage Collection)

核心机制——Java虚拟机

  • JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
  • 对于不同的平台,有不同的虚拟机。
  • 只有某平台提供了对应的java虚拟机,java程序才可在此平台运行
  • Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”

核心机制——垃圾回收

  • 不再使用的内存空间应回收—— 垃圾回收。
    在C/C++等语言中,由程序员负责回收无用内存。
    Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

有了垃圾回收机制,Java程序还会出现内存泄漏和内存溢出问题吗?Yes!

二 、Java环境搭建

见上篇笔记jdk的安装

认识JDK 、JRE 、JVM

  • JDK(Java Development Kit Java开发工具包)

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

    JDK = JRE + 开发工具集(例如Javac编译工具等)

    JRE = JVM + Java SE标准类库

配置环境变量path

1、为什么要配置环境变量?

为了在任意目录下都可以执行类似于javac这样的可执行程序。

举例:

  • 在dos命令行中敲入javac,出现错误提示:

  • 错误原因:当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。如果仍未找到,会出现以上的错误提示。所以进入到 jdk安装路径\bin目录下,执行javac,会看到javac参数提示信息。

2、配置JAVA_HOME的作用

​ 在后续的学习中会安装其他的工具,如Tomcat,Tomcat的配置文件中有一个变量名为JAVA_HOME,这个JAVA_HOME指向jdk的安装路径(bin的上一级目录),为了便于后面的使用,我们干脆提前设置一个JAVA_HOME存储jdk的安装路径。

三、一些常用的DOS命令

1、进入目录命令:cd

//进入根目录
cd/ 或 cd\

2、切换到上一级

cd..

3、进入当前盘的其他目录下

绝对路径:从根目录开始定位,例如:cd d:\test200\1 或者 cd d:/test200/1

相对路径:从当前目录开始定位,例如:..\..\..\test200\1 或者 ../../../test200/1

4、切换盘符命令

(1)直接盘符

例如要切换到D盘
d:

(2) 使用cd命令

例如:要切换到E盘,可以使用
    cd /D e:

5、查看当前目录下有什么内容

dir

6、新建目录:md (make directory)

///在当前目录下创建hello文件夹
md hello

//在当前目录下创建a,b,c三个文件夹
md a b c

//在d盘test文件夹下创建a文件夹
md d:\test\a

7、删除目录:rd

//删除空目录
rd 空目录名

//删除目录以及下面的子目录和文件,带询问
rd /S 非空目录名

//删除目录以及下面的子目录和文件,不带询问
rd /S/Q 非空目录名

8、新建空文件命令:type nul

tyype nul > 文件名.扩展名

9、追加内容到文件命令:echo

echo 内容 > 文件名.扩展名

10、复制(copy)或移动(move)文件

copy 源文件 目标目录\新文件名.扩展名
    
move 源文件 目标目录

11、删除文件命令:del

//删除指定文件
del 文件名.扩展名
del 目标目录\文件名.扩展名

//删除所有文件并询问
del *.*

//删除所有文件不询问
del /Q *.*

12、查看某个目录的下一级目录结构:tree

//tree 目录

tree /F 目录
/F   显示每个文件夹中文件的名称。

13、清屏命令

cls

四、入门程序——HelloWorld

如何编写并运行HelloWorld程序

Java程序开发三步骤:编写编译运行

编写Java源文件

1、在z:\practice目录下新建文本文件,完整的文件名修改为HelloWorld.java,其中文件名为HelloWorld,后缀名必须为.java

2、用notepad++等文本编辑器打开

3、写入以下代码

public class HelloWorld {
  	public static void main(String[] args) {
    	System.out.println("HelloWorld");
  	}
}

编译Java源文件

在DOS命令行中,进入z:\practice目录,使用javac命令进行编译

// javac 源文件名.扩展名
javac HelloWorld.java

运行Java程序

//java 类名
java HelloWorld

HelloWorld案例常见错误

1、单词拼写错误

2、类名与源文件名保持一致

3、严格区分大小写

4、不要出现中文目录

编码问题

1、字符编码问题

当cmd命令行窗口的字符编码与.java源文件的字符编码不一致,如何解决?

解决方案一:

在Notepad++等编辑器中,修改源文件的字符编码(使用本地编码)

解决方案二:

//在使用javac命令式,可以指定源文件的字符编码
javac -encoding utf-8 HelloWorld.java

由HelloWorld案例拓展的常识

1、源文件名与类名一致问题

(1)源文件名是否必须与类名一致?public呢?

如果这个类不是public,那么源文件名可以和类名不一致。

如果这个类是public,那么要求源文件名必须与类名一致。

我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。

(2)一个源文件中是否可以有多个类?public呢?

一个源文件中可以有多个类,编译后会生成多个.class字节码文件。

但是一个源文件只能有一个public的类。

(3)main必须在public的类中吗?

不是。

但是后面写代码时,基本上main习惯上都在public类中。

posted @ 2021-03-25 20:34  沙滩拾贝  阅读(42)  评论(0编辑  收藏  举报