栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第一篇 我为什么在这里&HelloWorld

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第一篇 我为什么在这里&HelloWorld

时间段:2022/2/17-2022-2/20

(忽略格式,后期上手了整理)

为什么选择java?

过去半年,无论是什么原因或者是谁的原因,我已经很明显能感觉到自己已经偏离了一种正常的状态了。无论hhl给我的影响有多大,对我自己来说,都不应该继续这样下去。很明显,我不甘于做那样的一个人;幸运的是,我对了解新事物始终有很大的兴趣。

为什么要写这个?

监督、记录并改变。

更新内容以及更新规律?

一周一更吧!记录一下过去的一周的收获,如果有有趣的事发生,在首尾某个地方可能会体现。

还有什么要说的吗?

随便记记,就当复习笔记使用了,或者说,给未来一个谈资?

对了,还有一句话:

你是什么样的人,取决于你选择成为什么样的人。

以下是这段时间的学习记录:初入编程世界!(当然本科的计算机相关课程不算)

第一天:

1、从今天开始成为一名JAVA软件工程师!!!

2、什么是软件工程师?

3、什么是软件?
    应用软件的开发
4、最基本的windows的相关DOS命令
    exit 退出当前窗口命令
    cls 清屏
    dir 列出当前目录下所有的子文件/子目录
    cd 完成目录的切换
    cd..回到上级目录
    cd 直接回到根路径
    切换盘符;C:+回车
    del A.class 删除A.class文件
    del *.class 删除所有class文件
    ipconfig 查看本机ip地址(ip地址的配置信息)
    ipconfig /all 查看更详细的网络信息:包含网卡物理地址(这个地址具有全球唯一性,又叫MAC地址)
    ping ip地址(或域名)  测试两台电脑/服务器 是否可以正常建立通信
    ping ip地址(或域名)-t  测试网络是否稳定 
    Ctrl+C 强行终止一直执行的DOS命令
5、Windows操作系统的设置
    设置文件扩展名可见.java

6、Java的加载与执行

  *Java程序的运行包含两个重要阶段:编译期、运行期

  *.Java源程序---.class字节码文件

  *编译阶段
    编译阶段的主要任务是检查Java源程序是否符合Java语法,
    符合则能够生成正常的字节码文件,不符合则无法生成

    编译阶段的过程:
    程序员需要在硬盘中的某个位置(随意)新建一个.Java扩展名的文件
    该文件被称为源文件,源文件中编写的是Java源代码/源程序
    这个源程序是不能随意编写,必须符合Java语法规则(java语法规则是需要记忆的)

    java编译器:javac.exe
    java程序员需要使用JDK中自带的javac.exe命令进行java程序的编译
    javac怎么用?在哪儿用?
      -使用规则
      javac java源文件的路径
      在DOS命令窗口中使用
     javac是一个java编译工具/命令
   
    一个java源文件可以编译生成多个class文件。

    编译完成之后,可以将class文件copy到其它操作系统当中运行(跨平台)

   *运行阶段

    JDK安装之后,除了自带javac.exe,还有一个java.exe命令/工具,主要负责运行阶段
    A.class 类   A:类名
    java.exe使用规则:
      -在DOS窗口中使用
      -java A
      比如:有一个A.class文件,则:java A
             有一个B.class文件,则:java B
         有一个B.class文件,则:java C
         千万不要写成java A.class(错误用法)
    运行阶段的过程:
    
       *打开DOS命令窗口

       *输入java A

       *java.exe命令会启动java虚拟机(JVM),JVM会启动类加载器classloader

       *classloader回去硬盘上搜索A.class文件,找到该文件并将该字节码文件装载到JVM中

       *JVM将A.class文件解释成二进制010111000这样的数据

       *然后操作系统执行二进制和底层硬件平台进行交互

 7、JDK、JRE、JVM
    JDK:java开发工具箱
    JRE:java运行环境
    JVM:java虚拟机

    JDK包含JRE包含JVM


8、常用的文本编辑快捷键

    回到行首  home
    回到行尾  end
    光标行尾:shift+home 选中整行
    光标行首:shift+end 选中整行
    回到文件头部:Ctrl+home
    回到文件头部:Ctrl+end
    选中一个单词:鼠标双击
    选中一行:鼠标三击
    不用鼠标选中单词:Ctrl+shift+左/右


