黑马程序员技术交流社区

标题: JAVA基础班123.. [打印本页]

作者: 调味汁的味道    时间: 2019-3-8 12:17
标题: JAVA基础班123..
                                                      第一章   Day01
今天是javaEE基础班的第一天,我了解JAVA的一些基本知识,了解JAVA语言的历史,下面是今天所学得详细内容:
1.1   java语言概述&基础知识1.1.1   java语言发展史
Java语言是美国Sun公司(StanfordUniversity Network)在1995年推出的计算机语言
Java之父:詹姆斯·高斯林(James Gosling
1.1.2   命令提示符
控制台打开:
Win+r 打开运行,输入CMD
Dir  显示当前目录下的所有文件
Cls  清屏
Exit  退出
Cd..  返回上一级
Cd   进入指定文件名
盘符名:   进入盘符
Cd/  退回根目录
1.1.3   跨平台
我们的程序可以在任何一个程序上运行
JDK JRE JVM
        JDK:JAVA程序开发工具包 JRE+JAVA开发工具
        JRE:JAVA程序运行环境  JVM+核心类库
        JVM:JAVA虚拟机,JAVA代码都是运行在JAVA虚拟机上
1.2   HelloWorldjava语法1.2.1   HellloWorld案例
//编写类名
public class HelloWorld {
//编写main方法主入口
        publicstatic void main(String[] args){
                 //编写输出heeloworld语句
System.out.println("HelloWorld");
        }
}
//注意:类名要和文件名相同
System.out.print();  //这是不换行的输出语句
System.out.println();  //这是换行的输出语句
1.2.2   注释
注释就是对代码的解释说明,它是给程序员看的。
1.2.3   注释分类
l  单行注释://
l  多行注释:/* */
l  文档注释:/** */
1.2.4   关键字
关键字就是java中有特殊意义的词
特点:
l  完全是小写的字母
l  常见的开发软件中会有特殊颜色
1.2.5   常量
在程序运行中,不变的量
整数常量:不带小数点的整数
小数常量:带小数点
字符常量:加单引号的一个字符
字符串常量:加双引号的0个或0个以上的字符
布尔常量:truefalse
空常量:Null
1.2.6   数据类型
l  基本数据类型
四类八种:
整数:
          字节  byte       1      -128~127
        短整数   short      2
          整数    int            4
        长整数    long       8
浮点数:
                 单精度  float       4
                 双精度    double  8
布尔:
                 boolean                    1
字符:
                 char                       2
l  引用数据类型
不是基本数据类型的都是引用数据
1.2.7   变量
在程序运行中,可以改变的值
变量一般都是用来存储一些数据
格式:
a)      数据类型 变量名 = 值;
b)     数据类型 变量名;
变量名 = 值;
变量的使用:
        直接写变量名;
注意事项:
l  变量使用不能超过作用域的范围
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
l  可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
public class Demo3{
        public static voidmain(String[] args){
                 //【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
                 
                 {
                         int a = 1;
                         System.out.println(a);
                 }
                 a = 20;//这里会报错
                 System.out.println(a);
        }
}
public class Demo3{
        public static voidmain(String[] args){
                 //【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
                 int a = 20;
                 {
                         int a = 1;//这里会报错
                         System.out.println(a);
                 }
                 System.out.println(a);
        }
}
1.2.8   标识符
标识符:我们给变量,方法或者类名就是标识符
命名规则:(硬性要求)
l  标识符可以包含英文大小写字母,数字,下划线和$ 中文也可以
l  不能以数字开头
l  不能是关键字
命名规范(软性要求)
l  类名:大驼峰 所有单词首字母大写
l  类名:小驼峰 除了第一个单词外,所有单词首字母都大写
1.2.9   数据类型转换
l  自动类型转换
特点:代码不需要进行特殊处理,自动完成
规则:数据范围从小到大
l  强制类型转换
特点:代码需要进行特殊的格式处理,不能自动完成
格式:
        目标类型 变量名 = (目标类型)被转换的数据
注意事项:
l  强制了下转换一般不推荐使用,因为可能会发生精度损失,数据溢出,只有你确定了我这个转换不会发生这些问题,或者就算出现了也无所谓的时候我才用。
l  byte/short/char这三种类型都可以发生数学运算,在运算的时候都会先被提升为int类型再进行计算
l  boolean类型不能发生数据类型转换
byte b1=10;
byte b2=20;
byte sum = b1+b2;//报错 改成int.
                                                     第二章   Day02
今天是基础班第二天
2.1   运算符2.1.1   算术运算符:+ - * / %
        特别注意:
                 /和数学中的除不太一样两个整数相除只能得到整数,如果需要得到小数要求至少其中一个是浮点数。
                 %取余 比如10%3结果为1
