热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java初始篇

好的开始是成功的一半A good beginning is half done

好的开始是成功的一半

A good beginning is half done

  目录

1. Java语言概述

1.1 Java是什么 

1.2 Java发展史  

1.3 Java语言特点 

1.4 Java的跨平台 

1.5 JVM、JRE、JDK的关系

2. 初识Java的main函数

2.1 main方法

2.2 Java程序运行 

3. 注释 

4. 标识符

5. 关键字


1. Java语言概述

1.1 Java是什么 

Java就是-种程序设计语言

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

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

1.2 Java发展史  

Java之父: James-Goslin

James-Goslin :

12岁的时候,就可以把报废的电话和电视机,拆开、零件、组装成一个电子游戏机。

14岁的时候,中学组织活动(大学参观),James将 大学计算机中心密码记住了,偷偷的溜进计算机中心,自己学习编程。

15岁的时候,大学招聘 James Gosling 作为临时编程员帮助大学天文系一起编写-套系统分析卫星天文数据。

80年代初,James Gosling 获得博士学位后到 IBM 公司工作,设计 IBM 第一代工作站。工作站项目并不被高层领导所重视。然后 James Gosling 跳槽到了 Sun 公司,Sun 公司非常注重人才和对技术的使用。Sun 公司的项目没有成为流行产品,成立小的研发团队,试图预测未来的发展趋势,派 James Goslin 为项目负责人。当时 Sun 公司有一个 Green 项目(智能家居),当时比较流行的语言是 C++ (C++跨平台很复杂),于是他们自己开发了一套全新的语言规范,这套全新的语言规范沿用了很多C++语言结构,这套新语言起了一个名字 oak  (看窗外有一个大树--橡树 oak )。
oak摒弃很多不好的东西

1992年夏天, oak 语言和用 oak 编写的 Green 项目芯片进行展示给硬件生产商,但不被其
他生产商所支持,因为 oak 是一门全新的语言,如果其他生产商投资生产它是要担很大的风险,于是oak被暂时搁置了。

 时机硅谷全球性的IT盛会:

1995年想要去参赛,并且发布 oak 全新的语言规范,但是oak这个名字被注册了,于是 oak 改名为 Java (印度尼西亚爪哇岛 Java 咖啡豆 猫屎咖啡 麝香猫)。

1995年5月23日:Sun公司正式发布Java语言。

1996年1月:发布工具包JDK1.0.

1997年2月:JDK1. 1版本问世

1998年12月:JavaEE企业版

1999年6月:Java第二代平台 2.0 细化 了三个不同的版本(不同方向)

2000~ 2002:JDK1. 3  JDK1. 4 (大幅度提升了Java的性能)

2004年5月:JDK1. 5版本发布,很多新的特性JDK1. 5 (Java5)

2005年6月:JDK6,最经典的版本,留存很久的版本,Sun因一 系列内部原因就一直未更新

2009年:Oracle 并购 Sun 公司花费74亿$, Java移主

2011年:Oracle发布JDK7

2014年:JDK8 发布

2017年:JDK9 发布

2018年3月:JDK10 发布

2018年3月,Android侵权案最终判决,Google赔偿Oracle合计88亿美元, 让收购Sun公司等同免费,同年, Oracle将无法盈利也没有战略前景的部分"按计划报废",宣告Java EE称为历史名词,直接捐赠给Eclipse基金会

2018年9月:JDK11 发布

2019年3月:JDK12 发布

1.3 Java语言特点 

Java语言的特点:简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植性、解释性、高性能、多线程、动态性

1.4 Java的跨平台 

注:翻译不能跨平台,不同电脑版本需要不同的翻译

JVM:Java Virtual Machine 虚拟机

程序存储在哪里?
程序是英文,存储在一个地方,这个地方就是文件

我们写好的文件计算机不认识,编译是将我们写好的源文件编译成计算机认识的字节码文件

源文件后缀名: .java
字节码后缀名:.class

1.5 JVM、JRE、JDK的关系

JRE: Java Runtime Environment 运行环境
JRE里面包含了 JVM,JRE 运行别人写好的 java 程序

JDK: Java Development Kit开发工具包(开发时需要用到的工具)
JDK里面包含了JRE,JDK开发并且运行Java ( javac. exe:编译工具java. exe:执行工具)

想要做Java开发,需搭建环境(我们的电脑中安装JDK)
需要JDK安装程序? ? ?官方网站下载 Oracle 公司的产品 www. Oracle. com 安装JDK

2. 初识Java的main函数

2.1 main方法

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

  1. 源文件(扩展名为.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个 类。类的内容必须包含在花括号里面。
  2. 类:类中带有一个或多个方法。方法必须在类的内部声明。
  3. 方法:在方法的花括号中编写方法应该执行的语句。
  4. 总结:类存在于源文件里面;方法存在于类中;语句存在于方法中。

注:在一个源文件里面只有一个 public 修饰的类,且 public 修饰的类 类名必须跟源文件名一致

2.2 Java程序运行 

Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生的 .class文件是由字节码组成的平台无关、面向JVM的文件。最后启动 java 虚拟机来运行 .class 文件,此时 JVM 会将字节码转换成平台能够理解的形式来运行。 

3. 注释 

Java 中的注释分别有三种: 

  1. 单行注释:// 注释内容(用的最多)
  2. 多行注释:/* 注释内容*/(不推荐)
  3. 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档

4. 标识符

标识符:在程序中由用户给类名、方法名或者变量所取的名字 

规则:标识符中可以包含:字母、数字以及下划线$ 符号等等。

注意:标识符不能以数字开头也不能是关键字且严格区分大小写。 

建议

类名:每个单词的首字母大写(大驼峰)

方法名:首字母小写,后面每个单词的首字母大写(小驼峰)

变量名:与方法名规则相同 

5. 关键字 

关键字:是由 Java 语言提前定义好的,有特殊含义的标识符,或者保留字。当程序中使用到关键字时颜色会发生变化,将这些具有特殊含义的标识符称为关键字。 

注意:用户不能使用关键字定义标识符 

Java关键字: 

  1. 用于数据类型的关键字:boolean、byte、char、 double、 float、int、long、new、short、void、instanceof。
  2. 用于语句的关键字:break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。
  3. 用于修饰的关键字:abstract、final、native、private、 protected、public、static、synchronized、transient、 volatile。
  4. 用于方法、类、接口、包和异常的关键字: class、 extends、 implements、interface、 package、import、throws。
  5. 还有些关键字,如 future、 generic、 operator、 outer、rest、var等都是Java保留的没有意义的关键字。

另外,Java还有两个保留字:goto、const。三个特殊直接量:true、false、null,它们不是关键字,但是它们也不可以做标识符使用


推荐阅读
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
tanglei52017
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有