9、编写helloworld
   
   安装JDK

10、编写
    括号(){}[]成对写

11、第一个Java程序:HelloWWorld
    
11.1、Java源代码只要修改,必须重新编译生成新的class字节码文件

11.2、编译阶段Javac
    
    怎么编译?使用什么命令?这个命令怎么使用?
      需要使用的命令是Javac.exe
    这个命令需要先测试:在DOS窗口里检查Javac命令是否可用
    配置path环境变量:计算机属性-高级系统设置-环境变量-双击或其它
      环境变量当中都是路径,用半角分号隔开
      环境变量包括:系统变量跟用户变量
    系统变量:范围大,对计算机所有用户都起作用
    用户变量:只作用于当前用户
    path=A;B;C;D...path是环境变量的名字,A为环境变量的值
    -----------------------------------------------------------------------------------------------

    Javac命令怎么用?
      Javac Java源文件的路径
      路径分为:绝对路径和相对路径:带盘符为绝对路径
    神操作???怎么在dos中快速定位到文件路径??
      把Java源文件直接拖进dos命令就可直接生成路径
      直接在对应文件地址栏的路径后面回车cmd

11.3、运行阶段
    运行的前提是生成了class文件
    怎么运行?使用什么命令?
       使用JDK的bin目录下的:Java.exe命令来运行
    测试Java.exe是否可用
       DOS下:Java -version
    语法格式
       Java 类名
       比如:java HelloWorld
    运行Java程序需要哪些步骤?
       第一步:先使用cd命令切换到xxx.class文件所在的路径
       第二步:执行java xxx

12、其它环境变量
    JAVA_HOME:JDK所属的环境变量,目前不用配置
    后期学习到javaWEB时需要安装Tomcat服务器,才需要必须配置
    
13、研究"java HelloWorld"执行过程以及原理

    DOS F:JAVAcourse3-javaprojects2-javaSEchapter01>java HelloWorld后发生了什么?

    第一步:先启动JVM虚拟机
    第二步:JVM启动后,JVM会去启动类加载器"classloader"
      类加载器的作用:加载类,本质上,类加载器复杂去硬盘上找"类"对应的class字节码文件
    第三步:类加载器如果在硬盘上找不到对应的字节码文件,会报错:
      错误: 找不到或无法加载主类
      类加载器如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码文件装载到JVM中,JVM启动"解释器"将字节码解释为"1010111001"这种二进制码,操作系统执行二进制码和硬件交互

    神操作!!!用过的DOS命令可以通过上下箭头翻出来!! 
    问题1???
      默认情况下,类加载器去硬盘上找“字节码”文件的时候,默认从哪里找?
        当前路径下
    问题2???
      能不能给类加载器指定一个路径,让类加载器去指定的路径下加载字节码文件?
        答案:可以,但是我们需要设置一个环境变量:classpath
      classpath是一个环境变量,是给类加载器指路的,classpath环境变量隶属于Java,属于Java特有
      classpath=A路径;B路径;....A路径为变量值
      classpath环境变量在Windows中没有,需要新建!!!
        新建方法:计算机属性-高级系统设置-环境变量-新建
        配置了classpath变量以后,类加载器会且只会去已经配置好的路径下找class文件

      结论:到目前为止,classpath环境变量不需要配置
      但必须理解classpath环境变量是干什么的!!!
      在没有配置classpath时,默认从当前路径下加载,配置了以后只能去指定路径加载!!
      .:代表当前路径

14、(了解即可,不需要掌握)高版本JDK新特性
    高版本JDK中,有了这样一个新特性,可以这样一步到位:
    java x/y/z/xxx.java
    java后面直接加java源文件的路径
    这个特性是为了简化开发而提出的,但实际上底层的实现原理还是和以前一样的
    以上命令在执行过程中,还是会先进行编译,然后再运行,并且以上的运行方式编译生成的class文件在硬盘上看不到,不存在

15、关于第一个程序代码的解释说明(见HelloWorld.java文件)
    注释:对代码的解释说明
    三类注释:
    1)//  这种注释属于单行注释,只注释两个//后面的
    2)
    3)
    javadoc注释,这类注释可以都bin目录下的javadoc.exe文件解析提取并生成到帮助文档里

