1.1 java语言基础

1、java历史

Java语言发展史

詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

SUN(Stanford University Network,斯坦福大学网络公司)

Java语言版本





版本号 名字 中文名 时间
JDK 1.1.4 Sparkler 宝石 1997-09-12
JDK 1.1.5 Pumpkin 南瓜 1997-12-13
JDK 1.1.6 Abigail 阿比盖尔--女子名 1998-04-24
JDK 1.1.7 Brutus 布鲁图--古罗马政治家和将军 1998-09-28
JDK 1.1.8 Chelsea 切尔西--城市名 1999-04-08
J2SE 1.2 Playground 运动场 1998-12-04
J2SE 1.2.1 none 1999-03-30
J2SE 1.2.2 Cricket 蟋蟀 1999-07-08
J2SE 1.3 Kestrel 美洲红隼(sǔn) 2000-05-08
J2SE 1.3.1 Ladybird 瓢虫 2001-05-17
J2SE 1.4.0 Merlin 灰背隼 2002-02-13
J2SE 1.4.1 grasshopper 蚱蜢 2002-09-16
J2SE 1.4.2 Mantis 螳螂 2003-06-26
JAVASE 5.0 (1.5.0) Tiger 老虎
JAVASE 5.1 (1.5.1) Dragonfly 蜻蜓
JAVASE 6.0 (1.6.0) Mustang 野马
JAVASE 7.0 (1.7.0) Dolphin 海豚

Java语言基础

Java语言平台

  • J2SE(Java 2 Platform Standard Edition)标准版

  • 是为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发

  • J2ME(Java 2 Platform Micro Edition)小型版

  • 是为开发电子消费产品和嵌入式设备提供的解决方案

  • J2EE(Java 2 Platform Enterprise Edition)企业版

  • 是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发

Java语言特点

  • 简单性

  • 解释性

  • 面向对象

  • 高性能

  • 分布式处理

  • 多线程

  • 健壮性

  • 动态

  • 结构中立

  • 安全性

  • 开源

  • 跨平台

Java语言跨平台原理

  • A:什么是跨平台性

  • B:Java语言跨平台原理

  • 只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

  • C:Java语言跨平台

  • write once ,run anywhere!(一处编译,到处运行)

JRE和JDK

  • A:什么是JRE

  • 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

  • JRE:JVM+类库。

  • B:什么是JDK

  • JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

  • 其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

  • JDK:JRE+JAVA的开发工具。

  • C:为什么JDK中包含一个JRE

  • 为什么JDK中包含一个JRE呢?

  • 开发完的程序,需要运行一下看看效果。

  • D:JDK,JRE,JVM的作用和关系

Java开发工具介绍

  • A:notepad(微软操作系统自带)

  • B:Editplus/Notepad++/sublime text(都是文本编辑工具)

  • C:Eclipse(eclipse的一些快捷键和设置可以看些我的博客里面的看下就行)

  • D:MyEclipse

java运行步骤

JVM

Java 虚拟机(JVM)是运⾏ Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),⽬的是使⽤相同的字节码,它们都会给出相同的结果。

什么是字节码?采⽤字节码的好处是什么?

在 Java 中,JVM 可以理解的代码就叫做(即扩展名为 .class 的⽂件),它不⾯ 向任何特定的处理器,只⾯向虚拟机。Java 语⾔通过字节码的⽅式,在⼀定程度上解决了 传统解释型语⾔执⾏效率低的问题,同时⼜保留了解释型语⾔可移植的特点。所以 Java 程 序运⾏时⽐较⾼效,⽽且,由于字节码并不针对⼀种特定的机器,因此,Java 程序⽆须重 新编译便可在多种不同操作系统的计算机上运⾏。

Java 程序从源代码到运⾏⼀般有下⾯ 3 步:

我们需要格外注意的是 .class->机器码 这⼀步。在这⼀步 JVM 类加载器⾸先加载字节码⽂件, 然后通过解释器逐⾏解释执⾏,这种⽅式的执⾏速度会相对⽐较慢。⽽且,有些⽅法和代码块是 经常需要被调⽤的(也就是所谓的热点代码),所以后⾯引进了 JIT 编译器,⽽ JIT 属于运⾏时编 译。当 JIT 编译器完成第⼀次编译后,其会将字节码对应的机器码保存下来,下次可以直接使 ⽤。⽽我们知道,机器码的运⾏效率肯定是⾼于 Java 解释器的。这也解释了我们为什么经常会 说 Java 是编译与解释共存的语⾔。

