黑马程序员——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中常量的分类

  1. 整数常量:所有整数。
  2. 小数常量:所有小数。
  3. 布尔(boolean)型常量:只有两个数值,true、false。
  4. 字符常量:将一个数字字母或者符号用单引号( ’ ’ )标识,如:’a’。
  5. 字符串常量:将一个或者多个字符用双引号(“”)标识,如:”hello world”、”a”、”“(空字符串)。
  6. 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;}

循环结构:

  1. (条件满足就执行,执行完继续判断条件,条件满足继续执行语句,直到条件不满足为止)

    while(条件表达式){    执行语句}
  2. (先执行再判断。即无论条件是否满足,都会执行一次语句)

    do{    执行语句}while(条件表达式);
  3. for(初始化表达式;循环条件表达式;循环后的操作表达式) {     执行语句; }

    初始化表达式只会执行一次。判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。

初始化表达式跟循环后的操作表达式都可以写多条,用逗号分隔开

while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。

for可以起名字:

a:for(){    b:for(){        System.out.println('Hello World');        break a;    }}

break:跳出(结束循环,可以应用于选择结构跟循环结构)
continue:继续(结束本次循环,开始下次循环,只能作用于循环结构)

  1. 这两个语句离开应用范围,存在是没有意义的。
  2. 这个两个语句单独存在,下面都不可以有语句,因为执行不到。
0 0
原创粉丝点击