IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【从0到1学Java】之Java概述及初识 -> 正文阅读

[Java知识库]【从0到1学Java】之Java概述及初识

初识Java

1.1 Java是什么?

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个由一系

列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛

应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

下面我们通过Java官方提供的数据来一起感受一下,Java到底有多“火”。

image-20210729173717555

1.2 Java之父

图片摘自百度百科

image-20210729182521995

1.3为什么选择Java

数据是最能让人信服的手段之一,Java语言在近20年的编程类语言排行榜上,稳居前三!!

要说编程类语言有多少,那可是多的数不清,下面给大家看一下今年最新的TIOBE 编程语言社区排行榜的前20。

在这个排行榜上可以看到位居第7位的JavaScript,那JavaScript和Java有什么关系呢?

他们俩的关系其实就相当于“雷锋和雷峰塔”的关系或者说“老婆和老婆饼”的关系(没有一点关系…),那就是没有一点关系!

最开始JavaScript叫liveScript,由于当时Java太火了,因此liveScript更名为JavaScript借势宣传一波,蹭蹭热度。

那么,Java究竟有什么特性能获得广大程序员的一致青睐呢?

简单性

Java语法是C++语法的一个“纯净版本”。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重

载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。

面向对象

什么是面向对象? 这里我们用木匠打一个比方,一个“面向对象”的木匠始终关注的是所制作的椅子,第二位才是所

使用的工具;而一个“非面向对象的”木匠首先考虑的是所使用的工具。

在Java的世界里,一切皆对象。

Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口

概念。而且与C++相比,Java提供了更丰富的运行时自省功能。

分布式(微服务)

比特科技Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的
对象,其便捷程度就好像访问本地文件一样。

健壮性

Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来

检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多

在其他语言中仅在运行时才能够检测出来的问题。

安全性

Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防

篡改的系统

从一开始,Java就设计成能够防范常见的各种攻击:

运行时堆栈溢出。蠕虫和病毒常用的攻击手段。

破坏自己进程空间之外的内存。

未经授权读写文件
体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代

码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精

心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。

可移植性

与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例

如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定

的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。

解释型

Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程。所以开发

过程也变得更加快捷,更加具有探索性。

高性能

尽管对解释后的字节码性能已经比较满意,但在有些场合下可能需要更加高效的性能。字节码可以(在运行时刻)

动态的翻译成对应运行这个应用的特定cpu的机器码。

多线程

Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发

程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。

动态性

Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客

户端没有任何影响。在Java中找出运行时类型信息十分简单(反射的特性,后续会学到)。

1.4 Java语言起源

Java 语言源于 1991 年 Sun 公司 James Gosling 领导的的 Oak 项目,1995 年 Sun 公司正式起名为 Java,并提

出“Write once, Run anywhere" 的口号,即“一次编译,到处运行”。

疑问:怎么个一次编译到处运行呢?怎么运行?往哪运行?

1.4.1一个java程序跑起来的流程是怎样的

解决上面这个疑问我们得先明白一个java程序跑起来的流程是怎样的,下面开始探讨!!

很久以前我们是没有编译器的,但有记事本,所以就在记事本写代码并进行编译运行。

右键—>新建—>文本文档—>起名为HelloWorld—>将后缀名.txt改为.javaimage-20210729185550093此时它就是一个java文件了。

注意:如果你建的文本文档没有.txt怎么办?执行以下操作即可

image-20210729190101680

作为一名合格的程序员,有必要将②③处打开(勾选即可)。

以前没有编译器的情况下,只能在记事本上手敲代码,下面用记事本写代码的方式输出“hello china!”

image-20210729190821100

1.写完代码保存

2.找到文档位置,鼠标移动到文档处,点击shift+鼠标右键,会看到下面这样的图片,点击在此处打开Powershell窗口(S).

image-20210729192218470

3.这时会出现一个Powershell框,上面显示文档所在路径,在Powershell框输入javac HelloWorld.java并回车(javac+空格+文件名+回车)

image-20210729193020204

此时我们会发现,回车之后多出来一个.class文件。

image-20210729192958539

点开文件是这样的,这是什么?不认识啊!!

image-20210729193547665
它实际上是一个二进制文件。

4.接着我们再在Powershell框输入java HelloWorld并回车,此时就得到了我们想要的结果。

image-20210729195207944

javac、java属于JDK命令(Java Developement Kit:java开发者工具)

疑问: .java 和.class其实就是磁盘的文件,执行了java命令后,程序在哪里跑着的呢?

解决这一问题之前我们先来解决这一个问题:听过JDK,那你听过JRE和JVM吗?

JDK:Java Developement Kit(java开发者工具)

JRE:Java Runtime Environment(Java运行时环境)

JVM:Java Virtual Machine(Java虚拟机)

面试问题:JDK、JRE、JVM三者的关系如何?

JDK包含JRE,JRE包含JVM,也就是说,当你安装好JDK后,实际上JRE和JVM也已经安装好了。 image-20210729211433810

所以当输入java命令的时候,java程序运行到哪个地方呢?答案就是运行到了JVM里,也就会说,我们的程序最终跑起来的时候跑到了JVM里(将字节码放到虚拟机里面跑),跑完之后就有了结果。

image-20210729212316906

那么现在知道了字节码跑到了JVM里,那么也就意味着如果我把这个字节码文件发给别人,image-20210729213955904别人拿到字节码文件,直接在他的电脑上使用java命令就能跑起来了,而这,就是所谓的一次编译,到处运行。