2.1.2   自增和自减运算符:++ --
l   a++; 相当于a=(a的数据类型)(a+1);
l   a--; 相当于a=(a的数据类型)(a-1);
注意:
++可以写在变量的前面也可以写在变量的后面,单独写的时候写前面写后面都没有区别,区别就在和其它运算符一起写。
++变量名  (先自增再运算);
--变量名(先运算再自增);
2.1.3   赋值运算符:= += -= *= /= %=
l   基本赋值运算符: =
代表将右侧的数据交给左侧的变量;
例如:
int a = 30;
a= a+3;
l  符合赋值运算符:+=,-+,*=,/=,%= (有隐含强制转换)
例如:
                 inta = 10;
                 a+= 3;//相当于a=(int)(a+3);
                 a-=3;//相当于 a = (a的数据类型)a-3;
2.1.4   比较运算符:> < >= <= == !=
比较结果是布尔类型;
2.1.5   逻辑运算符:& | ! ^ && ||
&&(短路与),&(没有短路效果)读成并且 ,结果都是一样的
|| , | 读取或者
!取反
异或 ^ 可以用来判断是否是异性
短路:
左边表达式的结果确定之后,如果整个表达式的结果已经被确定了,就不会去执行右边的表达式
2.1.6   三元运算符:数据类型变量名 = 布尔表达式?表达式1:表达式2
l  执行流程:
先判断布尔表达式的结果,如果结果为true三元表达式的结果就是表达式1,否则就是表达式2
求三个数的最大值
int a=10;
int b=20;
int c=30;
int max = a>b?(a>c?a:c):b;
2.2   分支语句:if
三个部分:
                     if(判断表达式){
                                          语句体;
                                          }
                  else if(判断表达式){
                                          语句体;
                                          }
                  else{
                                          语句体;
                                  }      
l  if语句格式:
        首先有且仅有一个一个if,后面会有0个到多个else if语句,最后会有0个或1else
        注意:开头肯定是一个if,有可能一个else if都没有,else有可能没有,如果有也只会出现一个else.
l  执行流程:
从上到下依次执行判断表达式
                 结果为true:则执行后面紧跟着的语句体.语句体执行完了整个if语句就结束了.
                 结果为false:则继续判断下面一个判断表达式
        如果所有判断表达式的结果都为false,在有else语句的情况下就执行else里面的语句体,没有的话if语句结束.
l  注意:
1.      一旦执行了一个大括号中的语句体,整个if语句就结束了。不可能出现执行两个语句体的情况。
2.      如果大括号中的语句体只有一行代码的时候可以把大括号省略,但是建议永远不要省略。
2.3   键盘录入
导包:importjava.util.Scanner;
创建对象:Scanner  sc = new Scanner(System.in);
键盘录入给变量名赋值:int num = sc.nextInt();
                                                     第三章   Day03
基础班第三天
3.1   switch
标准格式:
                 switch (表达式) {
                         case 1:
                                  语句体1;
                                  break;
                         case 2:
                                  语句体2;
                                  break;
                         case 3:
                                  语句体3;
                                  break;
                         ...
                         default:
                                  语句体n+1;
                                  break; // 最后一个break语句可以省略,但是强烈推荐不要省略
                 }
执行流程:
          看表达式的结果和哪个case后面的值相同,就执行那个case后面的语句体,碰到break就结束switch.
          如果没有符合要求的case则执行default后面的语句体.
注意事项:
        switch后面小括号当中只能是下列数据类型:
                         基本数据类型:byte/short/char/int
                         引用数据类型:String字符串、enum枚举
        switch可以没有default,但是一般都会加上
        case语句后面可以不加break.但是如果不加break就会出现case穿透问题.匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止;
3.2   循环3.2.1   for
格式:
                 for(初始化语句;条件判断;步进语句){
                         循环体;
                 }
执行流程:
先执行初始化语句,然后看条件判断的结果,如果为false 循环结束,如果为true  执行循环体.循环体执行完后执行步进语句.然后继续执行条件判断(PS:注意,不是初始化语句)如果结果为false,结束循环,结果为true则继续循环体,然后步进语句以此类推.
注意事项:
                 for循环的变量在小括号当中定义,只有循环内部才可以使用。
3.2.2   while
格式:
                 while(判断表达式){
                         循环体;
                 }
执行流程:
                 看判断表达式的结果,如果为false循环结束,如果为true,则执行循环体.循环体执行完后继续看判断表达式的结果以此类推
3.2.3   do….while
格式:
                 do{
                         循环体;
                 }while(判断表达式);
执行流程:
                 先执行循环第,然后看判断表达式的结果如果为true则继续执行循环体如果判断表达式的结果为false则循环结束,如此反复。
3.2.4   循环小结
总结:如何选择循环语句
                 用的最多的是for循环,果循环次数已知一般用for.如果循环体和循环次数有关系,也用for循环
                 while循环一般在循环次数未知的情况下使用,或者死循环一般都用while循环
                 do...while循环基本不用
