day_01总结

Day_01知识整理

Java SE _第1章 Java 概述

1.1 计算机语言概述

1、计算机语言是什么

就是人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。

2、 计算机发展

  • 第一代:机器语言

  • 第二代:汇编语言

  • 第三代:高级语言

3、计算机分类

1.2 Java语言概述

1、Java语言发展历史

Java诞生于SUN,09年SUN被Oracle(甲骨文)收购;

Java之父是詹姆斯.高斯林;

1996年发布JDK1.0版;

项目最稳定是基于java5版本、java8版本、java11版本;最新准上市的java18版本。

2、Java语言的特点

(1)优点

面向对象(支持封装、继承、多态、面向对象编程,让程序更好达到高内聚,低耦合的标准)

支持分布式;

健壮性;

安全性高;

动态性;

多线程;

跨平台性

(2)缺点

语法过于复杂,严谨,对程序员的约束比较多。 一般适用于大型网站开发,整个架构会比较重。

3、Java技术体系平台

Java SE:标准版(桌面程序、控制台开发);

Java ME:嵌入式开发(手机、小家电。。。);

Java EE:企业级开发(Web端、服务器开发);

4、 Java语言跨平台原理

Java虚拟机(JVM,Java Virtual Machine)是由软件技术模拟出计算机运行的一个虚拟的计算机,它负责解释执行字节码指令集。也就是说,只要一台机器可以运行Java的虚拟机,那么就能运行Java语言编写的程序。而不同的平台,需要安装不同的Java虚拟机程序。那么我们编写完Java程序之后,需要先将.java的源文件编译为.class的字节码文件,然后在Java虚拟机中来执行这些字节码文件。

