黑马程序员——2.1.基础语法(关键字、常量、进制、变量、类型转换、运算符、流程控制(判断、选择、循环))
来源:互联网 发布:怎么经营淘宝店铺 编辑:程序博客网 时间:2024/06/05 02:16
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
Java语言基础由关键字、标识符、注释、常量和变量、运算符、语句、函数和数组等组成。
关键字:
关键字的定义和特点: 定义:被Java语言赋予了特殊含义的单词。 特点:关键字中所有字母都为小写。
命名规范:
在程序中自定义的一些名称,例如类名等都是由
26个英文字母大小写,数字:0-9,符号:_、$组成。
1. 数字不可以开头,例如:2Demo就不可以。
2. 不可以使用关键字,例如:public就不可以,因为public是关键字。
3. 不可以包含“_、$”以外的特殊符号,例如:“Demo Test”就不可以,其中的空格就是特殊符号。
P.S.
1. Java中严格区分大小写。 2. 在起名字时,为了提高阅读性,要尽量有意义。 3. 公司中经常会通过“_”代表某一类名称,例如:_temp。 通过“$”分隔主名称与子名称,例如:TrafficLamp$Red。
- 包名(多单词均小写):xxxyyyzzz
- 类名、接口名(单词首字母大写):XxxYyyZzz
- 变量名、函数名(第二个单词开始首字母大写):xxxYyyZzz
- 常量名(所有字母大写,单词间用下划线连接):XXX_YYY_ZZZ
常量:
常量表示不能改变的数值。
Java中常量的分类
- 整数常量:所有整数。
- 小数常量:所有小数。
- 布尔(boolean)型常量:只有两个数值,true、false。
- 字符常量:将一个数字字母或者符号用单引号( ’ ’ )标识,如:’a’。
- 字符串常量:将一个或者多个字符用双引号(“”)标识,如:”hello world”、”a”、”“(空字符串)。
- null常量:只有一个数值就是:null。
进制:
- 二进制:11010
- 八进制:032(0开头)
- 十进制:26
- 十六进制:0x1A(0x开头)
负数二进制:将二进制的26取反(0变1,1变0)加1
0000-0000 0000-0000 0000-0000 0001-1010 1111-1111 1111-1111 1111-1111 1110-0101+1 -26 = 1111-1111 1111-1111 1111-1111 1110-0110
负数最高位都为1,正数最高位都为0
负数转成正数也是取反加1.
变量:
内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化。
定义变量格式:
数据类型 变量名 = 初始值 int a = 5
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间:
- byte 1个字节,即8个二进制位
- short 2个字节
- int 4个字节
- long 8个字节
- float 4个字节
- double 8个字节
- char 2个字节
整数默认类型是int,小数默认类型是double
在定义long跟float类型的变量时,要在后面加上l、f来标识,区别于默认类型。
类型转换:
自动类型转换:
int x = 3;byte b = 5;x = x + b;
byte类型为1个字节的,int类型是4个字节的,这时候系统会自动把byte类型提升,再相加。
强制类型转换:
byte b = 3;b = b + 200;
这时会出错,因为b跟200相加会自动提升为int类型,超出了byte类型的范围,把4个字节的int类型整数赋给1个字节的byte类型b时会损失精度。我们只能手动进行转换。
b = (byte)(b + 200);
PS:如果相加的两个数为常量,且结果在byte类型范围内,则会自动转换)
表达式的数据类型自动提升:
- 所有的byte型、short型和char的值将被提升到int型。
- 如果一个操作数是long型,计算结果就是long型;
- 如果一个操作数是float型,计算结果就是float型;
- 如果一个操作数是double型,计算结果就是double型。
运算符:
+ 加- 减* 乘/ 除% 取摸(取余数,若有负数则结果为左边的值):7%5=2++ 自增(前):先自增,再运算 自增(后):先运算,再自增-- 自减(前):先自减,再运算 自减(后):先运算,再自减+ 字符串相加:”He”+”llo” = “Hello” “He”+55+5 = He555 字符串和任何数据使用+都是起连接作用
赋值运算符:
+=(这是一个符号)把左右两边的和赋给左边-= 把左右两边的差赋给左边*= 把左右两边的乘积赋给左边/= 把左右两边的商赋给左边%= 把左右两边的余数赋给左边
short s = 5;
s = s + 5;与s += 5;有什么区别?
前面不能运行,因为数据类型不同。后面可以运行,因为+=会做自动的类型转换动作
比较运算符:
== 等于!= 不等于< 小于> 大于<= 小于等于>= 大于等于Instanceof 是否为类的对象 “Hello” instanceof String 结果为true比较运算符结果只能为true或flase
逻辑运算符:
& 与(and) (都是真吗)两边都进行运算| 或(or) (有真吗)^ 异或(xor) (两边不一样吗)! 非(not) (不是真吗)&& 短路(and) (都是真吗)若左边为flase,则右边不再进行运算|| 短路(or) (有真吗)若左边为true,则右边不再进行运算
位运算符:
<< 二进制左移,高位丢弃,空缺位补0>> 二进制右移,最高位为0时空缺位也补0,为1时补1>>> 无符号右移:右移后空缺位统一用0补& 与(用该数的二进制进行运算,真为1,假为0)110 & 010 = 010| 或 110 | 010 = 110^ 异或 110 ^ 010 = 100~ 反码 对该数二进制取反(0换成1,1换成0):~26 = -27
转义字符:
通过\来转变后面字母或字符的含义 \n 换行 \b 退格,backspace \r 回车(windows里面回车由\r\n两个字符组成) \t 制表符也可以通过\转换特殊字符使其成为普通字符
三元运算符:
(条件表达式) ? 表达式1 : 表达式2;如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2。
判断结构:
if:1. if(判断语句) { 执行语句; }2. if(判断语句) { 执行语句; } else { 执行语句; }3. if(判断语句) { 执行语句; } else if(判断语句) { 执行语句; } ... else { 执行语句; }如果if语句没写大括号,if就只能控制离它最近的单条语句。
局部代码块:
局部代码块可以定义局部变量的生命周期。
class IfDemo { public static void main(String[] args){ { int m = 89; System.out.println("Hello World..." + m); } //这里打印出错,因为m为局部变量,只在大括号内使用 System.out.println("over..." + m); } }
选择结构:
switch:(较少用,值少时可用)Switch(表达式(要有值可取byte,short,int,char)){ case 取值1: 执行语句; break; case 取值2: 执行语句; break; case 取值3: case 取值4: 执行语句;(值为3、4均执行该语句) Break; ... default:(不管default在哪里,总是最后才判断它) 执行语句; break;}
循环结构:
(条件满足就执行,执行完继续判断条件,条件满足继续执行语句,直到条件不满足为止)
while(条件表达式){ 执行语句}
(先执行再判断。即无论条件是否满足,都会执行一次语句)
do{ 执行语句}while(条件表达式);
for(初始化表达式;循环条件表达式;循环后的操作表达式) { 执行语句; }
初始化表达式只会执行一次。判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
初始化表达式跟循环后的操作表达式都可以写多条,用逗号分隔开
while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。
for可以起名字:
a:for(){ b:for(){ System.out.println('Hello World'); break a; }}
break:跳出(结束循环,可以应用于选择结构跟循环结构)
continue:继续(结束本次循环,开始下次循环,只能作用于循环结构)
- 这两个语句离开应用范围,存在是没有意义的。
- 这个两个语句单独存在,下面都不可以有语句,因为执行不到。
- 黑马程序员——2.1.基础语法(关键字、常量、进制、变量、类型转换、运算符、流程控制(判断、选择、循环))
- 黑马程序员—Java编程基础+常量与变量+类型的转换+进制的转换+运算符+scanner的使用+程序流程结构控制+循环结构
- 黑马程序员——java基础语法(一)---关键字、标识符、注释、常量、变量、运算符
- 黑马程序员——JAVA基础----语法(一)-- 关键字、常量、变量、运算符
- 黑马程序员_Java基础(环境搭建,常量变量,类型转换,运算符,控制语句)
- 黑马程序员——java第二天:基础语法(关键字、标示符、进制转换、变量类型、运算符)
- 黑马程序员——Java基础语法(一.关键字、标识符、注释、常量和变量、运算符)
- 【黑马程序员】------java基础语法--关键字、变量、常量、运算符
- 黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符
- 黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
- 黑马程序员——java基础语法之关键字、常量、变量、运算符
- 黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
- 黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
- 黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
- 黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
- 黑马程序员——Java基础语法---关键字、常量、变量、运算符
- 黑马程序员_java语法基础【1】(关键字,标识符,注释,常量与变量,运算符)
- Java基础语法(一)---关键字、常量、变量、运算符 (黑马程序员)
- dos2unix批量转换的一种方法
- 关于comparator以及comparable的区别及应用
- Linux SendMail总结
- 巧用Ajax的beforeSend 提高用户体验
- ES003-CURL使用
- 黑马程序员——2.1.基础语法(关键字、常量、进制、变量、类型转换、运算符、流程控制(判断、选择、循环))
- 解决微信中支付宝无法使用的问题
- Android中Intent的使用(三)
- work daily
- 启动跳转activity老是报错,百思不得其解,原来是这样的
- Jquery/JS实现DIV的隐藏/显示
- Myeclipse8.5 反编译插件 jad 安装
- 公共技术点之 View 事件传递
- 为什么GRUB起始地址为0x7c00.