Java的概述
Java语言的特点
简单性 解释性
面向对象 高性能面向对象 高性能
分布式处理 多线程
健壮性 动态
结构中立 安全性
开源
跨平台
什么是跨平台性?
通过Java语言编写的应用程序在不同的系统平台上都可以运行。
原理是什么?
只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。
由JVM来负责Java程序在该系统中的运行
写一个最简单的Java程序
class helloworld
public static void main(String[] args){
System.out.printline("helloworld")
}
Java的注释
注释的定义
用于程序运行过程中,用于解释说明的文字
三种
- 单行注释:// 要说明的文字
- 多行注释:/* 要说明的文字 */
- 文档注册:/** 要说明的文字 */
注释的好处:
- 帮助我们去理解代码
- 是排错的一种手段
Java的关键字
关键字:被java语言赋予特殊含义的单词,一般都是小写字母与构成
-
标识符:凡是可以自己命名的地方,都是标识符。比如:类名,变量名,方法名,包名,等。
给标识符起名的统一规范:
- 由英文大小写与数字构成
- 可以由下划线和$特殊符号组成
给标识符起名的注意事项:
- 不能是数字开头
- 不能与java中的关键字同名
- 不能除_和$以外的特殊字符出现
- 要见名知意
常见的命名场景:
- 类或接口
- 一个单词:首字母大写,其余字符小写 举例:Student
- 多个单词:每个单词首字母大写,其余字母都是小写 举例:HighStudent
- 方法和变量
- 一个单词:单词全部小写
- 多个单词:第一个单词全部小写,从第二个单词开始,首字母大写其余字母小写 举例:playGame()
- 常量
- 一个单词:单词全部大写 举例:NAME
- 多个单词:单词全部大写,单词之间使用下划线连接 举例:FIRST_NAME
常量
常量:在java程序允许过程中,其值不可以发生改变的量
分类:
- 字面常量
- 整数常量. 所有的整数本身就是一个常量
- 小数常量. 所有小数
- 字符常量. 有一个单引号括起来的单个字符
- 布尔常量. true false
- 空常量
整数类型:
byte 1
short 2
int 4
long 8
小数类型{浮点类型}:
float 所占4个字节
double 所占8个字节
字符类型:
char 在不同编码下所占字节不同,默认java的Unicode编码,一个字符占用3个字节
布尔类型:
boolean
计算机存储单位
-
字节(Byte):是计算机用于计量存储容量的基本单位,一个字节等于8bit
-
位(bit):是数据存储的最小单位。二进制数系统中,每个0或者1就是一个位,叫做bit (比特),其中8bit就称为一个字节(Byte)
-
转换关系:
-
8 bit = 1 Byte
-
1024 Byte = 1 KB
-
1024 KB = 1 MB
-
1024 MB = 1 GB
-
1024 GB = 1 TB
引用数据类型
String array 类 接口等
强制类型转换
- 规则:将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型。
- 格式:数据类型1 变量名=(类型数据1) 被强制转换
(1)当把存储范围大的值(常量值、变量的值、表达式计算的结果值)强制转换为存储范围小的变量时,可能会损失精度
或溢出
nt i = (int)3.14;//损失精度
double d = 1.2;
int num = (int)d;//损失精度
int i = 200;
byte b = (byte)i;//溢出
(2)当某个值想要提升数据类型时,也可以使用强制类型转换。这种情况的强制类型转换是没有风险
的,通常省略。
int i = 1;
int j = 2;
double bigger = (double)(i/j);
算术运算符
赋值运算符
符号
:= , +=, -=, *=, /=, %=
=为基本的赋值运算符,其他的为扩展的赋值运算符
如下操作写出结果
int a,b; a = b = 10;
System.out.println(a); System.out.println(b);
int a = 10; a += 20; System.out.println(a);
面试题
short s=1, s = s+1; short s=1, s+=1;
上面两个代码有没有问题,如果有,那里有问题
关系运算符
逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
位运算符
运算符优先级
-
运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序。
优先级 运算符说明 Java运算符 1 括号 ()
、[]
、{}
2 正负号 +
、-
3 单元运算符 ++
、--
、~
、!
4 乘法、除法、求余 *
、/
、%
5 加法、减法 +
、-
6 移位运算符 <<
、>>
、>>>
7 关系运算符 <
、<=
、>=
、>
、instanceof
8 等价运算符 ==
、!=
9 按位与 &
10 按位异或 ^
11 按位或 ` 12 条件与 &&
13 条件或 ` 14 三元运算符 ? :
15 赋值运算符 =
、+=
、-=
、*=
、/=
、%=
16 位赋值运算符 &=
、`
键盘录入
-
顺序结构
- 顺序结构概述
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,自上而下,依次执行,程序中大多数的代码都是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行
- 顺序结构概述
-
选择结构
-
break和continue的说明
-
break和continue的说明
适用范围 在循环结构中使用的作用 相同点 break switch-case 循环结构 一旦执行,就结束(或跳出)当前循环结构 此关键字的后面,不能声明语句 continue 循环结构 一旦执行,就结束(或跳出)当次循环结构 此关键字的后面,不能声明语句
-
选择结构 也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句-
if语句
if语句有三种格式 if语句第一种格式: if(关系表达式) { 语句体 } if语句第二种格式: if(关系表达式) { 语句体1; }else { 语句体2; } f语句第三种格式: if(关系表达式1) { 语句体1; }else if (关系表达式2) { 语句体2; } … else { 语句体n+1; }
-
switch语句
switch语句格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; … default: 语句体n+1; break; } 格式解释 switch表示这是switch语句 表达式的取值:byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是String case后面跟的是要和表达式进行比较的值 语句体部分可以是一条或多条语句 break表示中断,结束的意思,可以结束switch语句 default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。 执行流程 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 注意事项 case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的 default可以省略吗? 可以省略。一般不建议。除非判断的值是固定的。(单选题) break可以省略吗? 可以省略,一般不建议。否则结果可能不是你想要的 default的位置一定要在最后吗? 可以出现在switch语句任意位置。 switch语句的结束条件 遇到break 执行到程序的末尾
-
-
-
循环结构
-
-
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
-
for循环
-
for循环语句格式: for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } 1,初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
-
while循环
①初始化部分 while(②循环条件部分){ ③循环体部分; ④迭代部分; } while(循环条件)中循环条件必须是boolean类型。 注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。 for循环和while循环可以相互转换。二者没有性能上的差别。实际开发中,根据具体结构的情况,选择哪个格式更合适、美观。 for循环与while循环的区别:初始化条件部分的作用域不同。
-
do while循环
①初始化部分; do{ ③循环体部分 ④迭代部分 }while(②循环条件部分); do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的
-
无限循环
最简单"无限"循环格式 while(true) for(;;)
-
嵌套循环
所谓嵌套循环 是指一个循环A的循环体是另一个循环B。比如,for循环里面还有一个for循环,就是嵌套循环。其中,for ,while ,do…while均可以作为外层循环或内层循环。 外层循环:循环A 内层循环:循环B 实质上,嵌套循环就是把内层循环当成外层循环的循环体。只有当内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的外层循环。 设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。 技巧:从二维图形的角度看,外层循环控制行数,内层循环控制列数。 for(初始化语句①; 循环条件语句②; 迭代语句⑦) { for(初始化语句③; 循环条件语句④; 迭代语句⑥) { 循环体语句⑤; } } //执行过程:① - ② - ③ - ④ - ⑤ - ⑥ - ④ - ⑤ - ⑥ - ... - ④ - ⑦ - ② - ③ - ④ - ⑤ - ⑥ - ④..
-
-
-