黑马程序员——基础语法

来源:互联网 发布:astropad for mac 编辑:程序博客网 时间:2024/05/24 07:28

------- android培训、java培训、期待与您交流! ----------

 

1:关键字
 (1)被Java语言赋予特殊意义的单词。
 (2)特点:
  Java语言中的所有关键字全部是小写。
 (3)注意事项:
  goto和const作为保留字(在JDK的新版本中可能提升为关键字)存在。没有被使用。
 
2:标识符
 (1)就是给类,变量,方法起名字。
 (2)组成规则:
  由数字0-9,英文大小写字母,$以及_组成。
 (3)注意事项:
  A:只能有组成规则规定的内容组成。
  B:不能以数字开头。
  C:不能是Java中的关键字。
  D:区分大小写。
 (4)常用的命名规则:见名知意,驼峰命名
  A:包(文件夹,用于区分同名的类)
   全部小写。如果多级包,用.分开。
   举例:
    com 一级包
    cn.itcast 二级包 
    注意:www.itcast.cn(域名反写)
  B:类和接口
   如果是一个单词,首字母大写。
    举例:Demo,Test,Student
   如果是多个单词,每个单词的首字母大写。大驼峰式
    举例:HelloWorld,StudyJava
  C:变量和方法名
   如果是一个单词,首字母小写。
    举例:main,name,age
   如果是多个单词,从第二个单词开始每个单词的首字母大写。小驼峰式
    举例:showName(),studentName
  D:常量
   全部大写,如果多个单词组成,用_连接。
    举例:PI,STUDENT_MAX_AGE

3:注释
 (1)就是对程序的解释性文字。
 (2)注释的分类:
  A:单行注释
   a:以//开头,以回车结束。
   b:单行注释是可以嵌套的。
  B:多行注释
   a:以/*开头,以*/结束。
   b:多行注释是不可以嵌套的。
  C:文档注释(了解)
   将来被javadoc工具解析,生成一个说明书。
 (3)注释的作用:
  A:解释程序,提高程序的阅读性。
  B:可以调试错误。
 (4)把HelloWorld案例用注释改版。
  建议先写思路,在写代码体现。

4:常量
 (1)在程序的运行过程中,其值是不可以发生改变的量。
 (2)常量的分类:
  A:字面值常量
   a:整数常量
    12,-23
   b:实数(这里专指小数)常量
    12.5,-65.43
   c:字符常量
    'a','A','0'
   d:字符串常量
    "hello"
   e:布尔常量
    true,false
   d:空常量(后面讲,不是类型,是一个数值)
    null
  B:自定义常量(后面讲)
 (3)常量可以直接被输出。

5:进制
 (1)是一种进位的方式。X进制,表示逢x进1。
 (2)Java中整数常量的表示
 int a = 15;
 int a = 0b1111;
 int a = 017;
 int a = 0xF;
  A:二进制 由0,1组成。以0b开头。JDK7以后的新特性。
  B:八进制 由0-7组成。以0开头。
  C:十进制 由0-9组成。默认就是十进制。
  D:十六进制 由0-9,A-F(不区分大小写)组成,以0x开头。
 (3)进制转换:
  A:其他进制到十进制
   系数:就是每一位上的数据。
   基数:X进制,基数就是X。
   权:在右边,从0开始编号,对应位上的编号即为该位的权。
   结果:把系数*基数的权次幂相加即可。
   
   二进制:1011
    十进制:
   八进制:74
    十进制:
   十六进制:a3
    十进制:

  B:十进制到其他进制
   除基取余,直到商为0,余数反转。

   十进制:60
   结果:
    二进制
    八进制
    十六进制

  C:快速转换
   a:8421码。
   b:二进制--八进制(3位组合)
   c:二进制--十六进制(4位组合)

6:变量
 (1)程序的运行过程中,在指定范围内发生改变的量。
 (2)格式:
  数据类型 变量名 = 初始化值;

  变量的定义格式:
   数据类型 变量名;
   变量名 = 初始化值;
   数据类型 变量名 = 初始化值;
   数据类型 变量1,变量2,变量3=10;

  举例:
   方式1: byte b = 10;

   方式2: byte b;
    b = 10;

