day01

第一课 初步认识 Java

一、目标

1.了解程序的含义。

2.知道主流的编程语言有哪些。

3.了解Java的历史和前景。

4.会安装、配置Java开发环境。

5.会用记事本开发Java。

6了解Java虚拟机和平台原理。

7.知道反编译工具。

8.了解IDE和掌握esplice的使用。

9.会解决遇到的问题。

二.

Ⅰ. 程序

1.程序是一系列步骤的集合体。比如:要把大象装进冰箱里就是一个程序,第一步:打开冰箱门,第二步:把大象塞进去,第三部:关上冰箱门。

2.计算机程序就是在计算机中为了达到某种目的,或者为了实现何种效果而进行的一系列指令合集。比如:手机/电脑等中各种软件游戏,办公、音频软件;日常使用工具:银行ATM、挂号机;日常用器:路由器、电视、洗衣机…

3.程序员:专门编写计算机程序的人员。有很多别称:程序猿、程序媛、工程师、攻城狮、开发小gg 、开发小mm、码农…

Ⅱ. 主流的编程语言

1.程序就是在计算机中为了达到某种目的,或者为了实现何种效果而进行的一系列指令合集。程序设计语言又叫编程语言。

2.计算机识别的是机器语言(二进制),人类通用的数字是十进制的。

3编译器(解释器):人类很难记忆计算机指令所需的二进制数字,所以发明了编译器。发展到今日,已经可以用自然语言去表述计算机指令。然而直接使用自然语言出现的表述会太多(各有各的表述方法),所以开发者们定义了一套语法(基于自然语言),我们只需要按照人家语法去给计算机下达指令即可。

4.主流编程语言:Java、C、C++、Python、C#、PHP、JavaScript

5.编程语言分类:(1)按照是否接近计算机底层分为高级编程和低级编程语言:①Java、python是一种高级编程语言;②汇编语言是一种低级编程语言。(2)按照是否可以在运行时改变代码结构(运行前还是运行后确定变量的数据类型)分为动态语言和静态语言:①静态语言有C、C++、C#、Java…②动态语言有JavaScript、PHP、Python、Erlang…

Ⅲ. Java历史

  • 1991年 Sun公司的詹姆高斯林博士领导开发Green project,出现了oak语言

  • 1995年 oak更名为Java,正式诞生。

  • 1996年 发布Java1.0版本

  • 1998年 java发布1.2版本,从此Java出现了三个分支:

①J2 SE(Standard Edition)标准版本:语法基础、标准、核心。利用它可以开发桌面程序(这个分支被C++,C,C#抢占了市场)

②J2 ME(Micro Edition)微版本:用于移动端开发.利用它可以开发移动端程序(在这个分支被Android抢占了市场)

③J2 EE(Enterprise Edition)企业版本:用于企业级开发(微服务、大数据…),例如企业程序中的网站、平台、管理系统…

  • 2004年 J2系列和1.xxx系列更改为Java5…

  • 2009年 被Oracle收购

  • 2013年 Java8出现

  • 2019年1月1日 Java8后续版本收费

Ⅳ. 熟练掌握安装、配置Java开发环境

(1)从官网上下载JDk,选择合适的版本(针对电脑操作系统和位数来决定),安装JDk和JRE是为了准备:编译器、虚拟机。

(2)jdk安装目录中程序要了解Javac(Java complier java 编译器);java(无法直接运行会闪退,需要在DOS系统中运行)。

(3)在Windows中可通过Windows+R键->cmd可进入dos系统。(输入cmd右击以管理员身份运行)

在此系统中用命令(command)来执行想做的任务(熟练运用table补全,Dir查看当前目录内容,以及上下键来查看以前命令。)

一些常用的DOS操作:

打开\进入文件夹:cd 要进入的文件夹名/路径

进入上一级文件夹:cd…

进入当前磁盘根的目录(磁盘直接目录):cd/

查看文件夹下的所有内容:dir (directory目录)

  • 被标注了dir内容表示他是一个文件夹

  • 没被标注的是表示它是一个文件

  • **…**是表示上一级文件夹

  • **.**是表示当前文件夹
    -在这里插入图片描述
    切换盘符:盘符名:

(4)变量设置

①环境变量:Windows系统中内置的一些信息,方便我们在任何程序中,任何位置使用的信息。

  • path(路径)环境变量:在path环境变量中存储了一些在系统的任何程序,任何位置都能用到的路径信息。
  • 作用:在存储到path环境变量之后,可以在DOS系统中的任何位置执行该程序。

DOS系统中当你输入了一个程序名,它会自动在当前文件夹下查找是否有此程序,如果有此程序,就运行,没有此程序就会来到path环境变量中寻找存储的路径中是否有该程序,有的话,就运行,否则提示错误…

②环境变量设置的具体步骤

环境变量是在系统的高级设置中存储的。

  • 打开开始菜单,搜索环境变量 -> 系统环境变量

  • 先在系统变量中创建JAVA_HOME的系统变量,变量值为Java安装目录的bin目录的上一级。

    • JAVA_HOME配置的意义在于我们后期的很多软件都会识别此系统变量。
      在这里插入图片描述
  • 然后在path中添加%JAVA_HOME%\bin

    • %JAVA_HOME%引用JAVA_HOME系统变量的值,然后拼接上\bin之后,它就变成了最初我们单纯的在path中配置的java程序路径。

在这里插入图片描述

Ⅴ.用记事本程序编写Java程序

(1)利用对应语言的语法去编写代码(指令),我们使用记事本程序来编写Java程序。

(2)步骤

  1. 创建一个文本文档(记事本)

打开记事本编写源代码(一个程序的原始、根源代码)

  1. Java程序的基本架构
public class HelloWorld{}   类声明   以后编写Java代码都要先写此内容 
public static void main(String[] args){}  方法声明     声明的是主方法  程序的入口  运行必须写
System.out.println();  调用系统的输出流  可以在屏幕上打印出内容

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("Hello World!");
	}
}
  1. 使用javac.exe程序来编译源代码

    更改文件名为HelloWorld.java 编译器只识别.java文件

