• 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安装路径in目录下,执行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: est2001 或者 cd d:/test200/1

    相对路径:从当前目录开始定位,例如:...... est2001 或者 ../../../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:	esta
    

    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类中。

  • 相关阅读:
    通用测试用例(转载)
    微信小程序开发-使用阿里巴巴矢量图标
    flask框架启服务+json格式入参+postman获取上个接口的token作为下个接口的入参+关联接口【多测师_王sir】
    this.$set的正确使用
    vue中异步函数async和await的用法
    Tornado 异步协程coroutine原理
    nvm安装配置
    python基础
    数组for循环方法总结
    react 之props传值
  • 原文地址:https://www.cnblogs.com/tianwenxin/p/14579189.html
Copyright © 2020-2023  润新知