5、JVM、JRE、JDK的关系

  • JVM(Java Virtual Machine ):Java虚拟机,是运行所有Java程序的假想计算机,是Java程序的运行环境之一,也是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在JVM 之上。

  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库

  • JDK (Java Development's Kit):是Java程序开发工具包,包含JRE 和开发人员使用的工具。

我们想要运行一个已有的Java程序,那么只需安装JRE 即可。

我们想要开发一个全新的Java程序,那么必须安装JDK ,其内部包含JRE

1.3 开发环境搭建

1、JDK的下载

  • 下载网址:www.oracle.com

  • 下载步骤:

    • 登录Oracle公司官网,www.oracle.com,如图所示:在底部选择Developers开发者

    • Developers页面中间的技术分类部分,选择Java,单击进入,如图所示:

      展示的是最新Java版本,例如Java17。单击Download Java,然后选择具体的版本下载。

    • 选择Download Java按钮后

选择Accept License Agreement

注册或登录后下载

2、JDK的安装

  • 安装步骤:

    • 双击jdk-8u202-windows-x64.exe文件,并单击下一步,如图所示:

    • 取消独立JRE的安装,单击公共JRE前的下拉列表,选择此功能将不可用如图所示:

    • 修改安装路径,单击更改,如图所示:

    • 将安装路径修改为D:\develop\Java\jdk1.8.0_202\,并单击确定,如图所示:

    • 单击下一步,如图所示:

    • 稍后几秒,安装完成,如图所示:

    • 目录结构,如图所示:

3、配置环境变量

环境: Java程序等运行的环境

变量: 用来存储值的一个名词

JAVA_HOME:是一个变量 用来存储JDK的安装根路径值,例如:D:\ProgramFiles\Java\jdk1.8.0_271 path:是一个变量

用来存储Windows操作系统软件找 命令的路径值 Windows操作系统找我们要运行的命令,例如:javac命令, (1)它会先在当前目录下寻找,例如:C:\Users\final> (2)它会到path变量中记录的路径下寻找 如果这些路径下都没有javac命令对应的程序,那么就会报 'javac' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

需要告诉Windows操作系统去哪里找javac命令对应的程序。 通过path记录 JDK的bin目录路径值。

2、如何配置path环境变量?

方式一:

我的电脑(右键)--》属性-->高级系统设置-->高级-->环境变量--》path 把D:\ProgramFiles\Java\jdk1.8.0_271\bin直接添加到path中

方式二:JAVA_HOME+path

先在环境变量中新建一个变量叫做JAVA_HOME

JAVA_HOME的值是D:\ProgramFiles\Java\jdk1.8.0_271 注意,这里不带bin,因为其他软件是用JDK下的bin以外的资源(源码、jre等)

然后在path中这么做 %JAVA_HOME%\bin 注意:这里加%的原因是告诉操作系统JAVA_HOME是我们自己定义的变量, 要取它的值作为路径值。 %JAVA_HOME%等价于D:\ProgramFiles\Java\jdk1.8.0_271 %JAVA_HOME%\bin等价于D:\ProgramFiles\Java\jdk1.8.0_271\bin

4、验证JDK是否安装成功

命令提示符 运行 javac 、java 、java -version

注意:

bin目录(用于方可执行程序 javac运行工具);

incloude目录(存放头文件);

jre目录(java运行环境);

lib目录(放java库);

src.zip(资源文件java基础源代码);

1.3 入门程序HelloWorld

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

运行程序步骤

在DOS命令中,输入javac+文件名.java

生成xx.class文件

在DOS命令行中,在字节码文件目录下,使用java 命令进行运行。

命令:

java 主类名字

主类是指包含main方法的类,main方法是Java程序的入口:

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

举例:

java HelloWorld

1.4附加内容+问题答疑

开发工具

  • 简单的开发工具:

记事本等文本编辑器 例如:notepad++

  • 高级的开发工具

IDEA

开发步骤

  1. 编写代码 (1)无论选择哪个开发工具,代码文件保存后是xx.java文件 例如:第一个Java程序保存为HelloWorld.java (2)代码的结构

    Java代码的结构: 类{ 方法(){ 语句; } }

    注意结构的括号是{},花括号,大括号 方法名后面先是(),圆括号,小括号,再跟{} 语句后面是; 所有的标点符号都是英文输入法半角状态下输入。

    (3)Java程序的入口是main方法 public static void main(String[] args){//方法 } (4)语句 语句的作用是完成程序的功能

  2. 编译代码 每一次写完代码(包括修改完)都要重新编译。 编译的工具是:javac.exe 格式: javac xx.java 注意: (1)必须指明源文件的名称(包含后缀名.java) (2)如果文件路径不对,或文件的名称不对,会报 C:>javac HelloWorld.java javac: 找不到文件: HelloWorld.java 用法: javac <options> <source files> -help 用于列出可能的选项 (3)Notepad++软件的文件菜单-->打开所在文件夹-->命令行 (4)编译成功后,会产生类对应的.class字节码文件

  3. 运行代码 运行工具:java.exe 格式: java 主类名 注意: (1)java后面的主类名只写类名,不写.class,也不写.java (2)主类名是指包含main方法的类名称

    */
    class HelloWorld{//class是表示类,HelloWorld是类名
        //public static void main(String[] args)这是main方法的签名,它是固定的
        //main方法是Java程序的入口
        public static void main(String[] args){//方法
            //标准的输出语句,""中的内容,原样输出
            System.out.println("java");
        }
        
    }

问题答疑

问题1:

/*
问题1:
   在外面打开cmd命令行窗口,读取环境变量是正确的,
   但是在notepad++软件-->文件菜单-->打开所在文件夹-->命令行中,报javac等不是内部或外部命令。
解决方案:
   notepad++软件用管理员身份运行。   
*/

问题2:

/*
问题2:
    .java文件中的中文,在编译时乱码,无法正常编译。
解决方案:
第一种方案:
   javac xx.java 
​
用法: javac <options> <source files>   
javac -encoding UTF-8 Problem2.java
​
第二种方案:
在notepad++软件里面设置xx.java源文件的编码为GBK(ANSI:按照操作系统默认编码处理,中文操作系统默认编码是GBK)
格式菜单-->转为GBK(ANSI),之后保存
​
javac xx.java
​
注意:
一劳永逸的解决,notepad++软件里面设置新建文件的默认编码。
notepad++软件的设置菜单-->首选项-->新建-->右边选择ANSI。
​
notepad++软件的设置菜单-->首选项-->新建-->右边现在默认的语言是Java。
​
*/
class Problem2{
    public static void main(String[] args){
        System.out.println("尚硅谷");
    }
}

问题3:

/*
问题3:字母大小写问题
(1)文件名:xx.java
如果类(class)的前面没有public,那么文件名的大小写是无所谓的。
并且javac命令后面是不区分大小写的。
​
(2)类名:严格区分大小写的
java命令后面是主类名
代码中class 单词后面是类名
​
(3)Java代码中,所有的关键字,类名、方法名等都是严格区分大小写
class,public,static,void,main,out,println都是小写的。
类名,String,System这些是首字母大写
​
建议:无论是文件名还是代码、还是类名等等,都区分大小写,养成程序员的好习惯。
*/
class Problem3{
    public static void main(string[] args){//String的s应该是大写的
        system.out.println("大小写问题");//System的s应该是大写的
    }
}

问题4:

/*
问题4:
	类名和xx.java的源文件名是否要一致?

思考:如果类名和xx.java	源文件名不一致,那么如何编译和运行?
编译:
javac  xx.java(注意这里是xx.java源文件名)
例如:javac WenTi4.java

发现,编译后xx.class字节码文件的名字和类名是一致的。
运行:
java 主类名
例如:java Problem4

如果错了,都会找不到:
D:\atguigu\javaee\JavaSE20220227\code>java WenTi4
错误: 找不到或无法加载主类 WenTi4

D:\atguigu\javaee\JavaSE20220227\code>javac Problem4.java
javac: 找不到文件: Problem4.java
用法: javac <options> <source files>
-help 用于列出可能的选项

思考:如果类名和xx.java源文件名不一致有什么问题吗?
当class前面有public单词之后,会导致编译失败:
D:\atguigu\javaee\JavaSE20220227\code>javac WenTi4.java
WenTi4.java:26: 错误: 类Problem4是公共的, 
应在名为 Problem4.java 的文件中声明
public class Problem4{
       ^
1 个错误

结论:如果类是public的,那么xx.java的源文件名必须和类名一致。

思考:一个.java文件中,可以有几个public的类呢?
一个

建议:一个.java文件写一个主类,xx.java源文件名就和主类名保持一致。
     尽量避免错误。
*/
public class Problem4{
	public static void main(String[] args){
		System.out.println("源文件名和类名不一致问题解决");
	}
}


问题5:

/*
问题5:
	格式问题
(1)缩进
class Problem5{
	public static void main(String[] args){
		System.out.println("缩进");
	}
}
每套一层{},就往右缩进一个Tab键。

(2){}对齐问题
有两种比较流行的风格:
第一种:
类{
	方法(){
		语句;
	}
}

第二种:
类
{
	方法()
	{
		语句;
	}
}

(3)空格
*/
class Problem5{
	public static void main(String[] args){
		System.out.println("缩进");
		System.out.println("缩进");
		System.out.println("缩进");
		
		if(true){
			System.out.println("第三场{}");
			System.out.println("第三场{}");
			System.out.println("第三场{}");
		}
	}
}

上一篇:CentOS 7安装Java


下一篇:Vagrant 快速入门