java学习之路
本视频参考22年黑马最新的java教程来参考,记录一下java速通学习之路!(菜鸡实锤),顺便敬仰Y4神!!!我的神!
[TOC]
第一天
1 常见的CMD命令(windows命令)
- 切换盘符 例如 E:
- dir 显示当前目录所有文件夹(包括隐藏的)
- cd 进入目录的命令 cd xxx文件夹
- cd.. 表示回退到上一级目录
- cd 目录1\目录2\
- cd \ 退到盘符目录
- cls 清屏
- exit:退出命令提示符窗口
2 注释
- 单行 //
- 多行 /* */
- 文档 /** */
3 关键字
- 全部小写
- 带颜色,非常直观
- class关键字用来定义类,后面跟的是类名!
4 字面量
- 字符串:双引号
- 字符:单引号(内容只能有一个)例子’A’ ‘我’
- 空 NULL(只能当作字符串输出)
5 变量
按作用范围分类:成员变量和局部变量
成员变量
在类体中定义的变量,作用范围为整个类,这个类中都可以访问到定义的这个变量
1 | public class Test4_2 { |
局部变量
在一个函数(方法)或代码块中定义的变量
特点:局部变量在方法或代码块被执行的时候创建,在结束时被销毁
1 | public class Test4_2 { |
注意事项
- 一条语句可以定义多个变量
- 变量使用前要赋值
- 变量名不能重复,且只能存一个值
第二天
1 数据类型
基本数据类型
字 节——byte——1字节
短整型——short——2字节
整 型—— int ——4字节
长整型—— long——8字节(定义数据值后面需要+L) 以上为整型
布尔型——boolean—1bit (与数字无关,只有true和false)
单精度—— float ——4字节 浮点型数据值后面+F
双精度——double——8字节
字 符—— char ——2字节数据类型转换
隐式转换 取值范围小的→取值范围大的(byte short int long float double)
强制转换 取值范围大的→取值范围小的(不允许直接赋值)格式:目标数据类型 变量名=(目标数据类型)被强转的数据
1 | int a = 55,b = 9; |
byte char short三种类型计算,都会先提升为int,然后再运算。
2 标识符
1 定义要求 :
只能字母,数字,下划线和$符号四部分组成!不能以数字开头,不能是关键字,区分大小写。
3 键盘录入
1 导包 :Scanner
import java.util.Scanner; 导包的动作必须在定义类的上边
2 创建对象
Scanner sc = new Scanner(System.in); sc为变量名,可以变,其他的都不允许变!
3 接收数据
int i = sc.nextInt(); 只有i是变量名,可以变,其他的都不允许变!
4 运算符
1 一元运算符
+/- ——正(负)号
! —— NOT,非
~ ——代表取补码
++ —— 自增运算符
– —— 自减运算符
2 字符串的+(可以理解为拼接)
从左到右逐步执行,只要有字符串+,就直接拼接!
3 字符相加
对应的ASCII值相加,如果和字符串相加,直接拼接!
4 逻辑运算符
&并且 ! 非 &&与&语法一样,但有短路作用(第一个能判断即可退出,不判断第二个)
|或者 ^异或(同为false,不同为true) ||与|语法一样,但有短路作用
5 三元运算符
格式:关系表达式? 表达式1 : 表达式2 (true →1 false→ 2),相当于if-else
第三天
1 判断和循环
if 和if else 以及if的嵌套,switch和whlie语法和C,C++一样!建议有过C和C基础的速通一下就行。(这里笔者默认你们已经有了C或C++的基础,这里就不多说了。)
continue:跳过本次循环,执行下一次。例如:第i次跳过→i+1次开始执行
break:结束整个循环!例如:有5次循环,第3次有break,4,5次一定不执行,第3次的语句可执行,可不执行。
2 数组
定义:一: 类型[ ] 数组名 二: 类型 数组名[ ]
初始化:类型[ ] 数组名 = new 类型[元素1,元素2……];(静态初始化)
注意:1 数组定义时考虑数据的隐式转换,小的可以变大,大的不可以变小!
2 一旦定义好,长度不可改变!
一个简单的例子:创建随机数组。
1 | package demo; |
数组长度输出:System.out.println(arr.length);
数组的遍历操作(用循环) arr.fori(快速生成)
类型[ ] 数组名 = new 类型[数据长度];(动态初始化)不给值,有默认初始值
整数→0 小数→0.0 布尔→false 引用数据类型→null 字符→’/u0000’(空格)
java的内存分配
栈:方法运行时使用的内存,比如main方法执行时,进入方法栈中执行
堆:存储对象或数组,new来创建的,都存储在堆内存
方法区:存储可以运行的class文件
本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发无关
寄存器:给CPU使用,和我们开发无关。
3 方法
1 定义:把一些代码打包在一起(程序中最小的执行单元)
2 格式:
public static 返回值类型 方法名(参数) {
方法体;
return 返回值;
}
3 调用: 方法名();
注意:1 不调用不执行
2 方法之间平级,顺序无所谓,但不能嵌套定义
4 方法的重载
定义:在同一个类中,定义了多个同名的方法,参数不同(类型,顺序,个数)
一个简单的例子,拷贝数组
1 | package demo1; |