Java语言基础组成
---------------------------------------------------------------------------------------------------------------------------
1. 关键字
2. 标示符
3. 注释
4. 常量和变量
5. 运算符
6. 语句
7. 函数
8. 数组
1. 关键字
2.标示符
定义规则:由26个英文字母大小写,数字:0-9符号:_$组成
注意:1.数字不可以开头;2.不可以使用关键字。
Java中严格区分大小写
注意:在起名字时,为了提高阅读星,要尽量有意义。
包名:多单词组成时所有字母都小写
xxxyyyyzzzz;
类名和接口名:多单词组成时,所有单词的首字母大写
XxxYyyZzz;
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每隔单词首字母大写。
XxxYyyZzz;
常量名:所有字母都大写,多单词时每个单词用下划线连接
XXX_YYY_ZZZ;
3.常量与变量
常量表示不能改变的数值
Java中常量的分类:
整数常量:所有整数
小数常量:所有小数
布尔型常量:较为特有,只有两个值 true false
字符常量:将一个数字字母或者符号用单引号(’ ’)标识‘4’ ‘a’ ‘6’
字符串常量:将一个或者多个字符用双引号标识 “abcd” “1234”
null常量:只有一个数值就是null
对于整数:Java有三种表现形式
十进制:0-9,满10进1
八进制:0-7,满8进1,用0开头表示
十六进制:0-9,A-F,满16进1,用0x开头表示
进制的基本转换
十进制 二进制 互转
十进制转化成二进制,除以2取余数
二进制转换成十进制,乘以2的幂数
十进制 八进制 互转
十进制 十六进制 互转
负数的二进制表现形式
对应的整数二进制取反加1
4.变量
概念:就是将不确定的数据进行存储,也就是需要在内存中开辟一个空间。
类型的转换原理
自动类型转换(也叫隐士类型转换)
强制类型转换(也叫显示类型转换)
表达式的数据类型自动提升
所有的byte型、short型和char的值被提升到int型
如果一个操作数是long型,计算结果就是long型;
如果一个操作数是float型,计算结果就是float型;
如果一个操作数是double型,计算uo就是double型
分析1
System.out.println(‘a’)与System.out.println(‘a’+1)的区别
输出结果分别是:a 98
System.out.println(‘a’+1)
解析:’a’在做运算时进行了类型提升,转换成了int型,int型的’a’在ASCII码表上对应的数字是97,所以输出的结果是98
分析2
byteb = 3;
b= b + 2;
输出结果报错:
解析:
5.运算符
算数运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三元运算符
算数运算符
转移字符:
通过\ 来转变后面字母或者符号的含义
如:\n:转换
\b:退格 相当于backspace
\r:按下回车键,widow系统,回车符是由两个字符来表示\r\n
\t:制表符,相当于table键
赋值运算符:
Shorts =3;
s= s + 5;
//s+5中s会自动提升成int型的值,赋给short类型装不下会丢失数据,输出结果会报错
s+ = 5;//输出结果为5
比较运算符
/*
true & true = true;
true & false = false;
false & true = false;
false & false = false;
& : 只要两边的boolean表达式结果,有一个为false,那么结果就是false。只有两边都为true,结果才为true
true | true = true;
true | false = true;
false |true = true;
false |false = false;
| : 两边只要有一个为true,结果为true。只有两边都是false时,结果才为false
^ : 异或:就是和|有点不一样,当true ^true = false;
true ^ true = false;
true ^ false = true;
false ^ true = true;
false ^ false = false;
&和&&的区别:
&:无论左边是true是false,右边都运算
&&:当左边卫false时,右边不运算
| 和 ||的区别
| : 两边都参与运算
|| : 当左边为true,右边不运算
*/
位运算符
练习:
1. 最有效率的方式算出2乘以8等于几?
2<<3
2. 对两个整数变量的值进行互换(不需要第三方变量)
//通过用第三方变量,进行变量互换
temp = n;
n = m;
m = temp;
//不通过第三方变量
n = n + m ;//如果n和m的值非常大,容易超出int范围
m = n – m;
n = n – m ;
//不用地方放变量,技巧型互换
n = n ^ m ;
m = n ^m;//(n^m)^m
n = n ^ m;//n^(n^m)
三元运算符
格式:
(条件表达式)?表达式1 : 表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数
Intx = 3 ;y = 4, z;
z= (x>y)?x:y;//z变量存储的就是两个数的大数
程序流程控制:
判断结构
选择结构
循环结构
判断结构
If语句的三种格式:
1.
if(//条件表达式)
{
//执行语句
}
2.
if(//条件表达式)
{
//执行语句
}
else
{
//执行语句
}
3.
if(//条件表达式)
{
//执行语句
}
else if(//条件表达式)
{
//执行语句
}
…
else
{
//执行语句
}
switch语句
特点:1. switch语句选择的类型只有四种:byte short int char
2.case之间与default没有顺序,先执行第一个case,没有匹配的case执行default
3.结束switch语句的两种情况:遇到break,执行到switch语句结束
4.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,知道遇到break或者结尾结束
格式:
switch(表达式)//
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default://如果缺省,则执行default里的执行语句
执行语句;
break;
}
if和switch语句很像,具体什么场景下,应用哪个语句?
如果判断的具体数值不多,而是符合 byte short int char 这四种类型
虽然两个语句都可以使用,建议使用setich语句,因为效率稍高
其他情况:对区间判断,对结果为boolean类型的判断,使用if,if的使用范围更广