javac 要编译的源代码路径编译之后会出现一个.class文件(字节码/byte code文件)

4.使用java.exe程序来运行编译好的字节码文件

java 字节码文件的文件名

注意:不需要写扩展名.class

5.或者用记事本写完扩展名改为.java后,在空白处按住shift右击打开Powershell窗口,然后找到文件路径,用javac运行。

①注释:给代码添加的解释性的词汇、内容,便于开发人员和维护人员阅读。

要求:前期我们所编写的代码都要添加40%以上的注释

Java注释语法三种:

  • 单行注释://
  • 多行注释:/*注释内容*/
  • (了解)文档注释:/** 注释内容 */

②注意事项:

添加注释时应该添加在要解释的代码行的上方或者右侧。

注释的内容是不会被编译的,且不会被执行,不会影响到别的代码。

合理的注释有助于我们阅读代码,调整思路。

/*
 *作者:long天   
 *描述:是自己的第一个java程序
 *时间:2019-09-04 9:12:10
 */
public class HelloWorld{
	public static void main(String[] args){
        // 这是输出语句 输出Hell World这句话
		System.out.println("Hello World!");
	}
}

(4)代码规范

一个好的代码应该是给人看的,而不是给机器看的。

  • 代码必须注意单词的大小写(严格区分)

  • 代码要注意缩进,表现出层级关系,缩写四个空格。

  • 声明结构注意花括号,左侧花括号不换行,右侧花括号换行,花括号是成对出现,结尾花括号注意和此声明开头对齐。(在esplice中可用Ctrl+shift+F可使代码格式化,但不是万能的)

  • Java源代码文件名应该遵循大驼峰命名法(帕斯卡命名法),不允许使用中文命名

    例如:HelloWorld 首字母大写,如果有多个单词,后面的每个单词首字母都大写。

Ⅵ . 了解Java虚拟机与跨平台的原理

  • Java之所以一经出世就改变了开发行业的格局,是因为java采用了虚拟机运行的机制实现了跨平台,不采用直接编译二进制文件,而被编译为伪二进制文件(Java中的字节码文件.class文件)。

  • Java采用在各种平台的上对应的虚拟机,然后我们编写的Java代码,以后会直接运行在Java虚拟机上,这样就实现了跨平台,但是又因为虚拟机的原因,无法直接面向计算机,性能会有损失(虚拟机决定)(后续关于jvm深入研究调优有时间的可以看看《深入java虚拟机第二版》周志明这本书)

  • JVM(Java虚拟机)

  • image

    从这个结构不难看出,class文件被jvm装载以后,经过jvm的内存空间调配,最终是由执行引擎完成class文件的执行。当然这个过程还有其他角色模块的协助,这些模块协同配合才能让一个java程序成功的运行,下面就详细介绍这些模板,它们也是后面学习jvm最重要的部分。

    内存空间:

    JVM内存空间包含:方法区、java堆、java栈、本地方法栈。

    方法区是各个线程共享的区域,存放类信息、常量、静态变量。

    java堆也是线程共享的区域,我们的类的实例就放在这个区域,可以想象你的一个系统会产生很多实例,因此java堆的空间也是最大的。如果java堆空间不足了,程序会抛出OutOfMemoryError异常。

    java栈是每个线程私有的区域,它的生命周期与线程相同,一个线程对应一个java栈,每执行一个方法就会往栈中压入一个元素,这个元素叫“栈帧”,而栈帧中包括了方法中的局部变量、用于存放中间状态值的操作栈。如果java栈空间不足了,程序会抛出StackOverflowError异常,想一想什么情况下会容易产生这个错误,对,递归,递归如果深度很深,就会执行大量的方法,方法越多java栈的占用空间越大。

    每个帧代表一个方法,Java方法有两种返回方式,return和抛出异常,两种方式都会导致该方法对应的帧出栈和释放内存。

    ③ 栈运行原理

     栈中的数据都是以栈帧(Stack  Frame)的格式存在,栈帧是一个内存区块,是一个数据集,是一个有关方法和运行期数据的数据集,当一个方法A被调用时就产生了一个栈帧F1,并被压入到栈中,A方法又调用了B方法,于是产生栈帧F2也被压入栈,B方法又调用了C方法,于是产生栈帧F3也被压入栈……  依次执行完毕后,先弹出后进......F3栈帧,再弹出F2栈帧,再弹出F1栈帧。
    
     遵循“先进后出”/“后进先出”原则。
    
    帧的组成:局部变量区(包括方法参数和局部变量,对于instance方法,还要首先保存this类型,其中方法参数按照声明顺序严格放置,局部变量可以任意放置),操作数栈,帧数据区(用来帮助支持常量池的解析,正常方法返回和异常处理)。
    

    本地方法栈角色和java栈类似,只不过它是用来表示执行本地方法的,本地方法栈存放的方法调用本地方法接口,最终调用本地方法库,实现与操作系统、硬件交互的目的。

    PC寄存器,说到这里我们的类已经加载了,实例对象、方法、静态变量都去了自己改去的地方,那么问题来了,程序该怎么执行,哪个方法先执行,哪个方法后执行,这些指令执行的顺序就是PC寄存器在管,它的作用就是控制程序指令的执行顺序。

    执行引擎当然就是根据PC寄存器调配的指令顺序,依次执行程序指令。

    静态变量+常量+类信息+运行时常量池存在方法区中,实例变量存在堆内存中。

    基本类型的变量和对象的引用变量都是在函数的栈内存中分配。

