前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >走进Java

走进Java

作者头像
东边的大西瓜
发布2022-05-05 12:21:05
2020
发布2022-05-05 12:21:05
举报
文章被收录于专栏:吃着西瓜学Java吃着西瓜学Java

走进Java

前言:

“Write Once ,Run Anywhere. "一次编写,到处运行!"

Java概述

众所周知Java是一门优秀的OOP语言,最著名的两点,它具有“一次编写,到处运行!”的特点,它实现了热点代码检测和运行时编译及优化。

Java白皮书上介绍了Java的特性,下面我们用11个关键字来概Java:

  1. 简单性:

Java在设计的时候其实是在尽可能的接近C++语言,但是剔除了C++中许多很少使用、难以理解、易混淆的特性,例如多线程和指针,但并不是说Java没有指针了,事实上,Java的指针操作都被底层代码封装了。所以可以说Java语法是C++语法的一个“纯洁”版本。 简单的另一方面是小。Java的目标之一是支持开发能够在小型机器上独立运行的软件。Java Card和Java ME都取得了了不起的成就。同时Java提供了丰富的类库和API文档以及第三方开发包,Java的垃圾自动收集机制也大大简化了我们的工作量。

  1. 面向对象:(将有专题阐述)

面向对象设计是一种程序设计技术。他将重点放在数据(即对象)和对象的接口上。 万物皆可对象。语法中不能在类外面定义单独的数据和函数,也就是说,Java语言最外部的数据类型就是对象,所有的元素都要通过类和对象来访问。

  1. 分布性:

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

  1. 健壮性:

Java程序设计的目标之一在于使得Java编写的程序具有多方面的可靠性。Java投入了大量的精力进行早期的(编译时)问题检测、后期动态的(运行时)检测,并消除了容易出错的情况。最大的使用使用体验就是Java编译器能够检测出许多,其他语言在运行时才能够检测出的错误。 Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能。让我们和指针BUG导致的内存冲突问题说拜拜。

  1. 安全性:

Java适用于网络/分布式环境。为了达到这一目标,在安全方面投入了很大精力。使用Java可以构建防病毒、防篡改的系统。 Java语言删除了类似C语言中的指针和内存释放等语法,有效的避免了非法操作内存。Java代码要经过代码校验、指针校验等很多测试步骤才能够运行,所以一般来说未经允许的Java程序不可能出现损害系统平台的行为。

  1. 体系结构中立:

编译器生成一个体系中立的目标文件格式(.class文件),这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态地翻译成本地的机器代码。 没错上面就是在讲虚拟机,Java虚拟机在千差万别的物理机上面建立了统一的运行平台,实现了在任意一台Java虚拟机上编译的程序,都能在任何其他Java虚拟机上正常运行!

  1. 可移植性:

与C/C++不同,Java规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算都做了明确的说明。 也就是说Java程序具有与体系结构无关的特性。可以方便地移植到网络上的不同计算机中。同时,Java的类库中也实现了针对不同平台的接口,使这些类库可以移植。

  1. 解释型:

运行Java程序需要解释器,Java解释器可以在任何移植了解释器的机器上执行Java字节码。字节码独立于平台,它本身携带了许多编译时的信息,使得连接过程更加简单,开发过程更加迅速,更具有探索性。

  1. 高性能:

Java编译后的字节码是在解释器中运行的,所以它的速度较多数交互式响应程序提高了很多,另外字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。

  1. 多线程:(将有专题阐述)

多线程机制能够使应用程序在同一时间并行执行多项任务,而且相应的同步机制可以保证不同的线程能够正确地共享数据。多线程可以带来更好的交互响应和实时行为。

  1. 动态性:

从各种角度看,Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由地添加新方法和实例变量,而客户端却不需要任何更改。在Java中进行动态调整是非常简单和直接的,在Java中找出运行时类型信息也十分简单。


Java技术体系

JDK:

我们可以把Java程序设计语言、Java虚拟机、Java类库这三部分统称为JDK,JDK是用于支持Java程序开发的最小环境

JRE:

我们可以把Java类库API中的Java SE API子集和Java虚拟机这两部分统称为JRE,JRE是支持Java程序运行的标准环境

四条主要的产品线:

  • Java Card:支持Java小程序(Applets)运行在小内存设备(智能卡)上的平台。
  • Java ME:支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了移动终端的针对性支持,这条产品线在JDK6以前被称为J2ME。
  • Java SE:支持面向桌面级应用(PC端)的Java平台,提供了完整的Java核心API,这条产品线在JDK6以前被称作J2SE。
  • Java EE:支持使用多层架构的企业应用(ERP、MIS、CRM应用)的Java平台,除了提供Java SE API外,还对其做了大量有针对性的扩充,并提供了相关的部署支持,这条产品线在JDK 6以前被称为J2EE,在JDK10后被Oracle放弃,捐给Eclipse基金会管理,此后被称为Jakarata EE。

Java语言的发展状况

因为作者使用的是JDK 8因此我们只做介绍到该版本,以后会有专题来讨论更新的JDK版本的特性。(将有专题介绍JDK8的各种骚操作)

版本

年份

语言新特性

类与接口数量

1.0

1996

语言本身

211

1.1

1997

内部类

477

1.2

1998

strictfp修饰符

1524

1.3

2000

1840

1.4

2002

断言

2723

5.0

2004

泛型类、“for each”循环、可变元参数、自动装箱、元数据、枚举、静态导入...

3279

6

2006

3793

7

2011

基于字符串的switch、钻石操作符、二进制字面量、异常处理改进...

4024

8

2014

lambda表达式、函数式接口、包含默认方法的接口、steam、Date/Time API...

4240

第一个Java程序,Hello World!

作者现在使用的IDE是IDEA,以前也用过eclipse和myeclipse,我推荐大家使用IDEA,使用体验真的很好!

代码语言:javascript
复制
public class HelloWord {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Continue

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吃着西瓜学Java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 走进Java
    • Java概述
      • Java白皮书上介绍了Java的特性,下面我们用11个关键字来概Java:
    • Java技术体系
      • JDK:
      • JRE:
      • 四条主要的产品线:
    • Java语言的发展状况
      • 第一个Java程序,Hello World!
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档