HotSpot 采⽤了惰性评估(Lazy Evaluation)的做法,根据⼆⼋定律,消耗⼤部分系统资源的 只有那⼀⼩部分的代码(热点代码),⽽这也就是 JIT 所需要编译的部分。JVM 会根据代 码每次被执⾏的情况收集信息并相应地做出⼀些优化,因此执⾏的次数越多,它的速度就越 快。JDK 9 引⼊了⼀种新的编译模式 AOT(Ahead of Time Compilation),它是直接将字节码 编译成机器码,这样就避免了 JIT 预热等各⽅⾯的开销。JDK ⽀持分层编译和 AOT 协作使 ⽤。但是 ,AOT 编译器的编译质量是肯定⽐不上 JIT 编译器的。

总结: Java 虚拟机(JVM)是运⾏ Java 字节码的虚拟机。JVM 有针对不同系统的特定实现 (Windows,Linux,macOS),⽬的是使⽤相同的字节码,它们都会给出相同的结果。字节码 和不同系统的 JVM 实现是 Java 语⾔“⼀次编译,随处可以运⾏”的关键所在。

运行步骤图

HelloWorld案例的编写和运行)(掌握)

  • A:定义类

  • B:写main方法

  • C:写输出语句

  • D:Java程序开发运行与工作原理

  • E:编译和运行程序
    class HelloWorld {

    public static void main(String[] args) {
    System.out.println("HelloWorld");
    }
    }

HelloWorld案例常见问题

  • A:找不到文件

  • a:文件扩展名隐藏导致编译失败

  • b:文件名写错了

  • B:单词拼写问题

  • a:class写成Class

  • b:String写成string

  • c:System写成system

  • d:main写成mian

  • C:括号匹配问题

  • a:把类体的那对大括号弄掉一个

  • b:把方法体的那对大括号弄掉一个

  • c:把输出语句的那对小括号弄掉一个

  • D:中英文问题

  • a:提示信息:错误: 非法字符: ????的格式

  • 注意:java编程中需要的基本上都是英文字符

Java语言的格式(约定俗成)

书写格式:

  • 1,大括号要对齐,并且成对写

  • 2,左大括号前面有空格

  • 3,遇到左大括号要缩进,Tab

  • 4,方法和程序块之间加空行让程序看起来清晰

  • 5,并排语句之间加空格,例如for语句

  • 6,运算符两侧加空格

关键字的概述和使用

  • 1:什么是关键字

  • 被Java语言赋予特定含义的单词

  • 2:关键字的特点

  • 组成关键字的字母全部小写

  • 3:常见关键字

  • public static void class等

  • 4:关键字的注意事项

  • goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

标识符的概述和组成规则

  • 1:什么是标识符

  • 就是给类,接口,方法,变量等起名字时使用的字符序列

  • 2:标识符的组成规则

  • 英文大小写字母

  • 数字字符

  • $和_

  • 3:标识符注意事项

  • 1,不能使用关键字

  • 2,不能数字开头

命名方式:

  • 1:包

  • 最好是域名倒过来,要求所有的字母小写

  • 2:类或者接口

  • 如果是一个单词首字母大写

  • 如果是多个单词每个单词首字母大写(驼峰标识)

  • 3:方法或者变量

  • 如果是一个单词全部小写

  • 如果是多个单词,从第二个单词首字母大写

  • 3 :常量

  • 如果是一个单词,所有字母大写

  • 如果是多个单词,所有的单词大写,用下划线区分每个单词

注释概述及其分类

注释

  • 普通文本注释

  • 行注释: //注释文本

  • 快注释: / 注释文本 /

  • 文档注释 /** 注释文档 */

  • 可通过eclipse生成说明文档

posted @ 2023-11-27 15:51  杨洛平  阅读(13)  评论(0)    收藏  举报