一. 发展史
JAVA发展时间线(https://www.oracle.com/java/moved-by-java/timeline/)
JDK发展史(https://blog.csdn.net/qq_40657849/article/details/110874184)
JVM发展历程(https://blog.csdn.net/qq_43688587/article/details/110776690)
二. 概述
Java是James Gosling(Java之父)在Sun公司(2009年4月被Oracle - 甲骨文公司收购)领导的小组开发的。Java最初被称为Oak(橡树),是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。Java的快速发展以及被广泛接受都应归功于它的设计特性,特别是它的承诺:一次编写到处运行。
更多关于Java特性的分析,请参考(https://www.cnblogs.com/javaupup/p/14238646.html)
三. 基本类型
byte、short、int、long、float、double、char、boolean
基本类型 | 内存大小 | 二进制位数 | 带符号取值范围 | 不带符号取值范围 |
---|---|---|---|---|
byte | 1字节 | 8位 | -2^7 ~ 2^7-1 | 0 ~ 2^8-1 |
short | 2字节 | 16位 | -2^15 ~ 2^15-1 | 0 ~ 2^16-1 |
int | 4字节 | 32位 | -2^31 ~ 2^31-1 | 0 ~ 2^32-1 |
long | 8字节 | 64位 | -2^63 ~ 2^63-1 | 0 ~ 2^64-1 |
float | 4字节 | 32位 | - | 1.4E-45 ~ 3.4E38 |
double | 8字节 | 64位 | - | 4.9E-324 ~ 1.79E308 |
char | 2字节 | 16位 | - | 0 ~ 2^16-1 |
boolean | 1字节/4字节(由JVM决定) | 8位/32位 | - | 0或1 |
四. 程序基本结构
包名
为了避免相同的类名带来的问题,一般全小写
类名
类是一类事物的抽象模型,就好比杨树、柳树、xx花草都属于植物,植物类就属于类,杨树、柳树、xx花草同属于植物类,类名必须以字母开头,首字母大写,可以由字母加数字组合
类变量
类的变量,通过类去访问
类方法
类的方法,通过类去调用
实例变量
类的实例的变量,通过类的实例去访问,每个实例都独有
实例方法
类的实例的方法,通过类的实例去调用,每个实例都独有
局部变量
方法内部的变量,随着方法的调用开始初始化,方法调用结束后销毁
方法体
方法名 + 方法参数 = 方法体
五. 面向对象
封装
把该隐藏的隐藏起来,把该暴露的暴露出来
Java通过访问修饰符实现访问权限限制
访问修饰符 | 说明 |
---|---|
private | 在当前类中可访问 |
default | 在当前包内和访问 |
protected | 在当前类和它派生的类中可访问 |
public | 公众的访问权限,谁都能访问 |
继承
使用 extends 关键字,子类继承父类,代码可以得到复用,使用继承机制可以做到方法的覆盖和多态机制。继承也是存在缺点的:耦合度高,父类修改,子类受牵连
多态
指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。
六. 数据结构
数组
一段连续的内存空间,数组中的元素通过下标访问
栈
是一种线性表,仅能在线性表的一端进行操作,栈顶可操作,栈底不可操作,遵循先进后出原则
队列
也是一种线性表,可在一端添加元素,另一端取出元素,遵循先进先出原则
链表
物理存储单元上非连续的、非顺序的存储结构,每个元素包含两个域,一个域存储数据,另一个域存储指向下一个元素的引用
树
由有限个节点组成的一个有层次关系的集合
散列表
散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素
堆
堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。
图
图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系
七. IDE(Java开发工具)
Eclipse
开源免费
下载地址:https://www.eclipse.org/downloads/
IDEA
专业版收费,社区版免费
下载地址:https://www.jetbrains.com/idea/
NetBeans
开源免费
下载地址:https://netbeans.apache.org//