Java基础:

  • Java概述
  • 配置环境
  • 命令行基本操作
  • 注释
  • JavaAPI文档
  • 关键字和保留字
  • 标识符
  • 变量
  • 运算符
  • 程序流程控制
  • 数组
  • 面向对象编程
  • OOP特征一:封装与隐藏
  • OOP特征二:继承
  • OOP特征三:多态
  • 异常处理
  • 多线程
  • Java常用类
  • 枚举类/注解
  • Java集合
  • 泛型
  • IO流
  • 网络编程
  • Java反射机制
  • Java新特性


Java概述

语言发展:机器语言$->$汇编语言$->$高级语言
Java是一种高级语言。无论是从历史渊源还是市场情况来看,Java的主战场是Web领域。
Java在多种场景,比如:大数据,Andruid等等都有不俗的表现。表面看Java是一种类C语言,但实则是一种纯粹的OOP的语言。
不仅如此,Java舍弃了指针等概念,增加了垃圾回收等功能,大大降低了Java的上手难度
Java因为JVM的存在而具有跨平台性。
Java两大核心机制是JVM和垃圾收集机制。JVM是一台虚拟的计算机,有指令集,能分析指令,管理数据,统筹内存,寄存器等资源。只有某平台提供了对应的java虚拟机,java程序才可在此平台运行.Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”.
在C/C++等语言中,由程序员负责回收无用内存。
Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。但Java依然存在内存泄漏和内存溢出的问题。

配置环境

JDK,JRE和JVM的关系。(图片转载)之后还要配置path环境变量,这个可以找其他博客,有教程。

javascript 技术栈 java前端技术栈_封装

命令行基本操作

我们知道,人机交互方式有图形化界面和命令行方式两种。我们需要先熟悉下常见的命令行指令:

javascript 技术栈 java前端技术栈_Java_02

另外,在命令行下开发java的步骤也很简单,javac命令编译,java文件生成.class字节码文件,java命令运行字节码文件。

注释

1.单行注释: //注释文字
2.多行注释:/*注释文字*/
3.文档注释:/** @author 指定java程序作者   @version 指定源文件的版本 */

JavaAPI文档

找JavaSE的Documentation下载

关键字和保留字

关键字:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)

更多内容点这里

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字

标识符

Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符。简单来说就是自己起的名。

javascript 技术栈 java前端技术栈_封装_03

变量

定义:变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。
作用:用于在内存中保存数据。

javascript 技术栈 java前端技术栈_Java_04


javascript 技术栈 java前端技术栈_JVM_05


数据类型分类:

javascript 技术栈 java前端技术栈_JVM_06


不同类型变量的范围:

javascript 技术栈 java前端技术栈_JVM_07


javascript 技术栈 java前端技术栈_封装_08


转义字符:

javascript 技术栈 java前端技术栈_java_09


类型转换:

自动类型转换:小容量->大容量,反之需要强制类型转换。

运算符

分类:算术运算、赋值运算、比较运算、逻辑运算、位运算、三元运算等等。自行上网搜索。

程序流程控制

三种基本流程结构:顺序结构,分支结构和循环结构。
分支结构的分支语句:if-else,switch-case。
循环结构的循环语句:for循环,while循环,do-while循环以及嵌套循环。
其他的常用语句比如,break,continue。
都是类C的,学过C的可以直接跳过,没学过可以自行搜索。

数组

依然类C。不多解释,贴一些图。

内存结构:

javascript 技术栈 java前端技术栈_java_10

面向对象编程

Java基本元素:类和对象
对象的创建和使用
类的成员之一:属性
类的成员之二:方法

OOP特征一:封装与隐藏

类的成员之三:构造器
关键字:this
关键字:package、import

二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
面向对象三大特性:封装,继承和多态。
类(Class)和对象(Object)是面向对象的核心概念。类是对一类事物的描述,是抽象的、概念上的定义,对象是实际存在的该类事物的每个个体,因而也称为实例。

javascript 技术栈 java前端技术栈_javascript 技术栈_11

javascript 技术栈 java前端技术栈_javascript 技术栈_12

我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象。如:new Person().shout();

javascript 技术栈 java前端技术栈_封装_13

方法可以重载。
Java里方法的参数传递方式只有一种:值传递。 
但是要重点区分基本数据类型参数传递和引用数据类型参数传递过程中的内存变化。

封装:

隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。

javascript 技术栈 java前端技术栈_javascript 技术栈_14

构造方法(构造器):

构造器的作用:创建对象;给对象进行初始化。默认构造器/显式定义一个或多个构造器(构造方法也可以重载)

This指针:

当在方法内需要用到调用该方法的对象时,就用this。

其他:

package 顶层包名.子包名 ;
import 包名. 类名

OOP特征二:继承

继承的关键字用的是“extends”,即子类不是父类的子集,而是对父类的“扩展”
Java只支持单继承和多层继承,不允许多重继承

方法的重写:

在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。

四种访问权限修饰符:

javascript 技术栈 java前端技术栈_Java_15

OOP特征三:多态

后续所有内容国庆节更新完毕!有需要的可以关注,后续自取。

异常处理

多线程

Java常用类

枚举类/注解

Java集合

泛型

IO流

网络编程

Java反射机制

Java新特性