Java学习第一章

视频链接:https://www.bilibili.com/video/BV1Rx411876f?p=1
视频范围为P1——P22

1.做笔记软件: Edit Plus

在这里插入图片描述
安装完成后步骤:
1.取消文件自动备份
2.设置字体

2.计算机概述

软件工程师:通过计算机的某种编程语言完成软件的开发
计算机包括两部分:

分类内容
硬件鼠标,键盘,显示器等等
软件系统软件和应用软件

软件又继续分为两部分:

软件内容
系统软件直接和硬件交互的软件,如:window7,winxp等等
应用软件通常运行在系统软件中,如:QQ运行在windows操作系统上

通常说的软件开发一般指:使用计算机编程语言完成“应用软件”的开发

3.常用DOS命令

DOS命令编写地方:DOS命令窗口
DOS命令窗口:win+R键在系统输入框中输入cmd命令,如下:

在这里插入图片描述

最基本的window相关的DOS命令:

命令效果
exit退出当前DOS命令窗口
cls清屏
复制在DOS窗口的任意位置,点击鼠标右键,选择标记,选中要复制的内容,在DOS窗口的任意位置点击鼠标右键,此时被复制的内容已经到剪贴板了
dir列出当前目录下所有的子文件/子目录
cd【change directory(改变目录) 】用法: cd 目录的路径
cd..回到上级目录
cd\直接回到根目录
切换盘符c:回车 d:回车 e:回车 f:回车

注:
路径:绝对路径和相对路径

路径描述
绝对路径该路径从某个磁盘的盘符下作为出发点的路径
相对路径该路径从当前所在的路径下作为出发点的路径

4.Windows操作系统的设置—文件扩展名

在这里插入图片描述
在Java开发中一定要将文件扩展名打开,防止创建Java文件出现错误

5.计算机语言发展史

5.1 什么是计算机<编程>语言?

提前的人为的制定好的一套交流规则,只要遵守这套语法规则,那么人和计算机之间就可以很好的沟通和交流

5.2 计算机语言发展史

语言内容
第一代语言:机器语言主要编写二进制码,直接编写100100100100这样的二进制,以打孔机为代表
第二代语言:低级语言主要以汇编语言为代表。在低级语言中已经引入了一些英语单词,例如变量赋值采用mv
第三代语言:高级语言几乎和人类的语言完全相同,即使没有学习过计算机编程,只要看到这段代码就知道该代码主要完成什么功能,例如:C语言,C++,Java,…

编程语言的发展方向:向着人类更加容易理解的方向发展

6.Java语言的发展史

Java语言诞生于1995年,在1995年之前SUN公司(太阳微电子公司:该公司目前被Oracle(甲骨文:做数据库的)收购了)为了占领智能电子消费市场,派James Gosling领导团队开发了一个Oak(橡树)语言。
1996年JDK1.0诞生(Java开发工具包,做Java开发必须安装的一个工具包,从Oracle官网下载)
Java包括三大块:
——JavaSE(Java标准版)
——JavaEE(Java企业版)
——JavaME(Java微型版)
JavaSE是基础,以后主攻方向JavaEE

7.Java语言的特性【开源,免费,跨平台,纯面向对象】

7.1 简单性

相对而言的,例如:

  1. Java中不再支持多继承,C++是支持多继承的,多继承比较复杂
  2. C++中有指针,Java中屏蔽了指针的概念,所以相对来说Java是简单的
  3. Java语言底层是C++实现的,不是C语言

7.2 面向对象

Java是纯面向对象的,更符合人的思维模式,更容易理解

7.3 可移植性

概念:Java程序可以做到一次编译,到处运行
也就是说:Java程序可以在Windows操作系统上运行,不做修改,同样Java程序可以直接放到Linux操作系统上运行,这个被称为Java程序的可移植性,或者叫做跨平台
提出问题:Windows操作系统内核和Linux操作系统的内核肯定不同,他们这两个操作系统执行指令的方式也是不一样的
显然Java程序不能直接和操作系统打交道。因为Java程序只有一份,操作系统执行原理都不同。SUN的团队很聪明,他们想出一个解决方法:
让Java程序运行在一台虚拟的计算机(Java虚拟机,简称JVM)当中,Java虚拟机再和底层的操作系统打交道。
图示展示:
在这里插入图片描述

