Java-01 基础介绍
Java是目前最流行的编程语言之一,并且自身拥有庞大且完善的生态系统,可以实现你的任何需求(Java不擅长的部分会被其他语言所顶替),国内Java使用广泛,主要原因是很多大公司都在使用Java实现其各自的核心业务,大型的网络公司,电商公司基本上都是用Java实现的
一、 Java的发展
Java是由SUN公司开发的一套编程语言, 1991 年sun利用c++开发了一套OAK(橡树)平台,但是竞标失败,.但是这个时候世界上最早最牛x的软件公司的诞生了:网景(第一家依靠技术上市的公司),受到浏览器技术的启发,推出了一个Hot Java的浏览器.1995年5月23 正式推出Java编程语言,推出JDK1.0开发包,1996年开始提供下载使用,1997年传到中国
SUN公司(Stanford University NetWork)是一家从事于硬件开发的技术性公司, 最早的代表性产品:小型机(广泛用于Amazon,国外的云服务以Amazon为主).
Java是一个稳定的、可靠的编程语言,可以承担大型服务器的程序开发任务
二、三种架构
Java标准开发(J2SE、JAVA SE):提供的是底层的支持,实现了桌面应用程序的开发
Java嵌入式开发(JAVA ME):开发电子消费产品和嵌入式设备,如手机中的程序
Java企业开发(J2EE 、Java EE):主要是进行企业平台的搭建,现在主要的开发是互联网平台
1、Java的特点
- 是一个行业内通用的技术实现标准:Java本身是一个半开源的产品,让很多厂商可以接触到底层,使得Java开发更加的透明
- Java是一门面向对象的编程语言:语法结构更加方便开发者接受,面向对象思想还在扩充(不同的JDK版本)
- 提供有方便的内存回收处理机制:自动的内存回收操作(优化相关的问题:高并发)
- 避免了复杂的指针问题,用更加简单的应引用来代替指针:指针虽然是一种高效的内存处理模式,但是其需要较强的逻辑分析,Java在设计的是很好充分考虑了这一点,开发者直接利用引用就可以简化指针的处理,而引用也是在所有的初学中最难理解的部分(上手简单)
- Java是为数不多的支持多线程编程的开发语言,提高了单位时间内处理的性能,多线程也是最难理解的部分,正确的多线程处理才是处理性能的核心所在
- Java提供高效的网络处理能力,可以基于NIO实现更加高效的数据传输
- Java具有良好的**可移植性,**可以提升一个程序的适用范围
- Java语言足够简单
2、 可移植性
同一个程序可以在不同的操作系统之间任意的进行部署,这样就减少了开发的难度,依靠Java虚拟机(JVM)实现,Java虚拟机是一个由软件和硬件模拟出来的计算机,程序只要有Java虚拟机的支持,那么就 可以实现程序的执行,并且不同的操作系统上有不同的JVM的存在,从而实现移植
Java文件 编译后 生成字节码文件 然后由jvm识别后执行,硬件技术的发展可以提升软件的效率,重点是**JVM调优 **
3、 开发基础
JDK:Java dvelopment Kit,Java 的开发和运行环境,包括了Java的开发工具和jre
JRE:Java Runtime Environment,Java程序的运行环境,包括了Java运行的所需的类库 和jvm
JVM:Java Virtual Machine,Java虚拟机,Java程序和操作系统之间的接口,让Java程序能在系统上运行
4、JDK 选型
对JDK,有主要的几个标志性版本
1995 .5.23 JDK1.0 发布,1996 年提供下载,标志着Java的诞生
1998.12.4 JDK1.2推出, 更名为Java2(只是升级版)
2005.5.23 Java十周年大会,推出 JDK1.5 ,带来版本新特性以及开发支持更多的版本,决定了后续十年的技术核心
2014 提供了JDK1.8 支持Lambda 支持函数式编程
2017 提供了JDK1.9 提升了1.8的稳定性
生产环境部署现阶段应该以JDK1.8为主
Oracle JDK,有生命周期限制,8u212 后在生产环境中使用会收费,但是 一直会提供技术支持
OpenJDK 发行版, spring 推荐使用
三、万物皆对象
Java把内存分为四个区域:堆,栈,静态区,常量区
- 堆:位于RAM,存放所有的Java对象
- 栈:位于RAM,引用位于栈
- 静态区:位于RAM,被static修饰符修饰的变量会被放在这里
- 常量区:位于ROM,放常量
注:JVM会帮我们处理这些存取
创建对象的过程就是:在堆中开辟一块空间存放新建的某个对象,然后在栈中新建一个引用,指向这个对象
存在特例:基本数据类型:存放在堆中,值存放在常量区
什么是对象
所有客观存在的事物都是对象,我们将功能通过对象来实现,将功能封装在对象中,让对象去实现具体的细节,在Java中我们通过类来描述对象的行为和方法
public class dog{ //类:狗
private String name; //私有的:名称
private int age; //私有的: 年龄
public void eat(){//行为:睡觉
}
public String getName(String name){
return this.name = name
}
public void setName(String name){
this.name = name
}
}