java入门

学习目标:

1.熟悉计算机编程语言
2.熟练掌握java特点
3.熟练配置java开发环境
4.熟练编写入门程序
5.熟练编写注释信息

一、计算机语言

1.1 什么是编程语言

计算机语言就是人与计算机交流互动的语言,也就是我们平常说的编程语言。

编程语言按照发展历程分为机器语言、汇编语言、高级语言。

1.2 编程语言历程

1.2.1 机器语言

计算机的第一代语言:机器语言

计算机直接识别二进制代码,0代表低电位,1代表高电位;如下图所示

1.2.2 汇编语言

计算机第二代语言:汇编语言

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数。

1.2.3 高级语言

计算机第三代语言:高级语言。

高级语言又分为面向过程语言、面向对象语言。

  1. 面向过程语言

    1. c语言
  2. 面向对象语言

    1. c++

    2. java

高级语言java代码如下:

二、java语言概述

java是SUN(Stanford University Network,斯坦福大学网络公司 ) 公司1995年推出的一 门高级编程语言。

java是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以 在Web浏览器中运行。

Java技术在web方面的不断成熟,已经形成了一个十分完善的生态圈,也因此成为网站开发的首选语言。

2.1 java语言的发展历程

  • 1991年 Green项目,开发语言最初命名为Oak (橡树)
  • 1994年,开发组意识到Oak 非常适合于互联网
  • 1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作
  • 1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
  • 1998年,发布JDK 1.2,同年发布企业平台J2EE
  • 1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
  • 2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0
  • 2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME
  • 2009年,Oracle公司收购SUN,交易价格74亿美元
  • 2011年,发布JDK 7.0
  • 2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本
  • 2017年,发布JDK 9.0,最大限度实现模块化
  • 2018年3月,发布JDK 10.0,版本号也称为18.3
  • 2018年9月,发布JDK 11.0,版本号也称为18.9

2.2 java技术平台

Java SE 标准版
支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API。如桌面的扫雷程序、扑克牌游戏等。
Java EE企业版
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如 :ServletJsp等,主要针对于Web应用程序开发。版本以前称为J2EE
**Java ME小型版 **
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加 入了针对移动终端的支持,此版本以前称为J2ME

2.3 java语言特征

  • Java是面向对象语言:Java语言提供类、接口和继承等原语,为了简单起见, 只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制

  • Java语言是健壮的:Java的强类型机制、异常处理、垃圾的自动收集等是Java程序 健壮性的重要保证。

  • Java语言是安全的:Java通常被用在网络环境中,为此,Java提供了一个安全机 制以防恶意代码的攻击。如:安全防范机制(类ClassLoader)。

  • Java语言是原生支持多线程的:在Java语言中,线程是一种特殊的对象,它必须 由Thread类或其子(孙)类来创建。

  • 跨平台性:java程序可以在不同系统的jvm中运行,实现了跨平台运行;如图所示:

2.4 java运行机制

java的核心运行机制有虚拟机机制,垃圾回收机制。

2.4.1 虚拟机机制

Java虚拟机JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。

负责执行指令,管理数据、内存、寄存器。

对于不同的平台,有不同的虚拟机。

只有某平台提供了对应的java虚拟机,java程序在jvm上运行才能屏蔽了底层运行平台的差别,实现跨平台运行

2.4.2 垃圾回收机制

  • 在C/C++等语言中,由程序员负责回收无用内存。
  • Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

2.5 小节

  1. jdk的核心版本是什么?jdk5 jdk8 jdk11
  2. java技术平台有哪些? javaSE javaEE javaME
  3. java运行机制是什么? jvm运行机制,拉结回收机制

三、准备开发环境

3.1 什么是jdk、jre

JDK(Java Development Kit Java开发工具包) ,JRE(Java Runtime Environment Java运行环境) ,其中JDK中包含JRE环境。

因此jdk、jre、jvm三者的关系为,jdk包含jre、jre包含jvm。

3.2 安装jdk

【第一步】下载jdk,官网https://www.oracle.com

【第二步】安装jdk

3.3 配置环境变量

3.3.1 配置环境变量

我们必须配置环境变量,才能保证写在任意位置的java代码都能够被执行;否则只能将java代码写在C:\Program Files\Java\jdk1.8.0_131\bin去执行。

配置环境变量的过程如下

3.3.2 检测环境遍历

打开dos窗口(windos键+r),输入cmd,回车

在任意目录下输入java -version,查看java版本

3.4 配置JAVA_HOME

配置环境变量只能保证java基础程序的运行;

将来运行java服务器必须配置JAVA_HOME,配置JAVA_HOME就是配置JDK所在目录;

接下来我们配置JAVA_HOME,并优化环境变量

【第一步】新建JAVA_HOME变量

配置JAVA_HOME 变量

【第二步】修改环境变量,通过引入JAVA_HOME变量值配置环境变量

【第三步】通过java -version命令检测

