Java第一章

1、window相关DOS命令:
    * DOS命令在DOS命令窗口中编写
    * DOS命令窗口打开:开始菜单-->运行-->输入cmd-->回车【默认打开的黑色命令窗口,这就是DOS窗口】
    * 常见的DOS命令:
        - exit 退出当前DOS命令窗口        
        - cls 清屏
        - DOS窗口中的内容复制:在DOS窗口中的任意位置,点击鼠标右键,然后选择标记,
            接下来选中要复制的内容,在DOS窗口的任意位置点击鼠标邮件,
            此时被复制的内容已经到剪贴板了。
            在需要粘贴的位置粘贴即可。
        - dir 列出当前目录下的所有的子文件/子目录
        - cd 命令
            * cd命令表示:change directory【改变目录】
            * 用法:cd 目录的路径
            * 路径包括相对路径和绝对路径。
            * 绝对路径:表示该路径从某个磁盘的盘符下作为出发点的路径
            * 相对路径:表示该路径从当前所在的路径下作为出发点的路径
            * 假设当前所在的路径是C:\Users\Administrator,那么在此时输入
                cd Desktop,那么其中Desktop就是一个相对路径,从当前所在的
                C:\Users\Administrator这个路径作为出发点,开始找Desktop目录。
            * 假设是这样写的:cd C:\Users\Administrator\Desktop
                其中C:\Users\Administrator\Desktop路径就是一个绝对路径。
        - cd ..回到上级目录。
        - cd \直接回到根目录。
        - 切换盘符:
            c:回车
            d:回车
            e:回车
            f:回车

2、Java语言特性【开源、免费、纯面向对象、跨平台】
    * 简单性:
        相对而言的,例如java中不再支持多继承,c++是支持多继承的,多继承比较复杂C++中有指针,
        Java中屏藏了指针的概念。
        所以相对来说Java是简单的。
        Java语言底层是c++实现的。不是c语言。
    * 面向对象
        Java是纯面向对象的。更符合的人的思维模式。更容易理解。
    * 可移植性
        什么是可移植性?
            java程序可以做到一次编译,到处运行。
            也就是说java程序可以在windows操作系统上运行,
            不做任何修改,同样的java程序可以直接放到Linux操作系统上运行,
            这个被称为Java程序的可移植性,或者叫做跨平台。
            
        Windows操作系统内核和Linux操作系统的内核肯定不同,他们这两个操作系统执行指令的方式也是不一样的。
        
        结论:显然java程序不能直接和操作系统打交道。因为java程序只有一份。操作系统执行原理都不同。
        
        SUN的团队很聪明,他们想了一个办法,他们让java程序运行在一台虚拟的计算机
        当中,这个虚拟的计算机叫做Java虚拟机,简称JVM。Java虚拟机再和底层的操作系统打交道。


    * 多线程
    * 健壮性:
        和自动垃圾回收机制有关,自动垃圾回收机制简称GC机制。
        Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心。
    * 安全性

3、Java的加载与执行
    * Java程序的运行包括两个非常重要的阶段
        - 编译阶段
        - 运行阶段
    * 编译阶段
        - 编译阶段主要的任务是检查Java源程序是否符合Java语法,
            符合Java语法则能够生成正常的字节码文件
            不符合Java语法规则则无法生成字节码文件
            
        - 字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。
        
        - 编译阶段的过程:
            * 程序员需要在硬盘的某个位置<位置随意>新建一个.java扩展名的文件,
                该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。
                而这个源程序是不能随意编写,必须符合Java语法规则<Java语法规则是需要记忆的>
            * Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译。
                javac怎么用呢?在哪用呢?
                
                    - javac的使用规则:
                        javac java源文件的路径
                    -在Dos命令窗口中使用。
                    
                javac是一个java编译器工具/命令。

            * 一个java源文件可以编译生成多个.class文件。
            * 字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,
                java源文件删除并不会影响java程序的执行。但是一般java源程序不要删除,
                因为class文件最终执行效果可能不是我们想要的,
                那么这个时候需要回头再重新修改java源程序,
                然后将java源程序重新编译生成新的class文件,
                然后再运行这个class程序,生成新的效果。
                
            * 编译结束之后,可以将class文件拷贝到其他操作系统当中运行。【跨平台】

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

            - JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe
                java.exe命令主要负责运行阶段。
                
            - java.exe在哪里用?怎么用?
                - 在Dos窗口中使用。
                - java.exe怎么用呢?
                    java 类名
                    例如:
                    硬盘上有一个A.class,那么就这样用: java A
                    硬盘上有一个B.class,那么就这样用: java B
                    硬盘上有一个c.class,那么就这样用: java c
                    千万要注意:不要写成这样:java A.c1as的【这种方式是错误的】
                    
            - 运行阶段的过程是:
                * 打开DOs命令窗口
                
                * 输入:java A
                
                * java.exe命令会启动Jara虚拟机(JVM),JVM会启动类加载器classLoader
                
                * ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JwM当中。
                
                * JVM将A.class字节码文件解释成二进制1010101010这样数据。
                
                * 然后操作系统执行二进制和底层硬件平台进行交互。

