复习一下java语言基础,再有人问你 你会java吗 你可以踏实的说: 会
该篇文章不适合java初学者。适合已经会使用java语言编程,想复习java语言基础的童学。
- Java可运行到各个平台, jre是java的运行环境,面向Java程序的使用者。 JDK是Java的开发和编译环境
- Java分三个体系:JavaSE(标准平台,桌面应用)、JavaEE(企业版,支持分布式部署)、javaME(移动开发)。
他们的范围是:JavaSE包含于JavaEE中,JavaME包含了JavaSE的核心类,但新添加了一些专有类。
JavaSE是基础,缩减一点就是JavaME,增加一点就是JavaEE。 - Java JDK 和 JRE下载地址 https://www.oracle.com/technetwork/java/javase/downloads/index.html
在使用java开发之前需要先安装JDK,并且配置环境变量。 - Java语言是一个面向对象的编程语言,因此 可以说 一个java程序是一系列对象的集合,这些对象通过调用彼此的方法进行工作。所以需要了解 类、对象、方法、变量等基本概念。
- java开发常用的工具包扣 Eclipse、IntelliJ IDEA(后台开发)、Android Studio(移动端开发)(根据IntelliJ IDEA的改的)
- 对象是类的一个实例,它包含状态和行为; 类 是一个模板,它描述一类对象行为和状态;方法是对象的行为;变量来决定对象的状态
- java关键字列表,这些保留字不能用于常量、变量、和任何标识符的名称
特别说明一下:类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public 公共的 类、方法和变量修饰符 abstract 声明抽象 class 类 extends 扩充,继承 final 最终值,不可改变的 implements 实现(接口) interface 接口 native 本地,原生方法(非Java实现) new 新,创建 static 静态 strictfp 严格,精准 synchronized 线程,同步 transient 短暂 volatile 易失 程序控制语句 break 跳出循环 case 定义一个值以供switch选择 continue 继续 default 默认 do 运行 else 否则 for 循环 if 如果 instanceof 实例 return 返回 switch 根据值选择执行 while 循环 错误处理 assert 断言表达式是否为真 catch 捕捉异常 finally 有没有异常都执行 throw 抛出一个异常对象 throws 声明一个异常可能被抛出 try 捕获异常 包相关 import 引入 package 包 基本类型 boolean 布尔型 byte 字节型 char 字符型 double 双精度浮点 float 单精度浮点 int 整型 long 长整型 short 短整型 变量引用 super 父类,超类 this 本类 void 无返回值 保留关键字 goto 是关键字,但不能使用 const 是关键字,但不能使用 null 空
strictfp:修饰类和方法,精确浮点
transient:变量修饰符,在对象存储时,这些变量状态不会被持久化
volatile:修饰变量。在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。 - 变量包含:局部变量、成员变量、类变量
- 一个源文件中只能包含一个public类,但是可以包含多个非public类。且源文件的名称应该和public类的类名保持一致
- Java分内置数据类型和引用数据类型,
Java 8个基本数据类型(内置数据类型)
byte:整数, 8 位 ,一个字节,有符号, 最小值-128, 最大127 , 默认0
short:整数,16位,两个字节,有符号,最小-2^15 ,最大 2^15 -1 ,默认0
int: 整数,32位,四个字节, 有符号,最小-2^31, 最大2^31 -1 , 默认0
long:整数,64位,8个字节,有符号,最小-2^63,最大2^63-1, 默认0
float:浮点数,32位,4个字节,有符号,默认0.0f
double:浮点数,64位,8个字节,有符号,默认0.0d
boolean: 状态信息,1位, true/false, 默认false。 二进制里面的0和1
char:Unicode字符,16位,存储任何字符
引用类型指向一个对象,指向对象的变量是引用变量。所有引用类型的默认值都是null - 变量和常亮的区别在于final。使用final定义的变量就是常量。
- java访问控制符:修饰类、方法、变量。
default:同一个包内可见
private:同一个类内可见
public:对所有类可见
protected:对同一包内的类和所有子类可见
注释1:子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问修饰符 当前类 同一包内 子孙类(同一包) 子孙类(不同包) 其他包 public
Y Y Y Y Y protected
Y Y Y Y/N(注释1) N default
Y Y Y N N private
Y N N N N
子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法 - Java运算符包扣以下几个分类:算术、关系、位、逻辑、赋值、其他
算术运算符:+ 、 - 、* 、 /、%、++、--
其中前缀++、--:先进行自增或者自减运算,再进行表达式运算
后缀++、--:先进行表达式运算,再进行自增或者自减运算
关系运算符:==、!=、>、>=、<、<=
位运算符:&、|、^、〜、<< 、>> 、>>>
右移位运算符>>,若操作的值为正,则在高位插入0;若值为负,则在高位插入1
右移补零操作符>>>,无论正负,都在高位插入0
逻辑运算符:&&、| |、!
赋值运算符:=、+ =、- =、* =、/ =、(%)=、<< =、>> =、&=、^ =、| =
条件运算符:?:
instanceof
运算符优先级:单目乘除为关系,逻辑三目后赋值。 - while、do...while、 for、break、if...else、switch...case。回忆一下用法和区别
- 基本数据类型的包装类:Integer、Long、Byte、Double、Float、Short、Character
- StringBuilder、StringBuffer和String的区别:
运行速度:StringBuilder>StringBuffer>String.
String是一个字符串常量,StringBuffer和StringBuilder是变量。
StringBuffer线程安全、StringBuilder线程不安全。