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. 【Istio实际操作篇】Istio入门,10分钟快速安装

    @ 目录 前言 本文说明 请大家务必查看 环境准备 详细版 入门:搭建步骤 Istio软件包下载 下载Istio 卸载 简洁版 安装 卸载 学习不走弯路,gz号「yeTechLog」 前言 上一篇讲了 ...

  2. Nginx的常用配置

    Nginx配置文件结构 设置worker进程的用户,指的linux中的用户,会涉及到nginx操作目录或文件的一些权限,默认为 nobodyuser root; worker进程工作数设置,一般来说C ...

  3. Rainbond结合NeuVector实践容器安全管理

    前言 Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器.Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期.但是随着云原生时代的一点点 ...

  4. UDP协议,多道技术,进程,同步与异步,阻塞与非阻塞

    UDP协议 简介 UDP叫做用户数据报协议,是OSI七层参考模型中传输层使用的协议,他提供的是不可靠传输,既它在传输过程 中不保证数据的完整性! 端口号 UDP使用IP地址和端口号进行标识,以此将数据 ...

  5. java并发编程-StampedLock高性能读写锁

    目录 一.读写锁 二.悲观读锁 三.乐观读 欢迎关注我的博客,更多精品知识合集 一.读写锁 在我的<java并发编程>上一篇文章中为大家介绍了<ReentrantLock读写锁> ...

  6. zabbix 添加监控交换机温度item

    首先需要获取到交换机温度对应的OID,可以官方文档进行查询(多为私有OID),以盛科为例 官方文档查询到温度节点对于的OID为 10.0.3.102 1.3.6.1.4.1.27975.37.1.3. ...

  7. 【工具-Nginx】从入门安装到高可用集群搭建

    文章已收录至https://lichong.work,转载请注明原文链接. ps:欢迎关注公众号"Fun肆编程"或添加我的私人微信交流经验 一.Nginx安装配置及常用命令 1.环 ...

  8. STM32时钟系统配置程序源码深入分析

    一.分析程序的目的 最近我在移植实时系统是遇到了一些问题,所以决定深入了解系统时钟的配置过程,当然想要学好stm32的小伙伴也有必要学习好时钟系统的配置,所以我将学习的过程再次记录,有写得不好的地方, ...

  9. neo4j删除节点和关系

    两种方法: 一.用下列 Cypher 语句: match (n) detach delete n 原理:匹配所有的节点,然后进行删除. 二. 从文件系统上删除对应的数据库. 1.停掉服务: 2.删除 ...

  10. 技术分享 | app自动化测试(Android)--App 控件定位

    原文链接 客户端的页面通过 XML 来实现 UI 的布局,页面的 UI 布局作为一个树形结构,而树叶被定义为节点.这里的节点也就对应了要定位的元素,节点的上级节点,定义了元素的布局结构.在 XML 布 ...