黑马程序员——Java基础——Java语言组成
来源:互联网 发布:java static内存泄漏 编辑:程序博客网 时间:2024/05/19 14:39
点击打开链接 点击打开链接 点击打开链接 android培训、<a">点击打开链接 点击打开链接 java培训、期待与您交流!">点击打开链接 点击打开链接
Java语言基础组成
一、关键字
关键字的定义和特点
关键字是被java语言赋予了特殊含义的单词,其特点是关键字中所有字母都为小写。
用于定义数据类型的关键字:class、interface、byte、short、int、long、float、double、char、boolean、void。
用于定义数据类型值的关键字:true、false、null.
用于定义流程控制的关键字:if、else、switch、case、default、while、do、for、break、continue、return。
二、标识符
标识符是在程序中自定义的一些名称,由26个英文字母大小写、数字:0-9、符号:_$组成。
定义合法标识符的规则:
① 数字不可以开头
② 不可以使用关键字
注意:Java中严格区分大小写,在起名字时,为了提高阅读性,要尽量有意义。
三、Java中的名称规范
l 包名:由多单词组成时所有字母都小写
l 类名接口名:多单词组成时,所有字母的首写字母大写
l 变量名和函数名:多单词组成时,第一个字母首字母小写,第二个单词开始每个单词首写字母大写
l 常量名:所有字母都大写。多单词时每个单词用下划线连接。
注释
l 单行注释://
l 多行注释:/* */
l 文档注释:/** */ 可以用javadoc工具提取出来
四、常量和变量
常量:表示不能改变的数值。
常量分类:
l 整数常量:所有整数
l 小数常量:所有小数
l 布尔型常量:较为特有,只有两个值:true、false
l 字符常量:将一个字母数字或者符号用单引号(‘’)标识
l 字符串常量:将一个或者多个字符用双引号标识
l null常量:只有一个数值就是null。
变量
l 内存中的一个存储区域
l 该区域有自己的名称(变量名)和类型(数据类型)
l 该类型中的数据可以再同一类型范围内不断变化
变量:用来存放同一类型的常量,并可以重复使用。当数据不确定的时候,需要对数据进行存储时,就定义一个变量来完成存储动作。
使用变量注意:
l 变量的取值范围
l 初始化值
定义变量的格式:
数据类型 变量名=初始化值
注:格式是固定的,记住格式,以不变应万变
Java中的数据类型:
数值型 整数类型(byte、short、int、long)
基本数据类型 浮点类型(float、double)
字符型(char)
布尔型(boolean)
类(class)
引用数据类型 接口(interface)
数组([])
整数默认int,小数默认double
数据类型的取值范围
数据类型
取值范围
在内存中占的字节数
byte
-128~127
1
short
-215~215-1
2
int
-231~231-1
4
long
-263~263-1
8
float
3.402823e+38 ~ 1.401298e-45
4
double
1.797693e+308~ 4.9000000e-324
8
boolean
只有2个值,true和false
char
存放字符,用’’表示
2
数据类型的转换
byte b=3;
b=b+2;
以上代码编译时报错,因为2默认是int类型的,b+2运行时会先把b转成int类型,再进行运算,运算结果是int类型,不能把int类型赋值给byte类型变量b,这时要强制转换。b=(byte)(b+2);
五、运算符
算术运算符
b = a++;先把a的值赋给b,然后a自增。
b = ++a;a先自增,然后把a的值赋给b.
b = a--;先把a的值赋给b,然后a自减。
b = --a;a先自减,然后把a的值赋给b.
字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
转义字符:通过反斜线来转变后面字母或者符号的含义。
\n:换行
\b:退格。相当于backspace键。
\r:按下回车键,回车符是由两个字符来表示\r\n.
\t:制表符。相当于tab键。
“hello” “\”hello\””
\hello\ “\\hello\\”
赋值运算符
=
+= 左右两边的和赋给左边
short s=4;
① s=s+5;
② s+=5;
这两句程序的区别,第一句编译失败,第二句通过。原因:第一句做了两步,第一步加,5是int型,s+5运算完之后,其值会是int型的,不能强行赋给是。而第二句只做赋值运算,内部有自动转换动作。
此外还有-= /= %= 其作用同+=。
比较运算符
逻辑运算符:
逻辑运算符是用于连接boolean类型的表达式。
异或:就是和|有点不一样。当true^true=false
&和&&d的特点:
&:无论左边是true是false,右边都运算
&&:当左边为false时,右边不运算。
|两边都参与运算
||:当左边为true时,右边不运算
位运算符
<< : 其实就是乘以2的移动次幂 x<<y = x*2y
>>: 其实就是除以2的移动次幂。 x<<y = x/2y 最高位补什么由原有数据的最高位而定。如果最高位为0,右移后,用0补空位
如果最高位为1,右移后,用1补空位。
>>>:无符号右移,不论最高位是1是0,右移后,都用0补空位。
一个数异或同一个数两次,结果还是那个数。
三元运算符
格式:(条件表达式)?表达式1:表达式2
如果条件为true,运算后的结果是表达式1
如果条件是false,运算后的结果是表达式2
三元运算符
好处:可以简化if else代码
弊端:因为是一个运算符,所以运算完必须要有一个结果。
六、语句 程序流程控制
判断结构
三种格式:
if(条件表达式){执行语句}
If(条件表达式){执行语句}else{执行语句}
If(条件表达式){执行语句}else if{执行语句}……else{执行语句}
选择结构
switch语句
格式:switch(表达式) //byte、short、int、char
{
case 取值1: //case没有顺序
执行语句
break;
……
Default:
执行语句
break;(可以省略)
}
if和switch语句很像,具体什么场景下,应用哪一个语句?如果判断的具体数值不多,而是符合byte、int、short、char这四种类型,虽然两个语句都可以,但是我们一般使用switch,因为效率稍高。
其他情况:对区间判断,对结果为boolean类型的判断,使用if,if的使用返回更广。
循环结构
代表语句:while,do while,for
while语句格式:
while{条件表达式}
{
执行语句;
}
while:先判断条件,只有条件满足才执行循环体。
容易出现的错误,while后加;号,
do while语句格式
do
{
执行语句;
}while(条件表达式);
do while特点是无论条件是否满足,循环体至少被执行一次。
for(初始化表达式,条件表达式,循环条件表达式)
{
执行语句;
}
注意:
1.变量有自己的作用域,对于for来讲,如果将用于控制循环的增量定义在for语句中那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中被释放。
2.For和while可以进行交换,如果需要定义循环增量,for更为合适。如果循环结束,需要用循环的增量,则用while合适,for循环里把增量在循环体前面初始化也可以。
总结:
什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
无限循环的最简单表现形式:
l For(;;)
l While(true){}
练习:获取1~10的和,并打印
1~100之间7的倍数的个数,并打印
//获取1~10的和并打印class GetSum {public static void main(String[] args) {int sum=0;for(int i=0;i<=10;i++){ sum+=i;}System.out.println("1~10的和为:"+sum);}}//获取1~100之间7的倍数的个数,并打印class GetNum{public static void main(String[] args){int count=0;for(int i=1;i<=100;i++){ if((i%7)==0){System.out.println(i);count++;}}System.out.println("1~100中7的倍数有:"+count+"个");}}
语句嵌套形式:其实就是语句中还有语句
比如:循环嵌套
例:打印九九乘法表
class print99{public static void main(String [] args){for(int i=1;i<10;i++){for(int j=1;j<=i;j++){System.out.print(j+"×"+i+"="+i*j+"\t");}System.out.println();//换行的作用 }}}
其他流程控制语句
break(跳出) continue(继续)
1.作用范围
break语句:应用范围:选择结构和循环结构
continue语句:应用于循环结构
注:
这两个语句离开应用范围,存在是没有意义的
这两个语句单独存在下面都不可以有语句,因为执行不到
Continue语句是结束本次循环继续下次循环
标号的出现,可以让这两个语句作用于指定的范围,如果没有标号,break跳出的是当前循环
标号:如下所示:
w:for(int x=0;x<3,x++) break w;
练习:打印图形,尖三角
class printPic{public static void main(String[] args){for(int i=0;i<5;i++){for(int j=i;j<5;j++){System.out.print(" ");}for(int k=0;k<=i;k++){System.out.print("* ");}System.out.println();}}}
七、函数
什么是函数?
函数就是定义在类中的具体有特定功能的独立小程序。函数也称为方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型,形式参数2.。)
{
执行语句;
Return 返回值
}
返回值类型:函数运行后的结果的数据类型
参数类型:是形式参数的数据类型
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:是传递给形式参数的具体数值
Return:用于结束函数
返回值:该值会返回给调用者。
函数的特点
定义函数可以将功能代码进行封装
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写
注意:
函数中只能调用函数,不可以在函数内部定义函数
定义函数时,函数的结果应该返回给调用者,交由调用者处理。
如何定义一个函数呢?
1.既然函数是一个独立的功能,那么该功能的运算结果是什么要先明确
2.在明确定义该功能的过程中是否需要未知的内容参与运算。
函数的应用:定义一个打印九九乘法表的函数
class Print99_2{public static void print99(){for(int i=1;i<10;i++){for(int j=1;j<=i;j++){System.out.print(j+"×"+i+"="+i*j+"\t");}System.out.println();//换行的作用 }}}
函数的重载
重载(overload)的概念
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不一样即可
重载的特点:
与返回值类型无关,只看参数列表
重载的好处:
方便于阅读,优化了程序设计。
什么时候用重载?
当定义的功能相同,但参与运算的未知内容不同。那么就定义一个函数名称以表示其功能方便阅读,而通过参数列表的不同来区分多个同名函数。
八、数组(已经分开叙述)
- 黑马程序员—Java入门及Java语言基础组成
- 黑马程序员——java语言基础组成
- 黑马程序员——Java语言基础组成(一)
- 黑马程序员——Java语言的基础组成
- 黑马程序员——JAVA基础之语言组成
- 黑马程序员——Java语言基础组成
- 黑马程序员——Java语言基础组成(一)
- 黑马程序员——java语言基础组成(一)
- 黑马程序员——java语言基础组成(二)
- 黑马程序员——Java基础组成
- 黑马程序员——Java基础——Java语言组成
- 黑马程序员——java基础知识回顾(一)(java语言基础组成)
- 黑马程序员——java基础知识回顾(二)(java语言基础组成)
- 黑马程序员——二、java基础之语言基础组成.part1(2)
- 黑马程序员——二、java基础之语言基础组成.part2(3)
- 黑马程序员——Java语言基础——02.java语言基础组成(2)语句
- 黑马程序员——Java语言基础——02.java语言基础组成(3)函数
- 黑马程序员——java语言基本组成1
- maven_2
- Hadoop集群(第6期)_WordCount运行详解
- 括号匹配算法
- 16进制与float互转
- C/C++ linux下光标定位和清屏函数(printf 实现)
- 黑马程序员——Java基础——Java语言组成
- 动态域名解析http版怎么用?
- [bfs]HDU2612 Find a way
- 读Spring的源代码二:DispatcherServlet处理web请求的过程
- Gym 100187M - Heaviside Function
- Thinkphp M 中的 where 失效问题
- HDU 5239 DOOM 线段树
- 线程
- 04-树8. Complete Binary Search Tree (30)