A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1:常量(理解)
(1)在程序的运行过程中,其值是不可以发生改变的量。
(2)常量的分类:
  1:字面值常量
   1:整数常量
    12,-23
   2:实数常量
    12.5,-65.43
   3:字符常量
    'a','A','0'
   4:字符串常量
    "hello"
   5:布尔常量
    true,false
   6:空常量(后面讲)
    null
  2:自定义常量(后面讲)
(3)常量可以直接被输出。
2:进制(理解)
(1)是一种进位的方式。X进制,表示逢x进1。
(2)Java中整数常量的表示
  1:二进制 由0,1组成。以0b开头。JDK7以后的新特性。
  2:八进制 由0-7组成。以0开头。
  3:十进制 由0-9组成。默认就是十进制。
  4:十六进制 由0-9,A-F(不区分大小写)组成,以0x开头。
(3)进制转换:
  1:其他进制到十进制
   系数:就是每一位上的数据。
   基数:X进制,基数就是X。
   权:在右边,从0开始编号,对应位上的编号即为该位的权。
   结果:把系数*基数的权次幂相加即可。
   
   二进制:1011
    十进制:
   八进制:74
    十进制:
   十六进制:a3
    十进制:
  2:十进制到其他进制
   除基取余,直到商为0,余数反转。
   十进制:60
   结果:
    二进制
    八进制
    十六进制
  3:快速转换
   1:8421码。
   2:二进制--八进制(3位组合)
   3:二进制--十六进制(4位组合)
3:变量(掌握)
(1)程序的运行过程中,在指定范围内发生改变的量。
(2)格式:
  数据类型 变量名 = 初始化值;
  变形格式:
   数据类型 变量名;
   变量名 = 初始化值;
  举例:
   方式1: byte b = 10;
   方式2: byte b;
    b = 10;
4:数据类型(掌握)
(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)类型转换
  1:boolean类型不参与转换。
  2:隐式转换(从小到大)
   byte,short,char -- int -- long -- float -- double
  3:强制转换(从大到小)
   格式:
    (数据类型)数据;
(4)面试题
  byte b1 = 3;
  byte b2 = 4;
  byte b3 = b1 + b2;
  byte b4 = 3 + 4;
5:运算符(掌握)
(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)
(5)关系运算符
  ==,!=,>,>=,<,<=
  特点:关系运算符的结果都是boolean类型。
        请千万注意:== 不要写成 =
(6)逻辑运算符
  &,|,!,^,&&,||
  
  &:有false则false
  |:有true则true
  !:true变false,false变true
  ^:相同false,不同true
  &&:有false则false
  ||:有true则true
  &&和&的区别是:如果左边有false了,右边将不再执行。
  ||和|的区别是:如果左边有true了,右边将不再执行。
  开发中常用:
   &&,||,!(s+3);


1:运算符(掌握)
(1)位运算符(了解)
  ^ : 一个数据对同一个数据^两次,结果还是数据本身。
  举例:a ^ b ^ b = a
