【JavaSE】初识Java

简介: Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++中难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

一. Java语言概述

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++中难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。


1. Java语言的组成

JavaSE、JavaEE、JavaME共同组成了Java的整个体系


1.1 什么是JavaSE

JavaSE全称Java Standard Edition,即Java标准版,以前称为J2SE。它是学习Java语言的基础,包括:


面向对象

多线程

IO流

JavaSwing

其他

1.2 什么是JavaEE

JavaEE全称Java Enterprise Edition,即Java企业版,以前称J2EE。它是在JavaSE的基础上,添砖加瓦后出现的一种规范,通常是各种框架。包括:


serclet

jstl

jsp

spring

mybatis

其他

1.3 什么是JavaME

JavaME全称Java Micro Edition,即Java微缩版,以前称J2ME。主要应用于嵌入式开发,比如手机程序的开发,J2ME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境,包括虚拟机和一系列标准化的Java API。


2. Java语言的产生

首先拜见Java祖师爷:詹姆斯·高斯林(James Gosling)。他是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。


011ed53d5e10486eab59b2ad6fd5f53b.png

1991 年, 由Sun公司带领的开发小组(詹姆斯·高斯林也是当时小组的一员), 想设计一种小型的计算机语言,主要用于有线电视转换盒这类的消费设备。 由于这类设备的处理能力和内存都非常有限,所以语言就必须设计的非常小且能够生成紧凑的代码。 另外,由于不同的厂商会选择不同的CPU, 因此很重要的一点就是这种语言不应该与任何特定的体系结构绑定。这个项目当时被命名为 “Green”。


Sun公司的人都有Unix的应用背景, 所以开发的语言就以C++为基础。并把这种语言称为 “Oak”,后来, Sun公司的人发现, Oak是一种已经有的计算机语言的名字, 于是,1995将其改名为 “Java”。


Java的logo如下图所示:86a72398544f40158bc84efe685645de.png



可以看到图标是杯热气腾腾的咖啡。因为高斯林老爷子喜欢喝咖啡,而印度尼西亚有个叫爪哇岛的岛屿土壤非常肥沃,自然条件优越,咖啡等物产丰富,所以给语言命名叫做“Java”。


JavaScript和Java什么关系?

我们经常会在一些语言排行榜上同时看到Java和JavaScript,那么他俩什么关系呢?


要说到这俩的关系,举个例子。就相当于雷锋和雷峰塔的关系或者说老婆和老婆饼的关系(没有一点关系…),最开始JavaScript叫liveScript,当时Java太火了,于是乎liveScript更名为JavaScript借势宣传一波。


JavaScript(常简称为JS)是一门轻量级,解释型,具有第一级函数的面向对象语言,向来以Web网页的脚本语言而著称,但现在也可以用在许多非浏览器环境,例如node.js或者Apache CouchDB。要使用JavaScript是非常简单的,您无需安装特定的开发环境,只需要一个简单的记事本即可编写JavaScript脚本。它具有基本的程序语法和语言结构以及弱数据类型,而这些都是很容易学习和使用的。


JavaScript和HTML、CSS共同组成前端三剑客:

c2103447ebfe4452a296eefd677b55df.png


3. Java语言的优势

语言那么多,每个领域都有更合适的编程语言:


Python:处理、分析数据

C/C++:处理和操作系统底层相关

PHP:编写网页

Java:编写应用、WEB方面。

当然Java和C++现在都还可以用来进行后台开发。


二. 初识Java的main方法

1. main方法示例

下面我们在Notepad++中写一个最简单的Java程序:

1283baa97bbe4564b119521497bd8605.png


把文件保存后命名为HelloWorld.java,可以看到系统识别该文件类型为JAVA文件,因为我们是以.java为后缀的:

8846ef4f0ad140b9b8831ea52a4879e5.png


上面程序可能初学者看到后会一头雾水,可以说,Java的main方法应该是当前主流编程语言中最“长”的。

3cc05bdaee2546199edc70a96c25405d.png


通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:

源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,类或许只会有一个。类的内容必须包含在花括号里面。

