一、概念
1.Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。
2.Java 可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。
3.移动操作系统 Android 大部分的代码采用 Java 编程语言编程。
4.Java分为三个体系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE) (Java 2 Platform,Enterprise Edition,java平台企业版)
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)
5.主要特性:
- 面向对象:Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。
- 分布式:Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。
- 健壮:Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。
- 安全:Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵
- 体系结构中立:Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
- 可移植:这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。
- 解释型:指源代码不需要预先进行编译,在运行时,要先进行解释再运行。解释型语言执行效率低,但跨平台性好。
- 高性能:Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++
- 多线程:线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建
- 动态:Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
二、基础
1.类、对象、方法和实例变量的概念:
- 对象:对象是类的一个实例,有状态和行为。
- 类:类是一个模板,它描述一类对象的行为和状态。
- 方法:方法就是行为,一个类可以有很多方法。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
2.注解
- 单行注释://
- 多行注释以?/*开始,以?*/结束
- 文档注释以?/**?开始,以?*/?结束,通常出现在类、方法、字段等的声明前面,用于生成代码文档,这种注释可以被工具提取并生成 API 文档
3.基本数据类型
- byte 数据类型是8位、有符号的,以二进制补码表示的整数?默认值是?0? -128 ~ 127
- short 数据类型是 16 位、有符号的以二进制补码表示的整数?默认值是?0 -32768 ~ 32767
- int 数据类型是32位、有符号的以二进制补码表示的整数 默认值是?0?(-2^31)~?(2^31 - 1)
- long 数据类型是 64 位、有符号的以二进制补码表示的整数?默认值是?0L(-2^63)~?(2^63 -1)
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数?默认值是?0.0f
- double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数?默认值是?0.0d
- boolean数据类型表示一位的信息?默认值是?false
- char 类型是一个单一的 16 位 Unicode 字符 默认值是?'u0000' '\u0000' ~ '\uffff'
4.引用类型
- 引用类型指向一个对象,指向对象的变量是引用变量。
- 对象、数组都是引用数据类型。
- 所有引用类型的默认值都是null。
5.常量
- 使用 final 关键字来修饰常量,声明方式和变量类似:final double PI = 3.1415927
- 为了便于识别,通常使用大写字母表示常量
6.特殊的转义字符序列
符号 | 字符含义 |
---|
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符 (0x0) |
\s | 空格 (0x20) |
\t | 制表符 |
\" | 双引号 |
\' | 单引号 |
\\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |
7.访问控制修饰符
-
default?(即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
-
private?: 在同一类内可见。使用对象:变量、方法。?注意:不能修饰类(外部类)
-
public?: 对所有类可见。使用对象:类、接口、变量、方法.
-
protected?: 对同一包内的类和所有子类可见。使用对象:变量、方法。?注意:不能修饰类(外部类)
private?声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问
public 的类、方法、构造方法和接口能够被任何其他类访问
8.非访问修饰符
- static 修饰符,用来修饰类方法和类变量。
- final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
- abstract 修饰符,用来创建抽象类和抽象方法。
- synchronized 和 volatile 修饰符,主要用于线程的编程。