Ⅶ. 了解反编译工具的使用

  • 编译:将自然语言的内容翻译给计算机能识别的二进制过程。(源代码 ->字节码)

  • 反编译:将计算机能识别的二进制内容反向解释成自然语言。(字节码->源代码)

  • 常用的反编译工具:jad、jd-gui…

Ⅷ. IDE-开发工具

(1)IDE全名为Integrated Development Environment (集成开发环境)。IDE是集成了代码编写、分析、编译、调试等功能的服务套,使用IDE可以快速开发。

(2)开发Java的主流IDE:

  • Eclipse - Eclipse基金会开源(开放源代码的)
  • MyEclipse - IBM和Genuitec公司合作开发的 (基于Eclipse基金会开源的内容 然后定制开发成的 集成了大量的Java EE组件) (收费)
  • Intellij IDEA - Jet Brains开发的 (收费)
  • 我们使用的是esplice

(3)Eclips安装步骤

①前提:Eclipse下载安装非常简单,但是必须保证JAVA_HOME被配置正常!

Eclipse的版本必须选择配套的JDK(从·霓虹灯Neon版本开始需要JDK1.8)

  • 双击打开Eclipse,会弹出工作空间选择的窗口

    工作空间(work_space) : 用于存储日后的配置信息和编写的Java代码

  • 进入主界面,切换到Java视图(右击有新建java工程、class选项表示已进入java视图)

  • 在左侧创建Java工程

    Java Project(工程、项目):代表某个项目程序,实质是一个复杂的文件夹。

    )

  • 创建好的Java工程,长成下方的样子。

    src:编写源代码

    在src上右键,创建package(包),再创建Class(类)

  • 然后编写代码

  • 右键run as -> Java Application运行

    Ⅸ. 遇到的问题

  • JDK安装之后(1.8),Oracle公司它将安装包更改了以下,每次安装完之后会自动给你path环境变量中添加一些内容。(如果cmd输入Javac无法使用,在系统变量中删除C:\program Files\Commoniles\Orcal这一路径)。

  • 我的世界等Java游戏,可能当初你配置了它的运行环境,但是注意它会对我们现在的环境产生影响。

  • 写完代码必须注意Ctrl+S快捷键 保存

  • 认为自己打开了CMD,然后从桌面上看到了Java源代码,就认为可以直接使用到它(必须知道文件路径)

  • 编译能正常完成(javac),但是无法进行运行(Javac识别的是Java文件,Java 识别的是你写的类)

  • 配置JAVA_HOME,配置完之后 没有点确定

自动给你path环境变量中添加一些内容。(如果cmd输入Javac无法使用,在系统变量中删除C:\program Files\Commoniles\Orcal这一路径)。

  • 我的世界等Java游戏,可能当初你配置了它的运行环境,但是注意它会对我们现在的环境产生影响。

  • 写完代码必须注意Ctrl+S快捷键 保存

  • 认为自己打开了CMD,然后从桌面上看到了Java源代码,就认为可以直接使用到它(必须知道文件路径)

  • 编译能正常完成(javac),但是无法进行运行(Javac识别的是Java文件,Java 识别的是你写的类)

  • 配置JAVA_HOME,配置完之后 没有点确定

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值