3.5 小节

  1. jdk、jre
  2. jdk下载安装
  3. 配置环境变量
  4. 配置JAVA_HOME
  5. 优化环境变量

四、入门程序准备

在编写入门程序之前,我们需要安装高级记事本工具和掌握一些基础的dos命令。

4.1 安装高级技术本

点击安装,下一步,下一步即可。

4.2 简单的dos命令

dos命令是通过dos窗口输入命令的方式去操作计算机,图形化界面的操作计算机的底层也是通过dos命令实现的。

为了更好的理解java程序运行过程,我们需要学习几个简单的命令

命令 示例 描述
dir dir 以列表的方式查看当前目录下所有内容
md md aa 在当前目录创建aa目录
rd rd aa 删除aa目录
cd cd C:\Users\Administrator 以绝对路径的方式跳转目录
cd cd .. 返回上级目录
cd cd Users 进入下一级目录Users
exit exit 退出dos窗口

4.3 小节

  1. 安装高级记事本
  2. dos命令的简单应用

五、编写入门程序

5.1 开发步骤

开发helloworld入门程序的步骤为:编写源文件→编译文件→运行文件三步;如下所示:

注意在开发程序之前把文件后缀名设置为显示的

5.2 编写入门程序

【1】新建一个HelloWorld.java文件,用高级技术本打开

【2】编写HelloWorld程序

【3】编译.java文件生成.class文件

【4】运行HelloWorld.class ,输入命令的时候不用输入后缀名.class

5.3 编写注释

什么是注释?

用于解释说明代码含义的文字就是注释;注释的作用在于方便程序员阅读代码,jvm不会执行注释。

注释分为单行注释、多行注释、文档注释,如下所示

5.4 特别注意

一个.java文件内可以编写多个类,但是只能有一个类被public修饰,且被public修饰的类必须与文件名一致

示例1:

/**
一个.java文件内可以编写多个类,但是只能有一个类被public修饰,
且被public修饰的类必须与文件名一致
*/
public class Demo1{
public static void main(String[] args){
System.out.println("胖叔讲java");
}
}
class A{ }
class B{ }

示例2: 文件是Demo2.java 类名是Demo,编译后是Demo.class

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

5.5 小节

  1. java程序的运行过程?
  2. java支持几种注释?

六、总结

  1. 编程语言历程
  2. java语言特征
  3. jdk、jre、jvm三者之间的关系
  4. 编写入门程序
  5. 注释

1_day01_java入门的更多相关文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  2. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  3. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  4. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  5. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  6. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  7. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  8. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  9. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

随机推荐

  1. C++学习笔记——多线程(1)

    目前在做推理引擎开发相关的工作,这块内容的话,对工程能力的要求还是比较高的,不再像以前只是写一些Python脚本训训模型就可以了,而且深入了解C++之后,也能感受到Python较C++暴露出的缺点,另 ...

  2. 出现bash: ifconfig:command not found的解决办法,即安装ifconfig命令(亲测有效)

    初装centos 7时,运行config报 command not found 错误, ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息,可是有些时候最小化安装CentOS ...

  3. FinClip 前端之 VUE 核心原理总结

    小程序框架有很多,都是支持前端JavaScript语言的,也是支持 vue.js 框架的.FinClip 小程序是兼容各家平台的.所以在学习了框架使用之后的进阶就要熟悉框架的底层原理. 1.数据响应式 ...

  4. vmware 无法安装 win 10

    因为默认是 UEFI,但我们并没有 UEFI 引导分区,所以需要改成 BIOS

  5. ubuntu 20.04 source mirror(aliyun)

    x64 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://m ...

  6. 操作系统:Tails

    Tor是一个网络 如今,Tor浏览器可能是Tor的代言人,但Tor的真正力量在于Tor网络.大家都知道,"Tor"实际上是"The Onion Router"( ...

  7. 697. Degree of an Array - LeetCode

    697. Degree of an Array - LeetCode Question 697. Degree of an Array - LeetCode Solution 理解两个概念: 数组的度 ...

  8. Spark——Standalone 环境安装及简单使用

    Standalone 环境安装 将 spark-3.0.0-bin-hadoop3.2.tgz 文件解压缩在指定位置(/opt/module) tar -zxvf spark-3.0.0-bin-ha ...

  9. 做一个能对标阿里云的前端APM工具(下)

    上篇请访问这里做一个能对标阿里云的前端APM工具(上) 样本多样性问题 上一小节中的实施方案是微观的,即单次性的.具体的.但是从宏观上看,我需要保证性能测试是公允的,符合大众预期的.为了达到这种效果, ...

  10. 三面阿里,被Java面试官虐哭!现场还原真实的“被虐”场景

    前言 人人都有大厂梦,我也不例外,从大三开始,就一直想进入阿里工作,大毕竟是大厂,想想也没那么容易,不过好在自己学历还过得去,项目经验也有得讲,所以今年也斗胆尝试了一下,直接就投了阿里云计算.简历是过 ...