目录
Java简介
1995年 Sun公司 Java之父——詹姆斯·戈士林(James Gosling) OAK->JAVA
Sun ONE(Open Net Environment) 体系:
- Java SE 标准版 桌面应用程序的开发
- Java EE 企业版 开发企业级分布式的网络程序
- Java ME 应用于嵌入式系统开发
特性:
面向对象、与平台无关(跨平台性)、安全、稳定、多线程等
“一旦写成处处可用”
面向对象
更符合人的思维模式,更容易解决复杂问题。
与平台无关(跨平台性)
编写的软件可在执行码上兼容,在所有计算机上运行。只需要操作系统上提供运行环境(Java Runtime Environment,JRE),此环境由Java虚拟机(Java Virtual Machine,JVM)、类库以及一些核心文件组成。
Tips:JDK、JRE、JVM区分辨析
JDK=JRE+开发工具
JRE=JVM+类库
JDK>JRE>JVM
安全
删除了指针和内存释放等语法,有效地避免了非法操作内存。
java程序代码要经过:代码校验、指针校验、等很多测试步骤才能运行。
多线程
使应用程序在同一时间并行执行多项任务,相应的同步机制保证不同线程间正确的共享数据,实现更好的交互能力和实时行为。
动态
由于Java程序的基本组成单元是类,类在运行时时动态装载的,Java可以在分布环境中动态调整库中的方法和增加变量,而客户端不需要任何修改。
程序开发三步骤:
编写源程序(java源程序)——>编译源程序(java字节码文件)——>运行(JVM)
基础语法
public class HelloJava{ public static void main(String args[]){ } }
Tips:Java语句严格区分大小写
基本数据类型
四类八种基本数据类型:
Tips:Java中的默认类型:整数类型是 int 、浮点类型是 double 。
类型转换:
自动转换:
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
强制转换:
转换格式:数据类型 变量名 = (数据类型)被转数据值;
Tips:
- 浮点转成整数,直接取消小数点,可能造成数据损失精度。
- int 强制转成 short 砍掉2个字节,可能造成数据丢失。
标识符
标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。
命名规则(硬性要求)
- 标识符可以包含 英文字母26个(区分大小写) 、 0-9数字 、 $(美元符号) 和 _(下划线) 。
- 标识符不能以数字开头。
- 标识符不能是关键字。
命名规范 (软性建议)
- 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
- 方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
- 变量名规范:全部小写。
关键字
常量
常量是指在Java程序中固定不变的数据。
变量
变量是程序中可以变化的量。
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
格式:数据类型 变量名 = 数据值;
Tips:
- Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
- 变量名称:在同一个大括号范围内,变量的名字不可以相同。
- 变量赋值:定义的变量,不赋值不能使用。
运算符
算术运算符:
++ 运算,变量自己增长1。反之, – 运算,变量自己减少1,用法与 ++ 一致。
- 独立运算: 变量在独立运算时, 前++ 和 后++ 没有区别 。
变量 前++ :例如 ++i 。
变量 后++ :例如 i++ 。
- 混合运算: 和其他变量放在一起, 前++ 和 后++ 就产生了不同。
变量 前++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。
变量 后++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a的结果是2,b 的结果是1。
+符号在字符串中的操作:
+符号在遇到字符串的时候,表示连接、拼接的含义。
“a”+"b"的结果是“ab”,连接含义
赋值运算符:
比较运算符:
Tips:是两个数据之间进行比较的运算,运算结果都是布尔值 true 或者 false 。
位运算符:
逻辑运算符:
Tips:用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false
三元运算符:
格式: 数据类型 变量名 = 布尔类型表达式?结果1:结果2
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。
instanceof 运算符:
格式: ( Object reference variable ) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
控制语句
顺序结构
public static void main(String[] args){ //顺序执行,根据编写的顺序,从上到下运行 System.out.println(1); System.out.println(2); System.out.println(3); }
判断语句
-if语句
if(关系表达式){ 语句体; }
执行流程:
-首先判断关系表达式看其结果是true还是false
-如果是true就执行语句体
-如果是false就不执行语句体-if-else语句
if(关系表达式) { 语句体1; }else { 语句体2; }
执行流程:
-首先判断关系表达式看其结果是true还是false
-如果是true就执行语句体1
-如果是false就执行语句体2-if-else if-else语句
if (判断条件1) { 执行语句1; } else if (判断条件2) { 执行语句2; }... } else if (判断条件n) { 执行语句n; } else { 执行语句n+1; }
执行流程:
-首先判断关系表达式1看其结果是true还是false
-如果是true就执行语句体1
-如果是false就继续判断关系表达式2看其结果是true还是false
-如果是true就执行语句体2
-如果是false就继续判断关系表达式…看其结果是true还是false
-如果没有任何关系表达式为true,就执行语句体n+1。
选择语句
-switch语句
switch(表达式) { case 常量值1: 语句体1; break; case 常量值2: 语句体2; break; ... default: 语句体n+1; break; }
Tips:case后如果不写break,会不进行判断直接向后运行直至遇到break或整体switch结束。
执行流程:
-首先计算出表达式的值
-其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
-最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。循环语句
-for语句
for(初始化表达式①; 布尔表达式②; 步进表达式④){ 循环体③ }
执行顺序:①②③④>②③④>②③④…②不满足为止。
-①负责完成循环变量初始化
-②负责判断是否满足循环条件,不满足则跳出循环
-③具体执行的语句
-④循环后,循环条件所涉及变量的变化情况-while语句
初始化表达式① while(布尔表达式②){ 循环体③ 步进表达式④ }
执行顺序:①②③④>②③④>②③④…②不满足为止。
-①负责完成循环变量初始化。
-②负责判断是否满足循环条件,不满足则跳出循环。
-③具体执行的语句。
-④循环后,循环变量的变化情况-do-while语句
初始化表达式① do{ 循环体③ 步进表达式④ } while(布尔表达式②);
执行顺序:①③④>②③④>②③④…②不满足为止。
-①负责完成循环变量初始化。
-②负责判断是否满足循环条件,不满足则跳出循环。
-③具体执行的语句
-④循环后,循环变量的变化情况
数组
三种格式:
- 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
int[] arr = new int[3];
- 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
int[] arr = new int[]{1,2,3,4,5}
- 数据类型[] 数组名 = {元素1,元素2,元素3…};
int[] arr = {1,2,3,4,5}
数组定义格式详解:
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[ ] : 表示数组。
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
new:关键字,创建数组使用的关键字。
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[长度]:数组的长度,表示数组容器中可以存储多少个元素。
Tips:数组有定长特性,长度一旦指定,不可更改。
数组的长度属性: 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的 长度,语句为: 数组名.length ,属性length的执行结果是数组的长度,int类型结果。由次可以推断出,数组的最大索引值为 数组名.length-1
索引访问数组中的元素:
数组名[索引]=数值,为数组中的元素赋值
变量=数组名[索引],获取出数组中的元素
- 参考:
《Java 2实用教程 第5版》
https://blog.youkuaiyun.com/weixin_43353418/article/details/104124018
https://blog.youkuaiyun.com/weixin_43353418/article/details/104122365