以下是编写的相关程序:


//  这种注释属于单行注释,只注释两个//后面的





public class HelloWorld{//这是一个类,类名叫做
	public static void main(String[] args){
		System.out.println("Hello World");
		System.out.println("动力火车");
	}
}
public class Test{//声明/定义一个公开的类,起个名字叫Test

	//类体

	//整个这一块的代码被称为:main方法(程序的入口,sun公司java语言规定的)
	//也就是说,JVM在执行程序的时候,会主动寻找这样一个方法,没有这个规格的方法,程序是无法执行的
	//main方法也可以叫做主方法
	//注意:方法必须得放到"类体"中,不能放在类体外面
	//任何程序都要有一个入口,没有入口进不来,无法执行
	public static void main(String[] args){//这是一个入口方法
		//注意:args可以改名字,随意,对于主方法来说,只有这个位置可以改,其它位置不能动
	
		//方法体
		//注意:方法体由一行一行的"java语句"构成
		//并且非常重要的是,任何一条java语句必须以";"结尾
		//分号代表一条语句的结束
		//非常重要的是,方法体中的代码遵循自上而下的顺序一次逐行执行
		
		System.out.println("Test 1");

		//System.out.println();这行代码的作用是向控制台输出一句话,就是这个作用,没有别的作用
		//注意,如果println后面的小括号里的内容是一个"字符串"的话,必须使用英文双引号括起来
		//双引号也要成对写(规定)
 		System.out.println("Test 2");
	} 

	//能再定义一个入口吗?不能,有语法错误,会编译错误


	//方法二


	//方法三
}
public class Test2{


	//主方法,入口
	//类体中应该是方法,而不是java语句,编译会报错
	//必须有入口,不一定非要方法,即:不能直接输出语句
	public static void main(String[] sasa){
		System.out.println("Test 2");
	}
}
public class Test3{
	public static void main(String[] args){
		//这个不加双引号行吗?可以,因为它是数字
		//是数字,加双引号行吗?行,但它就变成了一个字符串,但输出到控制台上一个样子没什么区别
		//但本质不一样,一个是数字,一个是字符串
		//对于数字来说,可以进行+-*/运算
		System.out.println(100+20);//120
		System.out.println(100-20);//80
		System.out.println(100*20);//2000
		System.out.println(100/20);//5

	}
}

class A{
	public static void main(String[] args){//一般一个软件的执行入口只有一个,不会出现多个,有这一个就够了
		
	}
}
class B{
	public static void main(String[] args){//一般一个软件的执行入口只有一个,不会出现多个
}
class C{
	public static void main(String[] args){//一般一个软件的执行入口只有一个,不会出现多个
public class work2{
	public static void main(String[] args) {
		System.out.println("---------------------------------------------------------------------");
		System.out.println("|手机商品列表                                                      |");
		System.out.println("---------------------------------------------------------------------");
		System.out.println("|商品编号       |商品编号     |单价(元)                         |");
		System.out.println("---------------------------------------------------------------------");
		System.out.println("|1399203919     |A型号         |1299.20                             |");
		System.out.println("---------------------------------------------------------------------");
		System.out.println("|1399203920     |B型号         |1299.20                             |");
		System.out.println("---------------------------------------------------------------------");
		System.out.println("|1399203921     |C型号         |1299.20                             |");
		System.out.println("---------------------------------------------------------------------");
		System.out.println("|1399203922     |D型号         |1299.20                             |");
	}
}

	

第二天:

1、标识符
1.1、到底什么是标识符?
       凡是程序员自己有权利命名的单词都叫标示符
1.2、标识符可以标识什么?
       可以标识
        类名
        方法名
        变量名
        接口名
        常量名
1.3、问题???
    main是一个方法的名称,属于标识符,但是不可更改,SUN公司固定死的

1.4、标识符的命名规则
    什么是命名规则?
      命名规则属于语法机制,必须遵守,不遵守则不符合语法,这样的话编译器会报错
      规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符号$组成,不能含有其它符号(包括空格)
      规则2:标识符不能由数字开头
      规则3:关键字和保留字不能做标识符。例如:public、class、static、void、int等这些蓝色的主体都是关键字,不能做标识符。
      规则4:标识符严格区分大小写
      规则5:标识符没有长度限制

1.5、文件名可以由数字开头命名
    但是注意:定义公共的类public 不能由数字开头,因为public定义的类的名字必须与文件名相同,文件名可以123,但是对于public来说,123这个类名(标识符)是不合法的。

1.6、标识符命名规范
    标识符除了命名规则以外,还有命名规范
    1)他俩的区别是:规则是语法,不规则会报错;规范是大家约定俗成的,一般大家都统一按照规范来。增强可读性、易理解
    2)具体有:
       规范一:见名知意(一看就知道啥意思)
       规范二:遵循驼峰命名方式(比如:BiaoShiFuTest,一眼就能看出多少个单词)
       规范三:类名、接口名有特殊要求:首字母大写,后面每个单词首字母大写(比如:BiaoShiFuTest、UserTest)
       规范四:变量名、方法名有特殊要求:首字母小写,后面每个单词首字母大写(比如:nianLing、xingMing)
       规范五:所有常量名大写,单词间用_隔开(比如:USER_AGE)

2、关键字
   
