Java基础语法(上篇)
知识概要:
(1)关键字的表示与规范
(2)标示符
(3)注释
(4)变量
(5)常量和变量
(6)运算符
(7)循环结构
(1)关键字的表示和规范
(2)标识符
在程序中自定义的一些名称。由26个英文字母大小写,数字:0-9 符号:_ $ 组成
定义合法标识符规则:
1,数字不可以开头。 2,不可以使用关键字。
Java中严格区分大小写。
注意:在起名字的时,为了提高阅读性,要尽量有意义。
Java中的名称规范:
包名:多单词组成时所有字母都小写。
• xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。
• XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首 字母大写。
• xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
• XXX_YYY_ZZZ
(3) 注释
对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
对于文档注释,是java特有的注释,其中注释内容可 以被JDK提供的工具javadoc 所 解析,生成一套以网格式的
文件体现该程序的说明文档。
注释是一个程序员必须要具有的良好编程习惯。
初学者编写程序可以养成习惯:先写注释再写代码。
将自己的思想通过注释先整理出来,在用代码去体现。
因为代码仅仅是思想的一种体现形式而已。
/**
这是我的Hello World程序。
@author 小强
*/
class Demo
{
/*
这是主函数,是程序的入口
它的出现可以保证程序的独立运行,
*/
public static void main(String[] args)
{
//这是输出语句用于将括号内的数据打印到控制台。
System.out.println("Hello World");
}
}
(4)常量
常量表示不能改变的数值。
Java中常量的分类:
1.整数常量。所有整数
2.小数常量。所有小数
3.布尔型常量。较为特有,只有两个数值。true false。
4.字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
5.字符串常量。将一个或者多个字符用双引号标识。
6.null常量。只有一个数值就是:null.
对于整数:java有三种表现形式。
• 十进制:0-9 ,满10进1.
• 八进制:0-7 ,满8进1. 用0开头表示。
• 十六进制:0-9,A-F,满16进1. 用0x开头表示。
(常量与变量)
(5)常量与变量
变量的概念:
• 内存中的一个存储区域
• 该区域有自己的名称(变量名)和类型(数据类型)
• 该区域的数据可以在同一类型范围内不断变化
为什么要定义变量:
• 用来不断的存放同一类型的常量,并可以重复使用
使用变量注意:
• 变量的作用范围(一对{}之间有效)
• 初始化值
定义变量的格式:
• 数据类型 变量名 = 初始化值;
• 注:格式是固定的,记住格式,以不变应万变。
理解:变量就如同数学中的未知数。
数据类型结构图
进制的基本转换
• 十进制 二进制互转
• 十进制转成二进制 除以2取余数
• 二进制转成十进制 乘以2的幂数
• 十进制八进制互转
• 十进制十六进制互转
• 负数的二进制表现形式 • 对应的正数二进制取反加1
常量与变量
自动类型转换(也叫隐式类型转换)
强制类型转换(也叫显式类型转换)
类型转换的原理
什么时候要用强制类型转换?
表达式的数据类型自动提升
• 所有的byte型、short型和char的值将被提升到int型。
• 如果一个操作数是long型,计算结果就是long型;
• 如果一个操作数是float型,计算结果就是float型;
• 如果一个操作数是double型,计算结果就是double型。
(6)运算符
算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三元运算符
重点介绍:
逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以
写成3<x<6,应该写成x>3 & x<6 。
“&”和“&&”的区别:
• 单&时,左边无论真假,右边都进行运算;
• 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false
位运算符 位运算符的细节
<<
空位补0,被移除的高位丢弃,空缺位补0。 被移位的二进制最高位是0, >>
最高位是1,空缺位补1。
>>>
被移位二进制最高位无论是0或者是1,空缺位都用0补。
&
二进制位进行&运算,只有1&1时结果是1,否则是0;
|
二进制位进行| 运算,只有0 | 0时结果是0,否则是1;
^
任何相同二进制位进行^ 运算,结果是0;1^1=0 , 0^0=0
不相同二进制位^ 运算结果是1。1^0=1 , 0^1=1
练习:可以作为面试题目
1.最有效率的方式算出2乘以8等于几?2<<3;
2.对两个整数变量的值进行互换(不需要第三方变量)
采用:^异或的手法
练习:对两个变量的数据进行互换。不需要第三方变量。
int a = 3,b = 5;-->b = 3,a = 5;
a = a + b; a = 8;
b = a - b; b = 3;
a = a - b; a = 5;
a = a ^ b;
b = a ^ b;//b = a ^ b ^ b = a
a = a ^ b;//a = a ^ b ^ a = b;
练习:高效的算出 2*8 = 2<<3;
三元运算符
格式
• (条件表达式)?表达式1:表达式2;
• 如果条件为true,运算后的结果是表达式1;
• 如果条件为false,运算后的结果是表达式2;
示例:
• 获取两个数中大数。
• int x=3,y=4,z;
• z = (x>y)?x:y;//z变量存储的就是两个数的大数
程序流程控制
判断结构 选择结构 循环结构
判断结构
if语句
三种格式:略
判断结构
if语句特点:
a,每一种格式都是单条语句。
b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。
c,条件表达式无论写成什么样子,只看最终的结构是否是true 或者false;
选择结构
switch语句
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
工作原理:
用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;
细节:
1):break是可以省略的,如果省略了就一直执行到遇到break为止;
2):switch 后面小括号中的变量应该是byte,char,short,int四种类型中的一种;
3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case
中的value是否匹配,程序会从default开始执行 直到第一个break出现。
循环结构
for While do while
do while特点是条件无论是否满足, 循环体至少被执行一次。
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:
a,for里面的表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的
操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变
量在循环结束后还可以继续使用。
c,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循 环多少次,而是根据某些条件,来
控制循环