7.4 多线程

此处先不讲解!

7.5 健壮性

自动垃圾回收机制(GC机制)有关
Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心

7.6 安全性

此处先不讲解!

8.Java的加载和执行

Java程序的运行包括两个非常重要的阶段:编译阶段和运行阶段
在这里插入图片描述

8.1 编译阶段

编译阶段主要的任务:
        检查Java源程序是否符合Java语法,符合Java语法则能够生成正常的字节码文件(xxx.class),不符合则无法生成正常的字节码文件
字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。

编译阶段的过程:

  1. 程序员需要在硬盘的某个位置<随意位置>新建一个.java扩展名的文件,该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随便编写,必须符合Java语法规则<Java语法规则是需要记忆的>
  2. Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译
    javac怎么用呢?在哪用呢?
    ——javac的使用规则:
    javac java源文件的路径
    ——在DOS命令窗口中使用
    javac是一个java编译器工具
  3. 一个java源文件可以编译生成多个.class文件
  4. 字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源文件不要删除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头再重新修改java源程序,然后将java源程序重新编译生成新的class文件,然后再运行这个class程序,生成新的效果
  5. 编译结束之后,可以将class文件拷贝到其它操作系统当中运行,实现跨平台

8.2 运行阶段【可以在其它操作系统中跨平台】

JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe (java.exe命令主要负责运行阶段)
问题:java.exe在哪用?怎么用?
答:在DOS窗口中使用
答:使用方法: java 类名 

例如:硬盘上有一个A.class,那么就这么用:java A
错误方式:java A.class

运行阶段的过程
1.打开DOS命令窗口
2.输入:java A
3.java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader
4.ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM中
5.JVM将A.class字节码文件解释成二进制101010110这样的数据
6.然后操作系统执行二进制和底层硬件平台进行交互

9.开始第一个Java程序

注意事项:

  1. 保证计算机当中已经安装了文本编辑器EditPlus
  2. 安装JDK【从Oracle官网下载】,视频讲解JDK7

9.1 JDK,JRE,JVM之间的关系

JDK:Java开发环境(D:development),自带JRE
JRE:Java运行环境(R:run),自带JVM
JVM:Java(V:virtual)虚拟机

9.2 JDK目录的介绍

JDK/bin:该目录下存放了很多命令,例如javac.exe(负责编译)和java.exe(负责运行)

9.3 执行过程

  1. 开发HelloWorld.java源程序
  2. 将HelloWorld.java源程序通过javac工具进行编译:
    ——首先需要解决的问题是:javac命令是否可以用
    ——打开DOS命令窗口,直接输入javac,然后回车,出现以下:
    ’javac’不是内部或外部命令,也不是可运行的程序或批处理文件
    出现以上问题是因为:windows操作系统无法找到javac命令文件
    ——怎么解决以上javac不可用的问题?答:看9.4章节
  3. 运行Java程序:
    ——需要使用java.exe命令
    ——首先测试java命令是否可用
    ——使用方式:java 类名
    比如:硬盘上有HelloWorld.class,那么类名就是:HelloWorld
    java HelloWorld 一定要注意java命令后面跟的不是文件路径,是一个类的名字
    ——首先你需要先将DOS窗口中的目录切换到HelloWorld.class文件所在的目录
    ——然后直接执行:java HelloWorld

9.4 Windows操作系统是如何搜索硬盘上某个命令的呢?

  1. 首先会从当前目录下搜索
  2. 当前目录搜索不到的话,会从环境变量path指定的路径当中搜索某个命令
  3. 如果都搜索不到,则报以上的错误

——配置环境变量path
注意:path环境变量和Java语言没有关系,path环境变量是属于windows操作系统的一个知识点。
path环境变量是专门给windows操作系统指路的。

解决方案:javac要想能随意使用,需要将javac所在的目录配置到环境变量path当中
如:path=xxxx;路径

——javac命令怎么用?
java java源文件路径

注意:路径包括相对路径和绝对路径,都可以。