7:数据类型
 (1)分类
  基本类型:4类8种。
  引用类型:类,接口,数组。(了解)
 (2)基本类型
  整型:
   byte 1
   short 2
   int 4
   long 8
  浮点型:
   float 4
   double 8
  字符型:
   char 2
  布尔型:  
   boolean 不明确。可以认为是1个字节。
  
  注意:
   整数默认是int类型。long类型需要加L或者l后缀。
   浮点数默认是double类型。float类型需要加F或者f后缀。
 (3)类型转换
  A:boolean类型不参与转换。
  B:隐式转换(从小到大)
   byte,short,char -- int -- long -- float -- double
  C:强制转换(从大到小)
   格式:
    (数据类型)数据;
 (4)面试题
  byte b1 = 3;
  byte b2 = 4;
  byte b3 = b1 + b2;
  byte b4 = 3 + 4;

8:运算符
 (1)就是把常量和变量连接的符号,一般参与运算使用。
 (2)分类:
  算术运算符
  赋值运算符
  关系运算符
  逻辑运算符
  位运算符
  三元运算符
 (3)算术运算符
  +,-,*,/,%,++,--

  +:正号,加法,字符串连接符。
   System.out.println("5+5="+5+5);//5+5=55
   System.out.println(5+5+"=5+5");//10=5+5

  %:取得余数
   左边如果大于右边,结果是余数。
   左边如果小于右边,结果是左边。
   左边如果等于右边,结果是0。

   正负号跟左边一致。

  ++/--:
   ++ 其实相当于把数据+1

   单独使用:
    在数据的前后,结果一致。
  
   参与操作使用:
    如果在数据的后边,数据先操作,在++/--
    如果在数据的前边,数据先++/--,再操作。

 (4)赋值运算符
  =,+=,-=,*=,/=,%=

  int a = 10;
   把10赋值给int类型的变量a。

  a += 20;
   把左边和右边的和赋值给左边。

  注意事项:
   a = a + 20;
   a += 20;
   结果是等价的,理解不是等价的。

   因为+=这种运算符,内含了强制类型转换功能。
   比如:
    short s = 2;

    s+=3;
    等价于
    s = (short)(s+3);
1:运算符
 (1)算数运算符
  +,-,*,/,%,++,--
  +:
    1、数学上的加法(减法,乘法相同)
    2、指定正数(减法相同)
    3、连接字符串
  /:
    两个整数相除,取整数
  %:
    两个数相除,取余数
    符号与被除数相同
  ++,--:
    单独使用时:直接自增,自减
    混合使用时(++,--规则相同):
   ++在前:先加1,再使用
   ++在后:先使用,后加1
 (2)赋值运算符
  =,+=,-=,*=,/=,%=
  对于类似+=这样的赋值,是将等号左边的数与等号右边的数计算,再赋值给等号左边

  还包含一个隐形的强制转换即:
  byte b = 10;
  b += 10;//不会,相当于b = (byte)(b+10)
  除等:除数不能为0
     
 (3)关系运算符
  ==,!=,>,>=,<,<=

  特点:关系运算符的结果都是boolean类型。
        请千万注意:== 不要写成 =
 (4)逻辑运算符
  &,|,!,^,&&,||
  
  &:有false则false
  |:有true则true
  !:true变false,false变true
  ^:相同false,不同true

  &&:有false则false
  ||:有true则true

  &&和&的区别是:如果左边有false了,右边将不再执行。
  ||和|的区别是:如果左边有true了,右边将不再执行。

  开发中常用:
   &&,||,!
 (3)位运算符(了解)
  ^ : 一个数据对同一个数据^两次,结果还是数据本身。异或
  举例:a ^ b ^ b = a
 (4)三元运算符
  格式:
   条件表达式?表达式1:表达式2

   执行流程:
    根据条件表达式返回的是true还是false,决定结果是什么。
    如果是true,就把表达式1作为结果。
    如果是false,就把表达式2作为结果。
  举例:
   int a = 100;
   int b = a > 50 ? 200 : 100;

   请问b的值?200

2:面试题
 (1)请用最有效率的代码写出2乘以8
  2<<3
 (2)请交换两个变量。
  int a = 10;
  int b = 20;

  开发:临时变量
   int temp = a;
   a = b;
   b = temp;

  面试:位^运算符
   a = a ^ b;
   b = a ^ b;
   a = a ^ b;

