Java 简介

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。
Java 可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。

Java 简史

计算机语言发展历史:

  1. 第一代:机器语言
  2. 第二代:汇编语言
  3. 第三代:高级语言
    1. 面向过程:C、Fortran、Pascal ···
    2. 面向对象:C++、Java、C# ···

其中,Java 是由 James Gosling 发明,美国SUN(Stanford University Network)公司推出

常见名词

  • Java 体系
    • JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
    • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
    • JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)

Java 入门 - 图1

  • Java 开发环境
    • JDK(Java Development Kit ):编写Java程序的程序员使用的软件
    • JRE(Java Runtime Environment):运行Java程序的用户使用的软件
    • Server JRE (Java SE Runtime Environment):服务端使用的 Java 运行环境
    • SDK(Software Development Kit):软件开发工具包,在Java中用于描述1998年~2006年之间的JDK
    • DAO(Data Access Object):数据访问接口,数据访问,顾名思义就是与数据库打交道
    • MVC(Model View Controller):模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法

Java 特点

  • 跨平台(核心优势
    • 编译后的字节码文件可以在任何具有 Java 虚拟机的设备上运行
  • 简单
  • 安全
    • 取消了强大而又危险的指针
    • 提供了自动内存管理机制
  • 完全面向对象
  • 健壮

Java 跨平台


Java 入门 - 图2

  • Java 跨平台和 C 跨平台的区别
    • Java:一次编译,处处运行
    • C:多次编译,处处运行
  • 字节码文件
    • 格式中立、平台无关的二进制文件
    • 是编译的产物、解释的原料

编译与反编译

  • 编译时空白行、注释的行会被忽略掉
  • 反编译软件:jd-gui.exe
  • 反编译得到的源代码不可能有注释

面向对象

封装性、继承性、多态性

开发环境

  • Windows
    • 环境变量
      JAVA_HOME:方便更改 JDK 路径
      PATH:Java 命令的路径
      CLASSPATH:内部类的路径
  • Linux

Hello World

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. System.out.println("Hello World");
  4. }
  5. }

$ javac HelloWorld.java
$ java HelloWorld
Hello World!

Java 基础

语句和表达式

  • 语句以 ; 结尾

注释

  • 单行注释 // comment
  • 多行注释 / comment /
  • 文档注释 /* comment /

关键字

类别 关键字
访问控制 private、protected、public
类、方法、变量的修饰符 abstract、class、extends、final、implements(声明接口)、interface(接口)、native、new、static、 strictfp、synchronized(线程,同步)、transient、volatile
程序控制 if、else、switch、case、default、for、do、while、break、continue、return、instanceof
错误处理 assert(断言)、try、catch(捕捉异常)、throw(抛出一个异常对象)、throws(声明一个可能被抛出的异常)、finally(有无异常都执行)
包相关 import(引入)、package
基本类型 byte、short、int、long、float、double、char、boolean、void
变量引用 super(父类,超类)、this(本类)
保留关键字 null、goto(不能使用)、const(不能使用)
  • 关键字都是小写的
  • true、false、null 严格说不应该算关键字,应称其为保留字更合适

标识符

Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。

  • 标识符由数字(0~9)和字母(A~Z 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
  • 对大小写敏感。
  • 不能使用关键字

例如以下合法与不合法标识符。

  • 合法标识符:date、$2011、date、D$date 等。
  • 不合法的标识符:123.com、2com、for、if 等。

变量类型

  • 基本数据类型(8种)
    数值型(整型、浮点型)、字符型、布尔型 | 类型 | 长度 | 范围 | | —- | —- | —- | | byte | 1 Byte = 8 bit | - 128 ~ 127 | | short | 2 Byte = 16 bit | - 32768 ~ 32767 | | int | 4 Byte = 32 bit | - 2^31 ~ 2^31 - 1 | | long | 8 Byte = 64 bit | - 2^63 ~ 2^63 - 1 | | float | 4 Byte = 32 bit | | | double | 8 Byte = 64 bit | | | char | 2 Byte | | | boolean | 1 Byte | true
    或 false |

  • 引用数据类型

    • 接口
    • 数组

常量

  • 用 final 修饰
  • 常量名通常全部大写
  • 默认整型常量为 int 型,long 型常量要加上 L 或 l
    默认浮点型常量为 double 型,float 型常量要加上 F 或 f
  • 整型常量八进制以 0 开头,十六进制以 0x 开头
  • 字母、数字占 1 Byte,汉字占 2 Byte
  • 常用的转义字符

“\b” (退格) “\f” (换页) “\n” (换行) “\r” (回车) “\t” (水平制表符(到下一个tab位置)) “\’” (单引号) “\”” (双引号) “\“ (反斜杠)

修饰符

  • 访问修饰符 | 修饰符 | 当前类 | 同一包内 | 子孙类(同一包) | 子孙类(不同包) | 其他包 | | —- | —- | —- | —- | —- | —- | | public | √ | √ | √ | √ | √ | | protected | √ | √ | √ | ? | × | | default | √ | √ | √ | × | × | | private | √ | × | × | × | × |

  • 非访问修饰符

运算符

  • 算术运算符:+-*/%
  • 赋值运算符:=+=-=*=/=%=
  • 递增递减运算符:++—
  • 比较运算符:==!=><>=<=
  • 逻辑运算符:AND(短路 &&、非短路 &)OR(短路 ||、非短路 |)XOR(^)NOT(!)

运算优先级:递增递减 > 算术运算 > 比较运算 > 逻辑运算 > 赋值运算

运算符优先级(从高到低)
.
()
[]
++

!
~
instanceof
new
*
/
%
+
-
>
<
>=
<=
==
!=
& ^ | && ||
?:
=
+=
-=
*=
/=
%=

分支结构

if…else语句

if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。

语法

if…else 的用法如下:

  1. if(布尔表达式 1){
  2. ////如果布尔表达式 1的值为true执行代码
  3. if(布尔表达式 2){
  4. ////如果布尔表达式 2的值为true执行代码
  5. }
  6. }

switch case 语句

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

语法

switch case 语句语法格式如下:

  1. switch(expression){
  2. case value :
  3. //语句
  4. break; //可选
  5. case value :
  6. //语句
  7. break; //可选
  8. //你可以有任意数量的case语句
  9. default : //可选
  10. //语句
  11. }

循环结构

Java中有三种主要的循环结构:

  • while 循环
  • do…while 循环
  • for 循环

while循环
while是最基本的循环,它的结构为:
while( 布尔表达式 ) {
//循环内容
}

  1. int i = 10;
  2. while( i < 20 ) {
  3. System.out.print("value of i : " + i );
  4. i++;
  5. System.out.print("\n");
  6. }

do while
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
do {
//代码语句
}while(布尔表达式);

  1. int i=30;
  2. do{
  3. System.out.print("value of i : " + i );
  4. i++;
  5. System.out.print("\n");
  6. }while( i < 20 );


for循环
执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新){
//代码语句
}

  1. for(int i = 10; i < 20; i++) {
  2. System.out.print("value of i : " + i );
  3. System.out.print("\n");
  4. }

数组

首先必须声明数组变量,才能在程序中使用数组。
dataType[] arrayVar;
定义10个整形的数组,int[] myArr= new int[10];

Java 面向对象

对象的概念

Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。对象有以下特点:

  • 对象具有属性和行为。
  • 对象具有变化的状态。
  • 对象具有唯一性。
  • 对象都是某个类别的实例。
  • 一切皆为对象,真实世界中的所有事物都可以视为对象。

动物只是抽象的描述,我们称为类。
Java 入门 - 图3