类:类中带有一个或多个方法。方法必须在类的内部声明。

方法:在方法的花括号中编写方法应该执行的语句。

总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。


2. 运行Java程序

学习Java我们一开始都要安装JDK,它是Java开发环境的核心组件,为Java程序编译、运行和调试提供所有工具支持。


如何确定我们已经在自己电脑上安装了JDK呢?Windows + r后输入cmd打开命令行控制器:

627d4c2a27cd418cbfd32cb007d251bb.png


完成后会打开如下界面:

5c4a9f15db0941c2a66ffa2490200d48.png


我们输入java -version可以看到我们安装的JDK版本号:

06b707c086034259a437d66bdd20e2d5.png


输入javac可以看到所有JDK支持的命令:

f78507d3a2954f739a0ab51f2e0ee446.png


以上两步都没问题说明JDK顺利安装完成。


下面我们先进入到刚刚编写的java源文件所在的目录中,命令为:cd 文件路径

f50833c9f121417fbae0657aee78290d.png


输入javac + 文件名.java开始编译源文件,编译完成后会生成一个同名.class文件,它是一个二进制机器(字节)码文件:

af9520d84e8b441e9345191943d7dba1.png


获得机器码文件后我们可以拿着这个文件直接到JVM(Java虚拟机)上运行,而JVM又是包含在JDK中的,我们需输入java 文件名即可运行:

6585204cddb94d1bad97834619a339fe.png


main函数中的几点补充

在源文件中,如果一个类是public所修饰的,则类名需要和文件名一样,否则编译会失败

4ed98863bb0e4cd08982f5c546d82abb.png

不是一个文件编译生成一个字节码文件,而是一个类生成一个字节码文件。在一个文件中可以有多个类,但不建定义多个,一般一个文件只定义一个类就够了(软要求)

50c62cfcb3b34b13be381676910c0a74.png

javac的默认编码格式是gbk,而中文属于utf-8,如果源文件代码中有写到中文,则需在编译时指定编码格式为utf-8

50c62cfcb3b34b13be381676910c0a74.png

Java中的三种打印方式

74ecb0a254d5470ab56397ad1f009cb8.png

总结

源文件是如何编译、运行的?

68cf509e4e46415eae3a467f22f6dc80.png


JDK、JRE、JVM三者关系?

ae660d5b9f14403c92eebd3d5c1c5d09.png

相关文章
|
6月前
|
存储 Java 测试技术
滚雪球学Java(18):解密JavaSE中的堆栈:你真的了解Java内存吗?
【4月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
64 1
滚雪球学Java(18):解密JavaSE中的堆栈:你真的了解Java内存吗?
|
6月前
|
安全 Java 调度
【Java】JavaSE实现多线程
【Java】JavaSE实现多线程
87 1
|
6月前
|
Java C++ 索引
【Java】JavaSE基础知识
【Java】JavaSE基础知识
136 0
|
6月前
|
Java
滚雪球学Java(17):探索循环控制:JavaSE中的break与continue秘技
【4月更文挑战第6天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
66 1
滚雪球学Java(17):探索循环控制:JavaSE中的break与continue秘技
|
6月前
|
存储 安全 Java
滚雪球学Java(19):JavaSE中的内存管理:你所不知道的秘密
【4月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
68 4
滚雪球学Java(19):JavaSE中的内存管理:你所不知道的秘密
|
6月前
|
Java 程序员 编译器
JavaSE&Java8 Lambda 表达式
JavaSE&Java8 Lambda 表达式
30 0
|
6月前
|
存储 Java 程序员
JavaSE&Java的异常
JavaSE&Java的异常
47 0
|
6月前
|
存储 Java 测试技术
滚雪球学Java(11):高效编程之道:精通JavaSE顺序结构的关键技巧
【2月更文挑战第23天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
71 2
|
6月前
|
存储 编解码 移动开发
【Java】JavaSE的IO流操作
【Java】JavaSE的IO流操作
79 0
|
6月前
|
Java 大数据
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day04】——JavaSE
Java大数据面试复习30天冲刺 - 日积月累,每日五题【Day04】——JavaSE
64 0