Java入门

目录

一、程序

什么是程序

二、计算机编程语言

1.计算机语言是什么

Java历史

特点

执行机制

计算机执行机制

Java的执行机制

三、JDK安装

名词解释

安装与校验

配置环境变量

四、第一个Java程序

编写代码

编译运行

规范

六、Java核心机制:JVM

1.Java语言的特点

2.优点

3.缺点

4.JVM的功能说明

功能1:实现Java程序的跨平台性

功能2:自动内存管理(内存分配、内存回收)


一、程序

什么是程序

一系列按照特定顺序组织的计算机数据指令的集合

二、计算机编程语言

1.计算机语言是什么
  • 语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,可以使用英语或普通话。

  • 计算机编程语言,就是人与计算机交流的方式。人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。

  • 计算机语言有很多种。如:C 、C++、Java、Go、JavaScript、Python,Scala等。

体会:语言 = 语法 + 逻辑

2.计算机语言简史

第一代:机器语言

1946年2月14日,世界上第一台计算机ENAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用的是用二进制代码表示的语言,与人类语言差别极大,这种语言就称为机器语言。比如一段典型的机器码:

1.    0000,0000,000000010000 代表 LOAD A, 16
2.    0000,0001,000000000001 代表 LOAD B, 1
3.    0001,0001,000000010000 代表 STORE B, 16

 这种语言本质上是计算机能识别的唯一语言,人类很难理解。可以大胆想象"此时的程序员99.9%都是异类!"

 第二代:汇编语言

使用英文缩写的助记符来表示基本的操作,这些助记符构成了汇编语言的基础。比如:LOADMOVE等,使人更容易使用。因此,汇编语言也称为符号语言

优点:能编写高效率的程序

缺点:汇编语言是面向机器的,不同计算机机型特点不同,因此会有不同的汇编语言,彼此之间不能通用。程序不易移植,较难调试。

 比起机器语言,汇编大大进步了,是机器语言向更高级的语言进化的桥梁。目前仍然应用于工业电子编程领域、软件的加密解密、计算机病毒分析等

带三代:高级语言(相当于人类的信息时代)

高级语言发展于20世纪50年代中叶到70年代,是一种接近于人们使用习惯的程序设计语言。它允许程序员使用接近日常英语的指令来编写程序,程序中的符号和算式也与日常用的数学式子差不多,接近于自然语言和数学语言,容易为人们掌握。比如:

高级语言独立于机器,有一定的通用性;计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,转换为机器语言才能被识别和执行。

 

 

此外,高级语言按照程序设计方法的不同,又分为:面向过程的语言面向对象的语言

  • C、Pascal、Fortran面向过程的语言

  • C++面向过程/面向对象

  • Java跨平台的纯面向对象的语言

  • C#、Python、JavaScript、Scala…

目前以及可预见的将来,计算机语言仍然处于“第三代高级语言”阶段。但是不管是什么语言,最后都要向机器语言靠近,因为CPU只认识0和1。

Java历史

95年诞生,创始人:詹姆斯.高斯林

04年,划分三个稳定的平台版本:JavaSE,JavaEE,JavaME

09年卖给了Oracle公司

14年,8.0版本(常用,稳定,免费)

 

注意:

Android开发不等同于Java ME的开发

特点

面向对象:java世界,万物皆对象

简单性: 自动管理内存(C/C++需要手动管理,很麻烦)

跨平台: 跨操作系统(例如:window下开发的程序,可直接拿到linux执行)

执行机制

计算机执行机制

执行机制1:

先将源文件编译成机器码文件,再通过独立的操作系统执行

好处:执行效率高 弊端:不可跨平台 特点:一次编译,多次运行

执行机制2:

直接将源文件在不同的操作系统中解释并执行

好处:跨平台 弊端:执行效率低

Java的执行机制

执行机制:先将java文件编译成字节码(class文件),再将字节码解释成不同平台都能执行的指令

好处:执行效率高,跨平台

特点:一次编译,到处运行

三、JDK安装

名词解释

JDK:Java开发工具箱,包括JRE+类库+工具包

JRE:Java的运行环境,包含JVM+解释器

JVM:Java虚拟机,运行Java代码的工具

如下是Java 8.0 Platform:

安装与校验

下载jdk8.0,直接安装即可; 建议jdk和jre的路径同级

校验:进入到安装路径的bin目录下,输入:javac验证是否安装成功

配置环境变量

目的:在任何DOS位置都能直接使用JDK指令

配置步骤:

我的电脑-->右键属性-->高级系统设置-->环境变量

系统配置中:

新建: JAVA_HOME: C:\Program Files\Java\jdk1.8.0_131

双击Path: 新建-- %JAVA_HOME%\bin

验证:直接打开cmd,输入javac,验证成功

四、第一个Java程序

编写代码
//创建公开的类,名叫Hello  //是单行注释:解释说明,给人看的
public class Hello{
    //入口函数:有且只有一个;程序最先执行的入口
    public static void main(String[] args){
        //系统的打印输出   注意:每行都需要缩进-tab键
        System.out.println("hello,world");
    }
}
编译运行

打开cmd,切换判断,通过cd指令定位到java文件位置

编译:javac Hello.java

运行:java Hello

规范

类名首字母大写,且类名与文件名一致

每行代码需要缩进(按tab键)

注意符号都是英文的

注意中文不识别的配置:

原因:notepad++的编码与DOS窗口编码不一致,则会出现乱码报错;

解决方案:将notepad++也改成ansi和DOS一致即可

 五、Java API文档

  • API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。

  • Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的说明文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。大多数Java书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料。

  • Java API文档,即为JDK使用说明书、帮助文档。

  • 下载API文档:

  • 在线看:Overview (Java SE 17 & JDK 17)

  • 离线下载:https://www.oracle.com/java/technologies/javase-jdk17-doc-downloads.html

 中文版:链接:JDK中文说明文档

六、Java核心机制:JVM

1.Java语言的特点

Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。“青出于蓝,而胜于蓝”。

2.优点

跨平台性这是Java的核心优势。Java在最初设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。通过Java语言编写的应用程序在不同的系统平台上都可以运行。

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

面向对象面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚低耦合的标准。

简单性Java就是C++语法的简化版,我们也可以将Java称之为“C++--”。比如:头文件,指针运算,结构,联合,操作符重载,虚基类等

安全性:Java适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。如:安全防范机制(ClassLoader类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。

高性能性:Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

3.缺点

语法过于复杂、严谨,对程序员的约束比较多;

一般使用大型网站的开发,整个架构会比较重

并非使用所有的领域,比如,Objective C、Swift在iOS设备上就有着无可取代的地位。浏览器中的处理几乎完全由JavaScript掌控。Windows程序通常都用C++或C#编写。Java在服务器端编程和跨平台客户端应用领域则很有优势。

4.JVM的功能说明

JVMJava Virtual Machine ,Java虚拟机):是一个虚拟的计算机,是Java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。

功能1:实现Java程序的跨平台性

我们编写的Java代码,都运行在JVM 之上。正是因为有了JVM,才使得Java程序具备了跨平台性。

 使用JVM前后对比:

功能2:自动内存管理(内存分配、内存回收)
  • Java程序在运行过程中,涉及到运算的数据的分配存储等都由JVM来完成

  • Java消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。

  • GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄漏

面试题:

Java程序还会出现内存溢出和内存泄漏问题吗? Yes!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值