4、开始第一个Java程序

    * 安装JDK【JDK一般需要从oracle的官网下载】

    * JDK、JRE、JVM的关系搞清楚
    
    * JDK目录的介绍:
        JDK/bin:该目录下存放了很多命令,例如javac.exe和java.exe
        javac.exe负责编译
        java.exe负责运行
            
    * 开发HelloWorld.java源程序

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


    * 将HelloWorld.java源程序通过javac工具进行编译:
        - 首先需要解决的问题是:javac命令是否可用
        - 打开DOS命令窗口,直接输入javac,然后回车,出现以下:
            'javac'不是内部或外部命令,也不是可运行的程序
            或批处理文件。
            出现以上问题是因为: windows操作系统无法找到javac命令文件

        - 怎么解决以上javac不可用的问题?
            windows操作系统是如何搜索硬盘上某个命令的呢?
            * 首先会从当前目录下搜索
            * 当前目录搜索不到的话,会从环境变量path指定的路径当中搜索某个命令
            * 如果都搜索不到,则报以上的错误。

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

            * javac要想能随意使用,需要将javac所在的目录配置到环境变量path当中:
                path=xxxx;D:\Program Files\Java\jdk-17.0.5\bin【win10环境下直接分行存放,不要使用“;”分隔】
                
        - javac命令怎么用?
            java java源文件路径
            注意:路径包括相对路径和绝对路径,都可以。
                在cmd中输入C:\Users\admin>javac D:\Documents\JavaProject\day01\HelloWorld.java,
                在HelloWorld.java所在目录下生成HelloWorld.class
    


    * 运行java程序:
        - 需要使用java.exe命令
        
        - 首先测试java命令是否可用
            
        - 使用方式:
            java 类名
            硬盘上有Helloworld.class,那么类名就是:Helloworld
            java Helloworld
            一定要注意:java命令后面跟的不是文件路径,是一个类的名字。

 

 

        - 首先你需要先将DOS窗口中的目录切换到Helloworld.class文件所在目录。

        - 然后直接执行:java HelloWorld
            C:\Users\admin>cd..
            C:\Users>cd..
            C:\>D:
            D:\>cd D:\Documents\JavaProject\day01【切换到HelloWorld.class所在目录】
            D:\Documents\JavaProject\day01>java HelloWorld【运行】
            hello world【输出结果】
            

 

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

        
6、关于java源程序当中的注释:
    * 什么是注释?注释的作用是什么?
        - 出现在java的源程序当中,对java源代码的解释说明
        - 注释不会被编译到.class字节码文件当中
        - 一个好的开发习惯应该是多编写注释,这样程序的可读性比较强。

    * java中的注释怎么写呢?
        - 单行注释
            //单行注释,只注释当前行

        - 多行注释
            /*
                多行注释
                多行注释
                多行注释
                多行注释
                多行注释
            */

        - javadoc注释
            /**
            *    javadoc注释
            *    javadoc注释
            *    javadoc注释
            *    javadoc注释
            *    javadoc注释
            */
            注意:这种注释是比较专业的注释,该注释信息会被javadoc.exe工具解析提取并生成帮助文档。

