黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符

时间:2023-02-19 09:23:29
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

Java语言基础

   组成:关键字;标识符;注释;常量和变量;运算符;语句;函数;数组

1.1、关键字
    定义:被Java语言赋予了特殊含义的单词
   特点:关键字中所有字母都为小写
  
1、数据类型的关键字有:
      整数类型:
       byte(以一个八位来定义的,最小的单位          short(以16个二进制位定义,范围在(-32768~32767))
       int(32个二进制位)                            long (最大的整数表示)
默认  整数为int         小数为double 
     字符类型:
       char  (表示为‘a’‘4’等等范围为(0~6535))             
      布尔型:
       boolean(true和false判断型)
     浮点类型:
       float(单精度,占四个八位。通常写法后面要加f)                   double(双精度占八个八位)

     引用数据类型:

       class(类)     interface(接口)

       void用于函数上表示无返回值类型

2、用于定义数据类型值的关键字

        true(真) false(假)  null(空)

3、 用于定义流程控制的关键字

        判断:if  else    ;    switch case  default

        循环:for  ;  while   ;  do    while

        继续循环:continue                    结束循环或选择结构:break

        返回:return

1.2、标识符

 定义:在程序中自定义的一些名称。 由26个英文字母大小写,数字:0-9 符号:_ $ 组成

 定义合法标识符规则:
    1、数字不可以开头。      2、不可以使用关键字。   3、 Java中严格区分大小写。

 注意:在起名字的时,为了提高阅读性,要尽量有意义。

1.3、Java中的名称规范:

 包名:          多单词组成时所有字母都小写。        xxxyyyzzz
 类名接口名:    多单词组成时,所有单词的首字母大写。XxxYyyZzz
 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz
 常量名:        所有字母都大写。多单词时每个单词用下划线连接。    XXX_YYY_ZZZ

1.4、常量
     1、定义:常量表示不能改变的数值。
Java中常量的分类:
1,整数常量(byte short int long)。所有整数
2,小数常量(float double)。所有小数
3,布尔型常量(boolean)。较为特有,只有两个数值。true false。
4,字符常量(char)。将一个数字字母或者符号用单引号( ' ' )标识。
5,字符串常量(“ ”)。将一个或者多个字符用双引号标识。
6,null常量(定义空)。只有一个数值就是:null.
     2、对于整数:java有三种表现形式。
十进制:0-9 ,满10进1.
  八进制:0-7 ,满8进1. 用0开头表示。
十六进制:0-9,A-F,满16进1. 用0x开头表示。
     3、进制的基本转换
十进制二进制 互转
十进制转成二进制除以2取余数
二进制转成十进制乘以2的幂数
十进制 八进制 互转
十进制 十六进制 互转
负数的二进制表现形式
对应的正数二进制取反加1
        注意*1、不是与二进制的转换,优先转换成二进制在转换成需要的
    2、二进制与八进制相当于三位二进制等于一个八进制位数
                  3、二进制与16进制转换相当于四个二进制位等于一位16进制
       如:
黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
十进制与二进制的算法如图


黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符

1.5、变量
1、的概念:内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型)该区域的数据可以在同一类型范围内不断变化
2、为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用
3、 使用变量注意:
①变量的作用范围(一对{}之间有效)
②初始化值
4、 定义变量的格式:
   数据类型          变量名      =       初始化值;
* 注:格式是固定的,记住格式,以不变应万变。
5理解:变量就如同数学中的未知数。
1.6、类型转换
1、强制转换强制类型转换
{byte b = 3;
b = b + 4;//报错
b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋
值给b。}
2、自动转换自动类型提升
{byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。}
  强制转换应用:一般用在把小数转换到整数中

1.7、 运算符
1、算术运算符

    +;-;*;/;%(取模);++;--;+(字符相加)

*注意:进行取模(即取余数)运算时,都看被除数(正负号)

System.out.println(+-1%5);//取模看被除数,被除数是1不能被整除,值为(+-1)

2、赋值运算符

        符号:=  +=  -= *=  /=  %=

                   {    int a=3,b;
                       b=a++;     //(++为自增1.a++=a+1);运算先后,先赋值b。后运算b=a=3;a=a+1
                     /*b=++a: ++为自增1.a++=a+1);先++a,a=a+1,在赋值给b    即:输出为a=b=4*/

}
3、比较运算符

            "  ==  "    ;    "  != "   ; "  >  "  ; "  <  " ;  "  > =  "  ;  "  <= ";

*注意   1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
       2:比较运算符“==”不能误写成“=” 

4、逻辑运算符

&(与      谁“与”谁一起)      |(或  或者   谁或者谁)    ^  (异或   谁异或者谁强调必须切只能是一个)

!(非     !一件事结果与他相反)  &&(短路 双与&的升级版第一个判断正确即输出true)

 ||(|的升级版第一个为假就输出假的结果)
5、位运算符

     <<   (左移):空位补0,被移除的高位丢弃,空缺位补0

     >>   (右移):被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1

     >>> (无符号右移):被移位二进制最高位无论是0或者是1,空缺位都用0补。

     &   ( 与):二进制位进行&运算,只有1&1时结果是1,否则是0

     |     ( 或):二进制位进行 |运算,只有0 | 0时结果是0,否则是1

      ^  异或:;任何相同二进制位进行 ^运算,结果是01^1=0 , 0^0=0。不相同二进制位 ^运算结果是11^0=1 , 0^1=1

       ~ 反码:;对二进制进行取反。

        例如:    3<<2=12=3*(2*2);  3<<1=6=3*(2); 3<<3=24=3*(2*2*2)//相当于左移几位就乘以2的几次幂

-6>>2=-6/(2*2)=-1;-6>>>2=6/(2*2)=1;

~  ~6  = -7(-6取反算法)
/*取反符号   -6等于6取反加一  本题直接6的反码的值 
                           6=0000-0000 0000-0000 0000-0000 0000-0110
 取反为 :               1111-1111 1111-1111 1111-1111 1111-1001=-7
 -6等于6取反加一 ,同  1111-1111 1111-1111 1111-1111 1111-1000
 理反过来是先减一取反:   0000-0000 0000-0000 0000-0000 0000-0111=7
 即反过来求所得数据为~6=-7 */


1.8、三元运算符           


格式 :      (条件表达式)?表达式1:表达式2;
 • 如果条件为true,运算后的结果是表达式1; 如果条件为false,运算后的结果是表达式2;

例如:获取两个数中大数。
•     { int x=3,y=4,z;
•       z = (x>y)?x:y;//z变量存储的就是两个数的大数。}(if的必须有值输出的简化写法)


1.9、具体实例

对两个整数变量的值进行互换(不需要第三方变量)

    

/*  互换变量值*/
public static void main(String[] args) 
{
int n=3, m=8;  //n=3后面的符号是","不是";"分号表示结束
/*   //方法一:定义一个变量法
int z=n , n=m,m=z;                                */
System.out.println("n="+n+",m="+m);  //输出语句
/* //方法二:不定义变量法  3+8=11,11-8=3/11-3=8

  n=n+m;
  m=n-m;
    n=n-m;
 System.out.println("n="+n+",m="+m);   */
 //方法三:n=(n^m)^m
/*   n=n^m;
m=n^m;            //m=(n^m)^\m=n
        n=n^m;          //n=(n^m)^m=n
  System.out.println("n="+n+",m="+m);   */
  //方法四:
  System.out.println("m="+n+",n="+m);

java运行结果

黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符