(2)条件运算符
  格式:
   条件表达式?表达式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(表达式)
{
  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 sc = new Scanner(System.in);
  C:调用方法,获取数据
   int number = sc.nextInt();

75 个回复

倒序浏览
1:循环(掌握)
        (1)如果我们发现有很多重复的内容的时候,就该考虑使用循环改进代码。
           让我们代码看起来简洁了。
        (2)循环的组成
                A:循环体,就是要做的事情。
                B:初始化条件。一般定义的是一个初始变量
                C:判断条件。用于控制循环的结束。
                D:控制条件。用于控制变量的变化。一般都是一个++/--操作。
        (3)循环的分类:
                A:for
                        for(初始化条件;判断条件;控制条件)
                        {
                                循环体;
                        }

                        执行流程:
                                a:先执行初始化条件;
                                b:执行判断条件
                                c:根据判断条件的返回值:
                                        true:执行循环体。
                                        false:就结束循环。
                                d:最后执行控制条件。返回到b继续。

                B:while
                        初始化条件;
                        while(判断条件)
                        {
                                循环体;
                                控制条件;
                        }
                       
                        执行流程:
                                a:先执行初始化条件;
                                b:执行判断条件
                                c:根据判断条件的返回值:
                                        true:执行循环体。
                                        false:就结束循环。
                                d:最后执行控制条件。返回到b继续。

                C:do...while(了解)
                        初始化条件;
                        do{
                                循环体;
                                控制条件;
                        }while(判断条件);

                        执行流程:
                                a:先执行初始化条件;
                                b:执行循环体和控制条件;
                                c:执行判断条件
                                d:根据返回值
                                        true:返回b。
                                        false:就结束循环。

                注意:
                        a:一般使用for循环或者while循环。而且这两种循环是可以等价转换的。
                        b:do...while循环至少执行一次循环体。

        (4)案例:(掌握)
                A:请在控制台输出5次"我爱Java"
                B:请在控制台输出1-10的数据。
                C:求1-10的和,改进位求1-100的和。
                D:求1-100之间偶数的和。
                E:求5的阶乘。
                F:水仙花。
                G:统计叠多少次,能叠成珠穆朗玛峰的高度。
        (5)循环嵌套:(理解)
                A:也就是循环语句的循环体是一个循环语句。
                B:通过输出
                        ****
                        ****
                        ****
                  我们不断的改进。发现了一个问题:
                        外循环控制行数,内循环控制列数。
        (6)案例:(理解)
                A:正三角形
                        内循环的判断条件:y<=x

                        for(int x=0; x<5; x++)
                        {
                                for(int y=0; y<=x; y++)
                                {
                                        System.out.print("*");
                                }
                                System.out.println();
                        }

                B:倒三角形
                        内循环的初始化条件:y=x

                        for(int x=0; x<5; x++)
                        {
                                for(int y=x; y<5; y++)
                                {
                                        System.out.print("*");
                                }
                                System.out.println();
                        }

                C:九九乘法表(理解)
               

2:break和continue(掌握)
        (1)有些时候,我们需要对循环进行一些控制终止,这个时候,就出现了两个关键字:
                break和continue
        (2)特点:
                A:它们都必须在循环中(break还可以在switch中。)。
                  一般在循环的判断中。
                B:如果单独使用break和continue,后面是不能有语句的。
        (3)区别:
                A:break 结束当前循环。
                B:continue 结束本次循环,进入下一次循环。
        (4)如何退出嵌套循环:(了解)
                用带标签的循环。
                格式:
                        标签名:for(){
                                        for(){
                                                if()
                                                {
                                                        break 标签名;
                                                }
                                        }
                                }

3:应用场景(理解)
        (1)变量:发现有一个数据是变化的时候,就要用变量。
        (2)if语句:如果是一个范围的判断,boolean类型的表达式的判断,几个数据的判断。
        (3)switch语句:几个数据的判断。一般这种情况,有限选择switch。
        (4)for语句:如果次数或者范围特别明确。(水仙花)
        (5)while语句:如果次数或者范围不明确。(珠穆朗玛峰)

1、概念(掌握)
                    定义在类中,有特定功能的一小段程序


     2、格式(掌握)




                    

                        修饰符 返回类型 函数名(参数类型 形式参数,...){

                              函数体;

                              return 返回值;

                         }




                  解释:

                         A 修饰符: public static

                         B 返回值类型 :就是数据类型

                         C 函数名:见名知意,如果一个单词,首字母小写,如果多个单词组成,从第二个单词开始首字母大写

                         D 参数类型 :数据类型

                         E 形式参数 :接受实际参数的变量

                         F 实际参数 :就是实际参与运算的变量

                         G 函数体:实现功能的代码

                         H 返回值 程序的结果,如果没有明确返回值可以不写

                         I return 返回值 ,那里调用程序,return就把结果返回到哪里 比如 int num = max(1,2);return把结果返回给num

     3、特点(掌握!!)

                   A 函数和函数是平级关系,且只能定义在类中,不能在函数中嵌套函数

                   B 函数只有被调用才会执行

     4、注意(掌握)

                   无论函数的返回值是具体的数据类型还是void,函数都是以return语句结束的

     5、函数的调用(理解)

                   A 有明确返回值函数的调用

                            单独调用//没有意义

                            输出调用//视频中老师用的最多的

                            赋值调用//开发中用的最多的

                   B  没有明确返回值函数的调用

                            单独调用

     6、函数的重载-overload(掌握)

                   概念

                             在同一个类中,函数名相同,参数列表不同(参数类型和个数),与返回值类型无关

                   举例

                              class Demo{





public static void print(int x, int y);




public static void print(int a,int b,int c)




public static void print(double a);




public static void print(int a);




}

     7、案例(掌握)

                    1、有明确返回值的案例

                             A求两个数据和

                             B 求两个数据的最大值

                             C 比较两个数是否相等

                    2、没有明确返回值的案例

                             A 矩形案例

                             B nn乘法表



2、数组(掌握)



     1、概念(掌握)

                  数组是存储多个同一类型数据元素的容器(container)

     2、好处(理解)

                  数组中的元素会被自动从0开始编号,方便我们获取
     3、格式(掌握)

                  A int[] arr =new int[2];//念法:int类型的数组arr

                  B int arr[] = new int[2];//念法:int 类型的arr数组,不推荐这么写,他和第一种格式其实一样的

                  C int[] arr = new int[]{1,2,3,7};//大括号内可以没有任何东西

                  D int[] arr = {3,4,65,4};//大括号内可以没有任何东西

     




                  推荐使用A D,如果是给方法直接传递实际参数可以用c

                  获取数组的长度:变量名.length;



     4、内存图(理解)

                  堆:所有new出来的东西都在堆里
                  1、每一个实体都有地址值
                  2、每一个实体内的内容都有默认值



整数: 0



浮点数: 0.0



字符: ’\u0000’  //char c = ‘\u0000’;



布尔:false

      5、数组操作(掌握)


                  1、数组遍历
                  2、获取数组最值

                  3、数组查找:给定一个值,查找该值在数组中对应的索引

      6、常见问题(掌握)

                  A 数组越界异常:ArrayIndexOutOfBoundsException

                         你访问了不存在的索引。

                  B 空指针异常:NullPointerException

                         一个实例(对象)已经不存在了,你还去访问它的内容
      7、二维数组(理解)

                  A 格式

                         第一种定义通过定义长度的方式定义了二维数组的长度,并且定义了一维数组的长度 int[][] arr = new int[6][3]

                         第二种定义通过长度仅定义了二维数组的长度,没有初始化一维数组int[] [] arr= new int[2][]

                         第三种定义通过直接给出元素定义了二维数组的长度和每一个一维数组的长度 int[][] arr = {{2,23},{33}}

                  B 案例

                         抽烟案例

                              /**



一条烟中10包烟


每包烟有20支烟


那么就把一条烟看成一个二维数组,里面的包是一维数组


*/


class SmokeDemo


{


     public static void main(String[] args)


     {


          int[][] tiaoyan = new int[10][20];


         


          tiaoyan[9] = new int[2];


         






          for(int i=0; i<tiaoyan.length; i++)


          {


               int[] baoyan = tiaoyan[i];


               for(int j=0; j<baoyan.length; j++)


               {


                    System.out.println("正在抽第"+(i+1)+"盒烟中的第"+(j+1)+"根烟");


               }


          }


     }


}
      
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
zhangkai986745 发表于 2015-6-21 08:34
这是基础班前几天的笔记

恩恩,我主页里面还有其他几天的,随后会更新基础班所有的笔记和大家分享,希望可以帮到大家
回复 使用道具 举报

不用客气,我也在享受分享的乐趣:lol
回复 使用道具 举报
谢谢分享
回复 使用道具 举报

作为黑马的一员,这是义所当为!
回复 使用道具 举报
不错啊,谢谢分享。
回复 使用道具 举报

不用客气:lol
回复 使用道具 举报
赞一个      
回复 使用道具 举报
记得有点忒详细了...
回复 使用道具 举报
笔记写的很详细,不错
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
感谢楼主
回复 使用道具 举报
感谢曹操的分享
回复 使用道具 举报
ARD 初级黑马 2015-6-21 22:56:19
16#
顶 支持.
回复 使用道具 举报
整理的不错,挺好的
回复 使用道具 举报
我在此给你赞一个
回复 使用道具 举报
谢了!!!!!
回复 使用道具 举报
为了理想而奋斗 来自手机 中级黑马 2015-6-22 03:02:04
20#
谢谢分享
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马