Java
cmd
盘符名称+冒号 盘符切换 如 D:回车 切换到D盘
dir 查看当前路径下的内容
cd 目录 进入单极目录 cd source
cd … 回退到上一级目录
cd 目录1\目录2 进入多级目录
cd \ 回退到盘符目录
cls 清屏
exit 退出命令提示符窗口
环境变量:我们在使用cmd时,想运行某个程序,如果在我们现在这个盘符文件夹内找不到这个程序,系统就会到环境变量里面从上往下去找,所以我们就可以把这个程序的路径放在环境变量path里面,这样我们在任意文件夹里面都可以去打开这个指定的程序
也可以新建系统变量,变量值不带最后一个文件夹,然后再在Path里面去加入最后一个文件夹的名称方法如%变量名%\文件名
我们用javac(jdk提供的编译工具把.java文件编译成.class文件)去编译,用java(jdk提供的运行代码的工具)去运行
在cmd里面找到我们编写代码的文件夹
用 javac 代码文件.java 运行,编译得到 代码文件.class
再通过 java 代码文件(不带后缀) 运行代码
public class 类名(类名得和文件名一致){
public static void main(String [] args){
System.out.println();
}
}
字面量
整数 123 321 -333
小数 1.23 3.21 6.66
字符串 “学会java”
字符 ‘嘿’
布尔 true false
空 null (null不能直接打印)
特殊字面量
制表符 \t : 在打印的时候,把前面的字符串的长度补齐到8,或者8的整数倍.最少补一个空格,最多补8个空格.
数据类型
基本数据类型
关键字 取值范围 内存占用
byte -128~127 1
short -32768~32767 2
int -2147483648~2147483647(10位数) 4
long (19位数) 8
在使用long的时候得在变量后面加一个L,大小写都可以,建议用大写的L
folat -3.401298e-37~3.402823e+38 4
在使用float的时候也得在变量后面加一个F后缀
double -4.9e-324~1.797693e+308 8
char 0~65535 2
boolean true,false 1
取值范围 double>folat>long>int>short>byte
基本数据类型:数据值存储在自己的空间里面,给别人赋值的是真实的值
引用数据类型:数据值存储在其他空间.自己空间存储的是其他空间的地址,给别人赋值的是地址值.
标识符
由数字,字母,下划线(_)和美元符号($)组成
不能以数字开头
不能是关键字
区分大小写
Scanner类
步骤:
- 导包 (写在类定义上面) import java.util.Scanner;
- 创建对象 Scanner sc = new Scanner(System.in);
- 接受数据 int i = sc.nextInt();
IDEA项目结构
project(项目),module(模块),package(包),class(类)
psvm快速生产主函数
sout快速生成输出语句
运算符
算术运算符
+,-,*,/,%
当两个不同类型的数据进行运算的时候,得先进行转换成同一类型,再进行运算.
byte,short,char在进行运算的时候自动转换成int
隐式转换:
小的数据和大的数据进行运算的时候,会把小的数据自动转换成大的数据的数据类型
强制转换:
把一个取值范围大的数据,赋值给取值范围小的数据,得用强制转换
目标数据类型 变量名 = (目标数据类型) 被强制转换的数据
字符串的"+"操作
当"+“操作中出现了字符串,这个”+"就变成了字符串连接符,而不是算术运算符,把前后的数据进行拼接,产生一个新的字符串.
连续的"+"操作就是从左到右逐个执行.
1 + 51 + “你” = 52你
先进行算术运算1 + 51 再进行52和"你"的拼接.
当 “字符+字符” 或者 “字符 + 数字” 时,会把字符通过ascll码表查询到对应的数字再进行计算.
ascll “0” 48 “A” 65 “a” 97
‘a’ + 1 = 98 char先自动转换成int 再进行加法
自增运算符 ++
自减运算符 –
b = a++ 就是先把a赋值给b再对a进行++操作
b = ++a 就是先对a进行++操作,在给b赋值
赋值运算符
= , += ,-= ,*= ,/=;
关系运算符
==,!+,>,>=,<,<=;成立为true ,不成立为false
逻辑运算符
&,|,^,!;
^异或运算,两边相同为false,相异为true
短路运算符;
&& a && b
先判断a 成立吗,a成立才回去看b成立不成立
如果a不成立,就不会去看b成立不成立
|| a||b
两边都是假结果才为假,先判断第一个是不是假,如果不是假,对第二个的判断就不再进行了,而|运算符会对两边都进行判断
三元运算符
格式:关系表达式?表达式1:表达式2;
如果关系表达式为真,那么得到的就是表达式1;
关系表达式为假,得到的就是表达式2;
运算符的优先级 ()优先于所有的符号
原码,反码,补码
源码:十进制数据的二进制表现形式,最左边是符号位,1为负,0为正.
原码对正数计算不会有问题,但是对负数进行计算,结果就会出错,实际运算的结果和我们预期的结果是相反的.
反码:为了解决不能计算负数的问题而出现的.
计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0.
在反码里面,0有两种表达方式,在计算跨0的算式时,会有误差
补码:把反码加1,计算机里面数据的储存就是靠补码来进行储存的.
正数的原码,补码,反码都相同.
判断和循环
case 穿透
如果匹配上了,就会执行这个语句体,然后找到break,如果找不到break,就会继续执行下一个语句体,直到找到break.
switch 新特性 jdk12
case ->{}
default ->{}
匹配上了就会执行大括号里面的语句
switch匹配具体数据,if else 匹配范围的数据
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
无限循环
for(;😉{
}
while(true){
}
do{
}while(true);
数组
数组指的是一种容器,可以用来储存同种数据类型的多个值.
数组的静态初始化
数据类型[] 数组名 = new 数据类型[]{元素1,元素2…};
数据类型[] 数组名 = {元素1,元素2…};
数组名.length获取数组的长度
数组的动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度]
整数默认初始化0,小数0.0,字符是’\u0000’空格,布尔是false,引用数据类型是null
二维数组
数组类型 [] [] 数组名 = new 数组类型 [] []= {{},{}};
int [] [] arr = {
{1,2,3},
{3,4,5,6,7}
}
方法
public static void 方法名(参数){
方法体;
}
参数之间用逗号隔开,且参数的数量和类型得一一对应
带有返回值的方法
public static 返回类型 方法名(参数){
方法体;
return 返回值;
}
在调用处要根据方法的结果,去编写另外一段代码.就得用到有返回值的方法
方法在main方法里面调用,在main方法外面编写
方法的重载:相同的方法具有不同的参数,可以用相同的方法名.
参数不同:个数不同,类型不同,顺序不同;
java虚拟机会通过参数的不同来找到不同的方法.
只判断两个:是不是在同一个类且方法名是不是相同,然后参数是不是相同,与返回值的类型无关.
面向对象
面向对象编程就是利用对象来完成我们的目的.
public class 类名{
1.成员变量
2.成员方法
3.构造器
4.代码块
5.内部类
}
描述一些列事物的类叫做javabean类
带有main函数的类叫做测试类
面向对象三大特征:继承,多态,封装;
封装:告诉我们如果正确地去设置对象的属性和方法
对象代表什么,就封装相应的数据,并且提供数据对应的方法
private关键字:
权限修饰符,可以修饰成员,被修饰的部分只能在本类类名被访问
就近原则:
当局部变量和成员变量名字相同时,就会一句就近原则,谁离他近就用哪个变量.
如果要运用成员变量,外面就可以用this.来调用.
构造方法:构造器,构造函数(初始化对象)
构造方法要与类名相同,大小写也得一致,并且他没有返回值,每创建一个对象,构造方法就得调用一次.
如果没有定义构造方法,系统就会给出一个默认的无参的构造方法.
标准javabean类:
1.类名要见名知意.
2.成员变量使用private修饰
3.提供至少两个构造方法(无参,全参)
4.成员方法(每个成员变量的get与set)
快捷键 alt+insert或者alt + fn +insert
ptg构造javabean