3.2.5   循环控制语句
break:
        在循环过程中,碰到break整个循环就直接结束了,应用场景:break只能出现在循环中或者switch
Continue:
如果在循环过程中碰到了continue,则跳过本次循环,继续下次循环
3.2.6   死循环
死循环就是会一直循环下去的循环
while(true){
}
for(;;){
}
3.3   Random随机数
步骤:
        
         A.  导入包    importjava.util.Random
     B.  创建对象   Random r= new Random();
     C.  获取随机数  int num =r.nextInt(10);//[0,10)
                                                     第四章   Day04
基础班第4
4.1   数组
1.数组的长度一旦确定就不能改变
2.数组中元素的数据类型都是一样的
4.1.1   数组的初始化
数组的初始化:在内存当中创建一个数组,并且向其中赋予一些默认值。
两种常见的初始化方式:
1. 动态初始化(指定长度)
格式:
        数据类型[]数组名 = new 数据类型[长度];
解析含义:
左侧数据类型:也就是数组当中保存的数据,全都是统一的什么类型
左侧的中括号:代表我是一个数组
左侧数组名称:给数组取一个名字
右侧的new:代表创建数组的动作
右侧数据类型:必须和左边的数据类型保持一致
右侧中括号的长度:也就是数组当中,到底可以保存多少个数据,是一个int数字
2. 静态初始化(指定内容)
格式:
        省略格式:(推荐使用)
                 数据类型[]数组名 = {元素值1,元素值2,元素值3,...};
        标准格式:
        数据类型[]数组名 =new 数据类型[]{元素值1,元素值2,元素值3,...};
4.1.2   数组元素的表示方式
格式:
        数组名[索引]
索引值:就是一个int数字,代表数组当中元素的编号。
【注意】索引值从0开始,一直到“数组的长度-1”为止。
4.1.3   数组的内存图
1.java内存中的几块区域(重要的)
        ①栈
                         方法被调用的时候都会入栈
                         局部变量都被保存在栈中
        ②堆
                         new出来的东西都在堆中
                         堆中的东西都有默认初始化值
局部变量:定义在方法中的变量
数组的实体保存在堆中
数组名实际保存的是数组实体的地址值
4.1.4   数组长度的表示
格式:      
                 数组名.length
4.1.5   数组的遍历
int[]arr={1,2,3,4,5,7};
//遍历输出数组元素
for(int i=0;i<arr.length;i++){
        System.out.println(arr);
}
                                                     第五章   Day05
基础班第五天
5.1   方法5.1.1   方法的定义:
方法的定义格式:
                 public static  返回值类型  方法名(参数类型 参数名,参数类型2参数名2,.....){
                                  方法体;
                                  return 返回值;
                 }
修饰符:目前固定使用public static
返回值 :就这件事情做完之后的结果
返回值类型: 这件事情做完后的结果的类型
方法名:这件事情的名字
参数:做这件事情需要的东西
参数类型 : 参数的数据类型
参数名:就是给参数取的一个名字
return :用来返回最终的结果.  两个作用,第一停止当前方法,第二将后面的返回值还给调用处
定义方法三要素:(先把这三个要素分析出来再去定义方法)
方法的功能
方法的参数
方法的返回值类型
5.1.2   方法的调用
格式:
                 最纯粹的格式:   
                                   方法名(参数1,参数2...);
                 
                 注意:传参数的时候方法定义里有几个参数就传几个参数.方法定义的时候参数是什么类型就传什么类型.
                                  如果方法有返回值,一般是用接收返回值
5.1.3   方法的重载
方法重载(Overload)的定义:
        在同一个类中,方法名相同,参数列表不同的方法才叫重载
参数列表不同:
        参数个数不同
        参数类型不同
        参数的多类型顺序不同
如何快速的分辨参数列表是否相同:
        把每个参数的数据类型拼接在一起组成一个字符串.
        比较两个字符串是否相同
注意:看参数列表是否相同的时候和参数名没有关系
                                                     第六章   Day07
基础班第7
6.1   面向对象思想
面向过程思想
        让我们去做事情的时候,我们自己去把每个步骤给做了   
缺点 自己太累了
面向对象思想:
        让我们去做事情的时候,我们自己不做,指挥别人或者别的东西去做  我们负责指挥    优点:我们轻松了,并且任务也能完成
6.2   类和对象
类:对一个共同事物属性和行为的的描述
对象:对象是某类事物的一个个体
6.3   封装
就是把一些东西隐藏起来。
6.4   构造方法
l  构造方法的特点:
类名和方法名相同
                 ②没有返回值类型,void都不能写
l  构造方法的调用格式:
                 new类名(参数);






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2