运行结果:

image-20210729214523422

至此,我们解决四个大问题:即记事本写的代码怎么跑的?在哪跑的?JDK、JRE、JVM三者的关系是怎样的?一次编译到处运行又是什么意思?

1.4.2使用cmd命令行运行java程序

当然,我们也可以不使用PowerShell框编译代码,也可以使用命令行cmd运行,将.class文件删掉,快捷键win+R,输入cmd

image-20210729223640573

1.5 Java是最好的语言吗?

不是,没有哪个语言是世界上最好的语言,因为在每个领域中都有更合适的编程语言。

  • C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。C++ 是面向对象的 C 语

言,一直在不断的改进。

  • JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳。近年来的 Node.js 又在后端占

有一席之地。

  • Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释

性语言。

  • Ruby 强于 DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。Erlang 就是为分布式计算

设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。

  • Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如

Docker、Kubernetes 等。

  • 编写网页用 PHP,函数式编程有 Lisp/Scala,编写 iOS 程序有 Swift/Objective-C。

一句话概括,能留在排行榜之上的语言,都是好的语言,它们在其所在的领域能做到最好。

那么,Java 语言到底有什么优势可以占据排行榜第二的位置呢?

  • 其一,语法比较简单,学过计算机编程的开发者都能快速上手。
  • 其二,在若干了领域都有很强的竞争力,比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,
  • Android 移动终端应用开发等等。
  • 最重要的一点是符合工程学的需求,我们知道现代软件都是协同开发,那么代码可维护性,编译时检查,较为高效
    的运行效率,跨平台能力,丰富的 IDE,测试,项目管理工具配合。都使得 Java 成为企业软件公司的首选,也得到
    很多互联网公司的青睐。
  • 没有短板,容易从市场上找到 Java 软件工程师,软件公司选择 Java 作为主要开发语言,再在特定的领域使用其他
    语言协作编程,这样的组合选择,肯定是不会有大的问题。 所以综合而言,Java 语言全能方面是最好的。
    我们来一起看看Java社区的概况:
  • Java 是一门开放的语言,其开源社区也是参与者众多。最有名的应当数 Apache 社区,目前已经拥有近 200 个顶
    级项目,其中绝大多数是 Java 语言项目。在 Java 生态圈中,具有重要地位的如 Spring、Ant、Commons、
  • Tomcat、Xerces、Maven、 Struts、Lucene、ActiveMQ、CXF、Camel、Hadoop 等等。很多技术时代,一大
    批 Java 项目加入,如 Web 时代的 Velocity、Wicket;JavaEE 相关的 Tomee、OpenJPA、OpenWebBeans、
    比特科技Myfaces;WebService 时代的 jUDDI、Axis、ServiceMix;Osgi 时期的 Flex、Karaf;大数据时代的 HBase、
    Hive、ZooKeeper、Cassandra;云时代的 Mesos、CloudStack 等等。
  • 涉及到软件开发的方方面面,可以说当今几乎所有的中型以上 Java 应用中,都会有 Apache 开源项目的身影。国
    内最早参与 Apache 社区的以国外软件公司国内研发团队成员为主,如红帽、IONA、Intel、IBM 研发中心等。如
    今国内互联网公司和软件公司也不断的参与,特别是开始主导一些 Apache 项目,如 Kylin 等。
  • JBoss 开源社区,包含了 50 多个 Java 开源项目,其中有 Hibernate、Drools、jBPM 等业界知名开源项目,也有
    Undertow、Byteman、Narayana 等名气不算大,但绝对是相应领域业界的顶级优秀项目。当前 JBoss 开源社区
    主要以企业应用中间件软件为主,RedHat 是主要的技术贡献力量。
  • Eclipse 开源社区,之前主要是包含 Eclipse IDE 的项目,后来也逐步进行多方面的扩展,比如 OSGi,服务器等,
    目前一些知名 Java 项目,如 Jetty、Vertx 等都是 Eclipse 开源组织成员。此外 IOT 目前是 Eclispe 的一个重点方
    向,在这里可以找到完整的 IOT Java 开发方案。
  • Spring 开源社区,以 SpringFramework 为核心,包括 SpringBoot、SpringCloud、SpringSecurity、
  • SpringXD 等开源项目,在国内有广泛的应用场景。
    所以说,Java不仅仅是一门编程语言,它是一个综合的技术体系,是面向对象思想的规范。

1.6 初识Java的main方法

上面我们已经学会使用记事本和cmd写代码了,下面我们认识一下我们刚刚写的那几行代码表示什么意思以及在写java代码时需要注意的地方。

image-20210729230338047

上面就是一个完整的Java程序的结构(有点乱了,尴尬),Java程序的结构由如下三个部分组成

1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个

类。类的内容必须包含在花括号里面。

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

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

java的三种打印方式
image-20210729230419199

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

image-20210729230450944最后

写java代码的时候要注意的点:
①文件名需要和类名一样
②每次写完代码,都需要保存,重新编译再运行
③双引号引起来的是字符串
④方法和函数是同一个概念,在java中,函数被叫为方法。
⑤C语言没有字符串类型,但Java有字符串类型,叫String
⑥注意java大括号的书写风格
⑦代码自己的编码格式是UTF-8,但是java的编译平台(javac)的默认编码是GBK,
所以在命令行编译代码的时候可以输入javac -encoding utf-8 文件名,进行解码。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:36:58  更:2021-07-30 12:37:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 22:36:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码