黑马程序员——java基础知识



 [-----------android培训、java培训、java学习型技术博客、期待与您交流!------------](http://itheima.com)


    

一 java代码中的注释

 概述:就是对代码的解释说明性的文字,以便于阅读和理解
 分类:
  A:单行注释 //
  B:多行注释 /* */
  C:文档注释(面向对象部分讲解)
 作用:
  A:对程序进行说明,给人看。
  B:可以对程序进行排错。
//////////此处需要一个截图

二 java的关键字
 概述:被java语言赋予特定含义的单词
 特点:关键数字所有的字母都是小写
 分类:
      A:用于定义数据类型的关键字
        class、interface、byte、short、int、float、double、long、char、boolean、void
      B:用于定义数据类型值的关键字
        true、false、null
      C:用于定义流程控制的关键字
        if、else、switch、case、default、while、do、for、break、continue、return
      D:用于定义访问权限修饰符的关键字
        private、protected、public
      E:用于定义类、函数、变量修饰符的关键字
        abstract、final、static、synchronized
      F:用于定义类与类之间关系的关键字
        extends、implements
      G:用于定义建立实例,及引用实例,判断实例的关键字
        new、this、super、instanceof
      H:用于定义异常处理的关键字
        try、catch、finally、throw、throws
      I:用于包的关键字
        package、import
      J:其他修饰符关键字
        native、strictfp、transient、volatile、assert
三 标识符
 (1)就是给类,接口,方法,变量等起名字。
 (2)组成规则:
  A:由数字,字母,_以及$组成。
  B:不能以数字开头。
  C:不能是java中的关键字。
 (3)常见的命名规则:
     见名知意,驼峰命名法(单词的第一个字母大写)这是一种预定成俗的规定,也不是标准
  A:包 全部小写
   单级:com,cn,linakng
   多级:cn.itheima,com.baidu
  B:类或者接口
   一个单词:Student,Teacher
   多个单词:HelloWorld,MakeName
  C:方法或者变量
   一个单词:main(),name,age
   多个单词:studentName,showName()
  D:常量 全部大写
   一个单词:MAX
   多个单词:STUDENT_MAX_AGE
四 常量
 (1)在程序的执行过程中,其值是不发生改变的量。
 (2)分类:
  A:字面值常量
  B:自定义常量
 (3)字面值常量的分类:
  A:整数常量 12,23
  B:浮点数常量 12.345
  C:字符常量 'a','A','2'
  D:布尔常量 true,false
  E:字符串常量 "hello","world"
  F:空常量 null
5:进制转换相关
 (1)进制:是一种计数的方式。
  x进制表示逢x进1。
 (2)java中的整数的表现形式:
  二进制:以0b开头,由0和1组成。
  八进制:以0开头,由0-7组成。
  十进制:由0-9组成。整数默认是十进制。
  十六进制:以0x开头,由0-9,a-f组成。
 (3)其他进制到十进制的转换:
  系数*基数的权次幂的和。
 (4)十进制到其他进制的转换:
  除基取余,直到商为0,余数反转。
 (5)x进制到y进制
  x - 十进制 -- y进制
 (6)二进制 -- 八进制或者十六进制
  A:二进制 -- 十进制 -- 八进制或者十六进制
  B:二进制 -- 三位组合 -- 八进制
    二进制 -- 四位组合 -- 十六进制
 (7)8421码
  1 1 1 1 1 1 1 1 
  128 64 32 16 8 4 2 1

6:有符号数据表示法(了解)
 (1)在java中,我们的数据是有正负之分的。
 (2)在计算机存储和运算的过程中,数据都是采用补码进行的。
 (3)原码,反码,补码
  正数:原码,反码,补码和二进制形式相同。
  负数:原码和正数的二进制的数值部分相同,符号位是1。
        反码和原码的区别是:符号位不变,数值为1变0,0变1。
        补码:反码+1
 (4)byte的范围:
  byte占用1个字节:
   0 1111111 - 127
   
   (byte)128 -- -128。

   1 0000000 -- 这里的1既可以看成符合位,又可以看成数值位。
   
   -128

  除了:1 0000000 这种特殊情况外,其他的是什么样子就是什么样子的。

7:变量
 (1)在程序执行的过程中,其值在某个范围内可以发生改变的量。
 (2)格式:
  A:数据类型 变量名 = 初始化值;
   int a = 10;
  B:数据类型 变量名;
    变量名 = 初始化值;
   int a;
   a = 10;
 (3)注意:
  在使用一个变量的时候,必须先声明,赋值,最后才能使用。

8:数据类型
 (1)分类:
  基本类型:4类8种。
  引用类型:类,接口,数组。
 (2)基本类型:
  整数:   占用的字节
   byte  1
   short  2
   int  4
   long  8 
  浮点数:
   float  4
   double  8
  字符:
   char  2
  布尔:
   boolean  1
 (3)注意:
  A:整数默认是int类型,浮点数默认是double类型。
  B:如果一个数据想表示为long类型,要加L或者l。
    如果一个数据想表示为float类型,要加F或者f。

9:数据类型转换
 (1)在运算的时候,要求数据的类型一致。
 (2)分类:
  boolean类型不参与。

  A:隐式转换:(自动转换)
   从小到大。
   byte,short,char --> int --> long --> float --> double
   byte,short,char这三个类型之间不转换,他们参与运算的时候都先自动转换成int类型
   

  B:显示转换:(强制转换)
   从大到小。

   格式:
    目标数据类型 变量 = (目标数据类型)(被转换的内容);
   如:  byte b=(byte)2;
  

 (3)long --> float为什么是这个样子的?
  因为他们底层的存储方式不一样。

  long : 2^63
  float : 3.4*10^38

  3.4*10^38 > 2*10^38 > 2*8^38 > 2*2^3^38 = 2*2^114 > 2^63

 (4)byte数据类型的范围是 —128————127,如果超出这个范围,如(byte)130则把剩余的位数重新从-128开始循环
    130-127=3,所以从-128开始查3个数,就是130的byte对应的数值 -126

10:运算符(掌握)
 A:算术运算符
  +,-,*,/,%,++,--
  /:整数相除,结果只能是整数,要想是结果为小数,必须让参与运算的数有一个数小数类型
  +:正号,加法,字符串连接符
  %:取得余数
  ++,--:
   单独使用:在操作数据的前后效果一致。
   参与操作使用:
    在操作数据的前面,是先++或者--,然后参与操作。
    在操作数据的后面,是先参与操作,后++或者--。
 B:赋值运算符
  =:把右边的内容赋值给左边
  +=,-=,*=,/=,%=:把左边的和右边的操作后赋值给左边。

  注意:
   +=隐含了强制类型转换。

   x+=y;等价与:x = (x的数据类型)(x + y);

11:面试题:
 A:类型转换
   规则:如果是变量相加,编译器先提升类型,在相加
         如果说是常量相加,编译器先做计算,在判断结果是否在该数据类型的范围内,
  是的话编译通过,否则,不通过
  byte b1 = 3;
  byte b2 = 4;
  byte b3 = b1 + b2;
  byte b4 = 3 + 4;
 B:强制转换数据溢出的问题:
  byte b = (byte)130;
  byte bb = (byte)300;
 C:赋值运算符
  short s = 1;
  s = s + 1;这个有问题,运算结果是int类型,却赋值给了short类型,可能损失精度
  和
  short s = 1;
  s += 1;没问题,+=符号中,存在自动类型转换,
  s=(short)(s+1);
      
 D: byte b = 1; b = ++b; 

    ---知识点:自增与自减遵循以下规律
     1.可以用于整形数据类型(byte,short,int,long,),浮点类型(float,double),字符类型(char)
     2.在Java5.0及以上版本中它们可以用于基本类型对应的包装器类
     3.它们的运算结果的类型与被运算的变量的类型相同
       由此知识点知:b = ++b;此语句运算结果仍为byte类型,所以正确


      
     
       


 

  


  -----Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

你可能感兴趣的:(黑马程序员——java基础知识)