3:if语句
 (1)用于做判断使用的。
    常见于对某个范围进行判断,或者几个变量进行判断,还有就是boolean表达式的判断。
 (2)格式:
  A:第一种格式
   if(条件表达式)
   {
    语句体;
   }

   执行流程:
    如果条件表达式为true,就执行语句体;
    否则,什么都不执行。

  B:第二种格式
   if(条件表达式)
   {
    语句体1;
   }
   else
   {
    语句体2;
   }


   执行流程:
    如果条件表达式为true,就执行语句体1;
    否则,就执行语句体2;

   特殊:
    可以和条件表达式(三元运算符)在某些情况下进行替换。
    一般是在赋值的情况下可以。

   举例:
    获取两个数中的最大值。
  
  C:第三种格式
   if(条件表达式1)
   {
    语句体1;
   }
   else if(条件表达式2)
   {
    语句体2;
   }
   ...
   else
   {
    语句体n;
   } 

   执行流程:
    如果条件表达式1为true,就执行语句体1;
    如果条件表达式2为true,就执行语句体2;
    ...
    否则,就执行语句体n;
  
  D:注意事项
   a:什么时候时候哪一种if语句。
    第一种格式在判断条件为一种情况下使用。
    第二种格式在判断条件为两种情况下使用。
    第三种格式在判断条件为多种情况下使用。
   b:每一种if语句其实都是一个整体,如果有地方执行了,
     其他的就不执行了。
   c:如果if或者else里面控制的语句体是一条语句,是可以省略大括号的,
     但是,如果是控制多条语句,就必须写上大括号。
     建议:永远写上大括号。
   d:大括号和分号一般不同时出现。
  
  E:作用域
   所有变量的定义只在它所属的大括号内有效。

 (3)案例:
  A:根据键盘录入的成绩,判断等级。
  B:根据键盘录入的月份,输出该月份所对应的季节。


4:switch语句(掌握)
 (1)用于做选择使用的。一般用于几个常量的判断。
  switch会把几个常量值直接加载到内存,在判断的时候,效率要比if高。
  所以,针对几个常量的判断,一般选择switch语句。
 (2)switch语句的格式:
  switch(表达式)//byte,short,int,char,String
  {
   case 值1:
    语句体1;
    break;
   case 值2:
    语句体2;
    break;
   case 值3:
    语句体3;
    break;
   ...
   default:
    语句体n;
    break; 
  }

  A:针对格式的解释
   switch:表示这里使用的是switch语句,后面跟的是选项。
    表达式:byte,short,int,char
            JDK5以后可以是枚举(就业班讲)
     JDK7以后可以是字符串(后面讲)
   case:表示这里就是选项的值,它后面的值将来和表达式的值进行匹配。
        case后面的值是不能够重复的。
   break:
    switch语句执行到这里,就结束了。
   default:
    当所有的case和表达式都不匹配的时候,就走default的内容。
    它相当于if语句的else。一般不建议省略。
  B:执行流程
   进入switch语句后,就会根据表达式的值去找对应的case值。
   如果最终没有找到,那么,就执行default的内容。
  
  C:注意事项:
   a:default整体可以省略吗?
    可以,但是不建议。
   b:default的位置可以放到前面吗?
    可以,但是不建议。
   c:break可以省略吗?
    可以,但是不建议。
    default在最后,break是可以省略的。
    case后面的break可以省略,但是结果可能有问题。
   d:switch语句什么时候结束呢?
    就是遇到break或者执行到程序的末尾。
 (3)案例:
  A:根据键盘录入的日期(1-7),输出对应的星期日期。
  B:根据键盘录入的月份,输出该月份所对应的季节。(选做)

5:Scanner的使用
 (1)Scanner是JDK5以后设计的用来接收键盘录入数据使用的。
 (2)目前我们要通过键盘录入int类型数据,必须按照如下步骤:
  A:导包
   import java.util.Scanner;
  B:创建对象,封装键盘录入
   Scanner $$$$ = new Scanner(System.in);
  C:调用方法,获取数据
   int number = $$$$.nextInt();
6:
 for(变量初始化;循环判断条件;循环变量变化){
  执行循环体
 }
 for(1;2;4){
     3
 }
 1可以省略,需要放在循环前
 2不可以省略,省略会出现死循环
 3省略没有意义,不可以省略
 4可以省略,放在循环体最后
*/

 

 

0 0
原创粉丝点击