一, Java历史
java语言有20多年历史 ,1995年发布Java 1.0版本,原公司 SUN 公司(Stanford University Network),2009年甲骨文公司(Oracle)收购。
二,DOS命令 Win + R 输入cmd回车
① D :---- 直接到D盘 不区分大小写
② cd 文件夹名称 进入指定文件夹,文件夹名称可以不全称,省略后按TAB键,自动补全,多次按TAB可以来回切换
③ cd.. 回到上一层文件夹,直到C盘或者D盘的根路径
④ 在文件夹下 输入 cd \ 直接回到根目录-D盘或者C盘
⑤dir 显示文件夹目录下文件夹名称 修改时间等
⑥ cls 清屏
⑦exit 退出
三,命名规则
①,可以包括:英文字母26个(区分大小写),0-9数字,$ 美元符号 和 _ 下划线
②,标识符不能以数字开头
③,标识符不能是关键字。
四,数据类型分为:基本数据类型和引用数据类型, 基本数据类型分为四类八种。五, 数据类型转换
当数据类型不一样时,将会发生数据类型装换
1,自动装换(隐式)
特点:①,代码不需要进行特殊处理,自动完成。
②,规则:数据范围从小到大;与字节数不相关。
2, 强制类型转换。
特点:①、代码需要特殊的格式处理,不能自动转换;
②、 范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据
3,注意事项:
①、byte/short/char 这三种类型生数学运算时,先提升为int类型,再进行运算。
②、Boolean布尔类型不能发生数据类型转换。
六, 运算符
1,一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。 double result = x + 2.4; // int + double ----> double + double = double
2, 任何数据类型,和字符串运算都转换为字符串。
3, 只有变量才能使用自增自减运算符,常量不能使用。 30++ //错误
4,后++ 后 -- 规则: 先使用,后++/-- , 是指: 先使用, 然后马上执行++/--, 再运算其他.
5, 只有变量才能进行赋值运算,常量不能写在赋值运算的左边。
6, 复合赋值运算符其中隐含了一个强制类型转换。
7,逻辑运算符具有短路效果。当第一个条件已经确认了结果是,后续的表达式不会运行,直接短路。
七,方法
定义一个方法的格式:
public static void 方法名称(){
方法体
}
方法名称的命名规则和变量一样,使用小驼峰
方法体:也就是大括号当中可以包含任意条语句。
注意事项:
1,方法定义的先后顺序无所谓
2,方法的定义不能产生嵌套包含的关系
3,方法定义好了之后,不会执行的,如果想要执行,一定要进行方法的调用;---->调用方法,格式: 方法名称();
八,流程控制
主要是if语句,while语句,for循环等,主要两个关键字:break 和 continue
1. break
①, 可以用在switch语句中, 一旦执行, 整个switch语句立即结束
②, 可以用在循环语句当中, 一旦执行, 整个循环语句立即结束, 打断整个循环.
2. continue 继续 一旦执行, 跳出当前次循环剩余内容, 马上开始下一次循环
多个循环嵌套, break 和 continue 只对最里层的有用..
九, 方法
三要素: 返回值类型, 方法名称, 参数列表.
三种格式 :
1,单独调用 : 方法名称(参数); ----sum(10, 20); 注意:可以不用接收返回值而直接调用.
2, 打印调用: 打印括号内输入 方法名称(参数): 打印返回值. 无返回值,不能打印调用或者赋值调用.
3, 赋值调用: 数据类型 变量名称 = 方法名称(参数); 接收返回值.
方法注意事项
1, 方法应该定义在类当中, 但是不能方法嵌套
2, 方法定义的前后顺序无所谓
3, 方法定义后不会运行,要用得调用, 单独调用, 打印调用, 赋值调用
4, 如果方法有返回值, 那么必须有 return, 不能没有
5, return 后面的返回值数据, 必须和方法的返回值类型对应起来.
6, 对于一个void没有返回值的方法,不能写return后面的返回值, 只能写return自己. 可以写 return; 但是不能写 return 10;
return; // 没有返回值, 只是结束方法的执行而已
7, 对于方法当中最后一行的return,可以省略不写. 就是return;
8, 一个方法当中可以有多个return语句, 但是必须保证同时只有一个会被执行到.
9,方法的重载 (Overload) : 多个方法的名称一样, 但是参数列表不一样
因素: 1. 参数个数不同 2, 参数类型不同 3, 参数的多类型顺序不同
十, 数组 Array
特点:
1, 数组是一种引用数据类型
2, 数组当中的多个数据, 类型必须统一
3, 数组的长度在程序运行期间不可改变.
格式:静态:数据类型[] 数组名称 = new 数据类型[] {元素1, 元素2,........};
省略格式: 数组类型[] 数组名称 = {元素1, 元素2, 元素3,......};
动态: 数据类型[] 数组名称 = new 数据类型[数组长度];
十一,Java的内存需要划分为5个部分:
栈(Stack): 存放的都是方法中的局部变量.
堆(Heap): 凡是new出来的东西, 都在堆当中
方法区(Method Area): 存储.class 相关信息, 包括方法的信息.--方法名称,参数等
本地方法栈(Native Method Stack): 与操作系统相关
寄存器(pc Register): 与CPU相关.
十二, 面向对象
面向对象的三大特征: 封装, 继承, 多态.
面向过程: 当需要实现一个功能的时候, 每一个具体的步骤都要亲力亲为, 详细处理每一个细节
面向对象: 当需要实现一个功能的时候, 不关心具体的步骤, 而是找一个已经具有改功能的人, 来帮我做事...
十三, Scanner 类-----》从键盘输入
使用步骤:1, 导包: import 包路径.类名称;
如果需要使用的目标类,和当前类位于同一个包下, 则可以省略包语句不写.
只有Java.lang包下的内容不需要导包, 其他包都需要import语句.
import java.util.Scanner;
2, 创建: 类名称 对象名 = new 类名称(); --有时候括号内有参数,根据方法需要
// system.in 代表从键盘进行输入
Scanner sc = new Scanner(System.in);
3, 使用: 对象名.成员方法名();
// 获取输入的一个int数值: sc.nextInt();
int num = sc.nextInt();
// 获取键盘输入的一个字符串
String str = sc.next();
十四, Random 类---产生随机数字
1, 导包: import java.util.Random;
2, 创建: Random r = new Random();
3, 使用: 获取随机数字--> int num = r.nexInt(); ---int所有范围, 有正负两种
--> int num = r.nextInt(3)---[0-3) 范围内随机,就是0-2
十五,ArrayList 当中的常用方法
1, public boolean add(E e)--->向集合中添加元素, 参数的类型和泛型一致
// 对于ArrayList集合来说, add添加一定是成功的,所以返回值可用可不用,但是对于其他集合, 不一定成功, 一定需要使用返回值.
2, public E get(int index)---> 从集合当中获取元素, 参数为索引编号, 返回值为对应位置位置的元素
//String name = list.get(2); ------>得到第2号索引位置的名称
3, public E remove(int index)--->从集合当中删除元素,返回值就是被删除的元素
4, public int size()---->获取集合的尺寸长度, 返回值是集合中包含的元素个数.
十六, 字符串 注意:字符串的内容用不可变.
创建字符串的常见方式: 3 + 1
1, public String ();------> 创建一个空白的字符串, 不含任何内容
2, public String (char[] array); -----> 根据字符数组的内容, 来创建对应的字符串
3, public String (byte[] array);------> 根据字节数组的内容, 来创建对应的字符串.
4, 直接创建 String a = "Hello";
注意: 直接写上双引号, 就是字符串对象.
1-3 为重载创建: String st = new String ();--->括号内分别为:空的, char型数组, byte型数组.
十七, 静态static 关键字 一旦用了static 关键字, 那么这样的内容不再属于对象自己, 而是属于类的,
1, 静态只能直接访问静态,静态不能直接访问非静态.
成员方法 ---> 可以访问成员变量 也可以访问静态变量
静态方法 ----> 不能直接访问非静态, 可以访问静态
因为:内存当中是 先有静态内容, 后有非静态内容.
2, 静态方法当中不能用this, 因为this代表当前对象, 通过谁调用的方法,谁就是当前对象. 然而静态方法调用时不用对象的,直接类名称.方法名,所以不能用this
|
|