   3.1、什么是关键字
       在sun公司开发java语言的时候,提前定义了一些具有特殊含义的单词,这些单词全部小写,具有特殊含义,不能用作标识符
   
   3.2、凡是在EditPlus中以蓝色字体存在的都是关键字,具有特殊含义,全部小写
       注意:java语言中是严格区分大小写的,比如public跟Public不一样,后者就不是关键字了

   3.3、关键字有哪些?需要背吗?
       关键字有:
      public
      static
      void
      class
      byte
      short
      int
      long
      float
      double
      boolean
      char
      true
      false
      if
      while
      for
      private
      protected
      ....
    对于这些关键字来说,不需要专门去记忆,学到后面会一直重复

4、变量
    4.1、关于程序中的数据?
       开发软件解决现实中的问题-现实中的问题大多使用数据描述
       所以软件执行过程中最主要的就是对数据的处理。

       软件在处理数据之前需要能够表示数据,在java代码中,怎么去表示数据呢?
       在java中有这样一个概念:字面量
       10
       1.23
       true
       false
       "abc"
       'a'
       以上这些都是数据,在程序中都被叫做“字面量”

       字面量可以分为很多种类:
          整数型字面量:1 2 3 100 -20 ...
          浮点型字面量:3.14 1.2 1.5 ...
          布尔型字面量:true、false就这两个

           字符型字面量:'a' 'b' '中' ...
          字符串字面量:"abc" "a" "中国" ...
          需要注意的是:字符型和字符串型都是描述了现实世界中的文字,所有的字符型都需要''括起来,所有的字符串型都需要""括起来。
          字符型只能是单个字符,字符串无所谓

          在语法级别上,怎么区分字符型跟字符串型?(通过单双引号)
//4.2、什么是变量?
//分析:如果只有字面量,没有变量机制会有什么问题?
//内存说明:10是一个数据,在内存中占用一定的    空间
//10+20=30:在内存中找出一块空间存储10,再找一块存储20,CPU负责“+”,得出的结果30再找一块空间存储
//思考:以下的10占用一块还是三块空间?答案:虽然都是10,但占用三块
        System.out.println(10);
        System.out.println(10);
        System.out.println(10);//只有字面量机制会重复占用内存空间

        //定义/声明一个变量,起名i
        int i=1000;
        //以下这5次访问都是访问的同一块内存空间(使用变量后,内存得到了重复利用)
        System.out.println(i);
        System.out.println(i);
        System.out.println(i);
        System.out.println(i);
        System.out.println(i);
        
        //以下程序表示访问的是字符i及字符串i,和变量没有关系!
        System.out.println('i');
        System.out.println("i");

4.3、javadoc的使用
    了解即可    

相关代码:



public class IdentifierTest{
	public static void main(String[] arg){
	}

	//dosome是一个方法名,可以改成其它名字
	public static void dosome(){
		//k是一个变量名
		int k=100;
	}
}

class helloworld
{
}

//虽然java中的标识符严格区分大小写,但是对于类名来说,无论大小写,谁在前生成谁.class,故最好让类名是不同的。
class Helloworld1
{
}
class helloworld1
{
}


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756697.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号