9.5 打开DOS命令窗口,执行java Helloworld 执行原理?

  1. java.exe命令会启动JVM
  2. JVM启动之后会启动类加载器ClassLoader
  3. ClassLoader会在硬盘上的某个位置搜索Helloworld.class字节码文件
  4. 找到该文件则执行,找不到该文件则报错

疑问:classLoader是在哪个位置上搜索Helloworld.class字节码文件的?
①默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
②当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath
③classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
④classpath是给ClassLoade类加教器指路的。
⑤设置这样的环境变量:classpath=D : \course\JavaProjects\02-JavasE\day02
打开dos命令窗口在任意位置,都可以执行:java Helloworld
⑥classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。
⑦综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。然后运行。
⑧当然,classpath也可以这样配置:classpath=.
注意:路径中"..“表示上级目录 路径中”."表示当前目录

9.6 关于Java源程序当中的注释

概念:出现在Java的源程序当中,对Java源代码的解释说明
注释不会被编译到.class字节码文件当中
一个好的开发习惯应该是多编写注释,这样程序的可读性比较强
Java中的注释怎么写呢?

注释备注
单行注释只注释当前,注释符号为://
多行注释注释符号为:/* 内容 */
javadoc注释注释符号为如下

javadoc注释:
在这里插入图片描述
**该注释比较专业,该注释信息会被javadoc.exe工具解析提取并生成帮助文档
**
举例为:

package Project_20220213;

//public表示公开的
//class表示定义一个类
//HelloWorld表示一个类名
public class HelloWorld {//表示定义一个公开的类,起名HelloWorld
	
	//类体中不允许直接编写Java语句【除声明变量之外】
	//System.out.println("Hello World!");
	
	//类体【记住】
	
	/*
	 * public表示公开的
	 * static表示静态的
	 * void表示空
	 * main表示方法名为main
	 * (String[] args)是一个main方法的形式参数列表 args可以改变,但通常不变
	 */
	
	//需要记住的是:
	//以下的方法是一个程序的“主方法”,是程序的执行入口
	//是sun公司规定的,固定编写方式
	
	public static void main(String[] args) {//表示定义一个公开的静态的主方法
		
		//方法体
		//方法体
		//方法体
		
		//Java语句【Java语句以“;”终止,分号必须是半角分号】
		//先记住:以下这样代码的作用是向控制台输出一段消息
		//以下的双引号必须是半角的双引号【是Java语法的一部分】
		//Java中所有的“字符串”都使用双引号括起来
		System.out.println("Hello World!");
		
		//再向控制台输出消息
		System.out.println("Hello liu!");
		
		//输出中文
		System.out.println("你好,刘!");
		
		//输出中文【提醒:以下程序员两边的双引号是“全角的”
		//这里的双引号不是Java语法的一部分,这里的全角的双引号只是一个普通的字符串】
		System.out.println("我是一个“程序员”");
	}
}

注:全角指的是中文形式下的输入,半角指英文形式下的输入

9.7 对HelloWorld程序进行解释

需要记忆
public
class
static
void
system.out.println("");向控制台输出消息
类体
方法体
类体中不能直接编写java语句【除声明变量之外】
一个java语句必须以";" 结束
方法体中可以编写多条java语句
主方法是程序的入口,固定写法,SUN规定的

9.8 public class 和class的区别

一个java源文件当中可以定义多个class
一个java源文件当中public的class不是必须的
一个class会定义生成一个xxx.class字节码文件
一个java源文件当中定于公开的类的话,public的class只能一个,并且该类的名称必须和java源文件名称一致
每一个class当中都可以编写main方法,都可以设定程序的入口,向执行B.class中的main方法:java B
注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。没有主方法会出现运行阶段的错误:
D: course\JavaProjects\02-JavaSE\day02>java Hello
错误:在类B中找不到主方法,请将主方法定义为:
public static void main (string [] args)

10.总结

第一章需要掌握的内容:

  1. 理解java的加载与执行
  2. 能够自己搭建java的开发环境
  3. 能够独立编写He1lowor1d程序,编译并运行
  4. 掌握环境变量path的原理以及如何配置
  5. 掌握环境变量classpath的原理以及如何配置
  6. java中的注释
  7. public class 和class 的区别
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值