在黑马学习了一周多的时间学习了很多知识,做一个总结。 1.java 什么是JVM JVM是java虚拟机 什么是JRE JRE:JVM+类库。 什么是JDK JDK是开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 2.数据类型: 基本数据类型 整型类型: byte(1)-128 - 127 short(2) int(4) long(8) 浮点类型: float double 字符类型: char 布尔类型(boolean): true false 引用数据类型: 类 接口 数组 String 3.数据类型转换: byte-->short-->int-->long-->float-->double 隐式转换: 从小往大转换 格式: 大的数据类型 变量名 = 小的数据类型值; 强制类型转换: 大的往小转 格式: 小的数据类型 变量名 = (小的数据类型)大的数据类型值; 4.运算符: 算术运算符: 1.++a 先自增然后运算 2.a++ 先运算再自增 1. 赋值运算符(包含了强制类型转换) 2. 关系运算符(返回类型为布尔类型) 3.逻辑运算符(操作布尔类型数据,一定返回一个布尔类型数据) 1.(&并且 |或者 ^不同为真) 2.&& || (短路) |两边都参与运算 ||当左边为true 右边不参与运算 4.三元运算: 类型 变量 符号 变量 符号 变量 ? 运算一 :预算二 String b = a>=10?"ok":"no ok"; [size=18.0000pt]5. 循环 1.if语句的使用 使用时只运行一个语句,不执行多个语句 if和else if的区别在于哪里? if条件所有都被执行然而 else if的话如果一个被执行则后面的不被执行 从效率上面来讲else if的效率高于if 2.switch语句: case穿透: 就是在一个语句中不加break所以也会执行下面的语句 3. for循环: 重点就在于循环变量只存活于循环之中 4. while循环与do...while语句: do...while 报错: 1.x cannot be resolved to a variable 这种报错是找不到变量,一般出现在for循环 2.ArrayIndexOutOfBoundsException: 数组索引越界异常 这种错误出现在数组超出了范围 3.NullPointerException 空指针异常 说明已经在栈内存不访问堆内存还要去访问抛出异常 4.This method must return a result of type int 这个方法必须有返回值 6.关于数组内部的理解: 栈:局部变量(在方法中定义的变量) 堆:存储new出来的东西 方法区: 本地方法:与系统相关 寄存器:给cpu使用 7.对于数组的栈和堆的理解: 1. 栈就是一个虚拟的世界,在堆中开辟一个实际的有意义的实物 就好比栈就是一个地图,堆就是现实,可以通过使用栈中的地址 就可以在真实的世界中找到有意义的东西 2.栈和堆的区别,堆要比栈大很多,所以按照规定在栈中的垃圾使用 过后就会被垃圾回收,再堆中的垃圾在机器闲置的时候才会被垃圾回收 8.方法 1.如何定义一个功能呢? 1.在一个封闭的空间大括号 2.需要有名称 3.需要有数据的运算 4.需要有返回值 5.需要有修饰符 2.如何定义一个函数? 函数就是一个功能。 功能就需要两个部分 1.结果 2.位置内容 明确1.这个功能的结果是什么? 明确2.这个功能需要位置内容是什么? 3.无返回值的方法: 无返回值的方法是可以直接调用的,直接接收就可以。 4.关于方法的重载 方法的重载就是名字相同,但是参数类型和参数的个数不同,就可以使用同一个参数名。 5.对于形参和实参的理解 实参:实参就是参与运算里面的变量 形参:形参就是是去接收参数的变量 9. 断点调试 视图框: 1.debug视图是显示即将执行行号 2.variables框,显示变量 3.console控制台显示输入输出 注意: 1.代码要加在有效代码上 2.方法上面的查看。要在相应的方法也要加断点 10.面向对象 类:一组相关属性和行为的集合。 就是对一类事物的共同点的描述 就是用来描述一类事物 对象:就是一组事物的属性和行为的集合 就是某类中的一个个体 世界上的事物 1.属性 就是事物的描述信息 就是事物能够做什么 能用具体值表示的 2.行为 不能用具体值表示的 3.类 成员变量 表示 属性 成员方法 表示 行为 格式: 数据类型 变量名; 修饰符 返回值 防法名(参数){ 方法体; 返回值; } 4.调用类 使用一个类就是使用该累的成员(成员变量和成员方法) 5.成员变量和局部变量的区别 1.位置不同 成员变量 类中 方法外 局部 方法中或者声明上 2.内存位置 成员 堆内存 局部 栈内存 3.周期 成员 方法调用结束消失 局部 方法调用完毕消失 4.初始化 成员 有初始化 局部 无默认 6.private 1.可以修饰成员变量和方法 2.只能在本类中访问 我们对于private修饰我们用getXxx()和setXxx() 这样就可以对于函数进行判断 1.判断中我们就是在setXXX()进行判断 首先要赋值给所用的变量 7.面向对象的三大特征 封装 继承 多态 1.封装: (1)隐藏在对象内部,无法客观操作和修改 (2)成员变量添加get,set 好处:提高复用性和安全性 get,set方法中set 返回值为空,get变量值为空 8.this关键字 this代表所在当前类的对象引用 谁调用方法就代表谁 区分局部变量和成员变量 9.构造方法:初始化成员 格式 方法名和类名相同 没有返回值void都没有 没有具体返回值 参数调用:类名用于参数调用,形式参数就是就是这个类名 2.如何构造方法 new关键字调用 格式 类名 对此昂名 = new 构造方法(...) 就是对构造数据的初始化 10.注意点 1.如果没有给出构造方法,系统会给出过构造方法 2.如果我们给出了构造方法,系统将不会再给你方法,你就需要自己去给出一个无参数的构造方法 3.最好自己调用 4.构造方法也可以重载 我对象已经创建了想修改成员变量就用set修改 对象没有创建,要创建新的就用 类是描述事物的共性 对象就是实例化的一个个体
|