7、对HelloWor1d程序进行解释:
    需要记忆:
        * public表示公开的
        * class表示定义一个类
        * static表示静态的
        * void表示空
        * System.out.println("");向控制台输出消息
        * 类体
        * 方法体
        * 类体中不能直接编写java语句【除声明变量之外】
        * 一个java语句必须以";"结束
        * 方法体中可以编写多条java语句
        * 主方法是程序的入口,固定写法。
    HelloWorld.java代码编写
 

//public表示公开的
//class表示定义一个类
//HelloWorld表示一个类名
public class HelloWorld{ //表示定义一个公开的类,起名HelloWorld

	//类体中不允许直接编写java语句【除声明变量之外】
	//System.out.println("hello world");

	//类体
	/*
		public表示公开的
		static表示静态的
		void表示空
		main表示方法名是main
		(string[] args)是一个main方法的形式参数列表
		
		需要记住的是:
			以下的方法是一个程序的主方法,是程序的执行入口

	*/
	public static void main(String[] args){ //表示定义一个公开的静态的主方法,args可以随便写
	
		//方法体
		
		//Java语句【Java语句以";"终止,分号必须是半角分号】
		//以下代码的作用是向控制台输出一段消息
		//以下的双引号必须是半角的双引号【是java语法的一部分】
		//java中所有的"字符串"都使用双引号括起来。
		System.out.println("hello world");
		
		//再向控制台输出消息
		System.out.println("hello jackson");

		//输出中文
		System.out.println("你好,杰克!");

		//输出中文【提醒:以下程序员两边的双引号是“全角的”,
		//这里的双引号不是java语法的一部分,这里的全角的双引号只是一个普通的字符串】
		System.out.println("我是一个“程序员”");

	}
}


    HelloWorld编译
        C:\Users\admin>javac D:\Documents\JavaProject\day01\HelloWorld.java
        


    HelloWorld运行
        C:\Users\admin>cd..
        C:\Users>cd..
        C:\>D:
        D:\>cd D:\Documents\JavaProject\day01
        D:\Documents\JavaProject\day01>java HelloWorld
        hello world
        hello jackson
        你好,杰克!
        我是一个“程序员”
    
4、public class和class的区别:
    * 一个java源文件当中可以定义多个class
    
    * 一个java源文件当中public的class不是必须的
    
    * 一个class会定义生成一个xxx.class字节码文件
    
    * 一个java源文件当中定义公开的类的话,只能有一个,并且该类名称必须和java源文件名称一致。
    
    * 每一个class当中都可以编写main方法,都可以设定程序的入口,
    想执行B.class中的main方法: java B
    想执行E.c1ass中的main方法:java E
    
    * 注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。
    没有主方法会出现运行阶段的错误:
        D:\Documents\JavaProject\day02>java Hello
        错误: 在类 Hello 中找不到 main 方法, 请将 main 方法定义为:
            public static void main(String[] args)
        否则 JavaFX 应用程序类必须扩展javafx.application.Application

 
  
    * K.java代码编写
        

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

class B
{
}

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

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

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

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


    * K.java 编译
        C:\Users\admin>javac D:\Documents\JavaProject\day02\K.java
        编译后,在K.java所在文件夹下生成A.class、B.class、C.class、D.class、E.class、F.class、G.class


    * K.java 运行
        C:\Users\admin>cd..
        C:\Users>cd..
        C:\>D:
        D:\>cd D:\Documents\JavaProject\day02
        D:\Documents\JavaProject\day02>java A
        java A
        D:\Documents\JavaProject\day02>java B
        错误: 在类 B 中找不到 main 方法, 请将 main 方法定义为:
            public static void main(String[] args)
        否则 JavaFX 应用程序类必须扩展javafx.application.Application
        D:\Documents\JavaProject\day02>java c
        错误: 找不到或无法加载主类 c
        原因: java.lang.NoClassDefFoundError: C (wrong name: c)
        D:\Documents\JavaProject\day02>java C
        java C

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值