一、Java入门
1、Java发展史
1. 1996年1月,SUN公司推出了JDK1.0;
2. 2004年9月,Java SE 5.0发布;
3. 2014年3月,Oracle公司发布Java SE 8;
4. 2018年9月,Java SE 11发布,该版本是一个长期支持版本,持续到2026年9月。
2、Java体系结构与特点
特点:Java是一种跨平台的、健壮的、安全的、面向对象的编程语言。
1. Java SE:标准版,各种应用平台的基础,桌面开发和低端商务应用的解决方案(比如银行软件、商场结算软件)。
2. Java EE:企业版,以企业为环境而开发应用程序的解决方案(比如门户网站(工商银行)、网上商城、阿里巴巴、电子商务网站)。
3. Java ME:微型版,致力于消费产品和嵌入式设备的最佳解决方案(比如移动电话、数字机顶盒、汽车导航系统)。
3、Java跨平台原理
JVM是一个可运行Java字节码的虚拟计算机系统。有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信;不同的平台(计算机操作系统)有不同的JVM。JVM屏蔽了底层运行平台的差别,实现了一次编译,随处运行。
4、Java SE 的组成
5、JDK
JDK:Java开发工具集,包括:
1. JRE:Java运行时环境:
- 加载代码:由类加载器完成;
- 校验代码:由字节码校验器完成;
- 执行代码:由运行时解释器完成。
2. JVM
3. Java API:应用程序编程接口。
4. Java编译器(javac.exe)、Java运行时解释器(java.exe)、Java文档工具(javadoc.exe)等。
二、基础语法
1、变量
变量是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,所以称之为变量。
变量的分类:
1. 按数据类型:
- 基本数据类型变量;
- 引用数据类型变量;
2. 按声明的位置:
- 局部变量:方法或语句块内部定义的变量;
- 成员变量:方法外部,类的内部定义的变量;
2、数据类型
字节是用于计量存储容量的一种计量单位,1字节等于8位即 1Byte = 8 Bit 。
3、类型转换
1. 自动类型转换:容量小的类型自动转换成容量大的数据类型;
- byte、short、int 不会互相转换,计算时会转换成int类型。
2. 强制类型转换:容量大的类型转换成容量小的数据类型,需要加强制转换符。
- 有可能造成精度降低或数据溢出。
4、二进制
计算机中的数据都是以二进制数字保存。
补码:
计算机内的二进制数值是以补码形式表示的。
正数的补码和原码相同;负数的补码是原码绝对值按位取反后再加1。
使用补码的好处:
1. 使用补码可以将符号位和其它位统一处理;
2. 减法也可以按加法来处理;
3. 两个补码相加时,如果最高位有进位,则舍弃进位。
5、权限修饰符
6、运算符
++:
变量前缀,先对变量加1再执行其它操作;
变量后缀,先执行其它操作再对变量加1。
字符串运算:如果“+”的左侧或右侧连接的是字符串,则属于字符串运算,不会进行算术运算。
三目运算:
X ? Y : Z; X为布尔类型,X=true则结果为Y;X=false则结果为Z。
7、转义字符
三、流程控制
1、执行结构
1. 顺序结构:按照语句出现的顺序执行操作;
2. 分支结构:根据条件成立与否执行操作;
3. 循环结构:重复执行某一循环体,直到出现不满足的条件为止。
2、if 条件语句
格式:
if(条件语句){
执行体;
}else if{
执行体;
}
......
else{
执行体;
}
3、switch 语句
格式:
switch(表达式){
case 值1:
语句块1;
break;
case 值2:
语句块2;
break;
......
default:
语句块n;
break;
}
表达式的返回值必须是byte、short、int、char、String类型。
case取值必须是常量;
default子句是可选的;
break语句在执行完一个case分支后使程序跳出switch语句块;如果case后没有break则会贯穿到下面的case分支。
4、循环结构
for循环:
for(初始化参数;判断条件;更新循环变量){
循环体;
}
退出多层循环:
alias:for(初始化参数;判断条件;更新循环变量){
for(初始化参数;判断条件;更新循环变量){
循环体;
break alias;
}
}
break和continue:
break指退出当前循环结构;
continue指退出本次循环,继续执行下一次循环。
while循环:
while(判断条件){
}
符合条件,循环继续执行。先判断,后执行。
do while循环:
do{
}while(判断条件);
先执行一次循环,符合条件继续执行;先执行,再判断。
四、数组
1、概述
数组是存储数据的容器,数据按线性顺序存储在一段连续的内存空间。
优点:
1. 查找速度快:根据索引查找。
缺点:
1. 增删速度慢;
2. 容量固定;
3. 只能存储同一类型数据;
2、创建格式
1. 数据类型[] 数组名称 = new 数据类型[数组长度];
2. 数据类型[] 数组名称 = {数据1,数据2,...,数据n};
3、常见异常
1. 空指针异常:数组未赋值;
2. 数组越界异常:超出长度的索引操作;