完整教程:java学习
教程内容来源于黑马程序员--------本篇内容适用于c/c++基础的同学参考 每日更新内容
ASCII表

cmd

qq的路径记录在环境变量
将可执行文件路径加入path,可以直接输入可执行(qq.exe名)打开
java基础学习
运行java程序



编译:javac是JDK编译文件,通过这个工具,将当前精下HelloWorld.java编译为class文件
运行:java是JDK工具,运行代码,运行当前路径下的HelloWorld.class文件,运行时不加后缀名
手动配置环境变量

javac 编译工具
java 运行工具
jdb 调试工具
jhat 内存分析工具
JDK(开发工具)> JRE(运行环境)
JVM(java程序运行的地方) 核心类库 开发工具(javac,java,jdb,jhat...)
IDEA快捷键
ctrl+alt+L 自动格式化代码
数组名.fori 自动生成遍历数组的for循环

基础概念
字面量

数据在程序中书写格式
注意:null不能直接打印,要打印只能以字符串形式打印System.out.println("null");
制表符:\t
打印时将前面字符串长度补齐到8或者8的整数倍,最少补1个空格,最多补8个空格

打印
System.out.println("abc");//先打印abc,再进行换行
System.out.print("abc");//只打印abc,不换行
System.out.println();//不打印任何数据,只做换行处理
变量
数据类型 变量名=数据值;
整数:int
浮点数:double
注意:变量使用之前一定要赋值,不要把赋值分开写
像素
像素:(红,绿,蓝)即RGB
十进制(255,255,255)
十六进制(FFFFFF)
数据类型
基本数据类型:
注意:定义long类型的变量需要再数值后面加一个L或者l作为后缀
定义float类型的变量数值后加F或者f
double>float>long>int>short>byte
引用数据类型
输入

运算符
注意:代码中,如果有小数参与计算,结果可能是不精确的
整数参与计算,结果是整数
小数参与运算,结果可能是不准确的
注意:数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算
1.隐式转换(自动类型提升):取值范围小的数值->取值范围大的数值
2.显示转换:取值范围大的数值->取值范围小的数值
byte short char 三种类型的数据在运算时,都先提升为int,然后再运算
取值范围小的,和取值范围大的运算,小的先提升为大的,再运算
强制转换
如果把一个取值范围大的数值,赋值给取值范围小的变量,是不允许赋值的。如果一定要这么做需要加入强制转换
格式:目标数据类型 变量名=(目标数据类型)被强制的数据;
int a=300;
byte b=(byte) a;
byte a=100;
byte b=200;
byte c=byte(a+b);//56 结果发生错误,因为转换的数据过大
算术运算符
字符的+操作
1.当“+”操作中出现字符串时,这个“+”是字符串(不是字符)连接符,而不是算术运算符,会将前后的数据进行拼接,产生一个新的字符串
2.连续进行“+”操作时,从左往右逐个执行
System.out.println(3.7+"abc");//"3.7abc"
System.ou.println(1+2+"abc"+2+1);//"3abc21"
字符+字符/字符+数字,会把字符通过ASCII码表查询到对应的数字进行运算
System.out.println(1+'a');//98
System.out.println('a'+"abc");//"aabc"
自增自减运算符
int a=10;
int b=a++;//10 先用后加
int a=10;
int b=++a;//11 先加后用
赋值运算符
+=、-=、*=、、=、%= 底层都隐含了一个强制类型转换
short s=1;
s+=1;//s=(short)(s+1)
int a=10;
int b=20;
a+=b;//a=int(a+b)
短路逻辑运算符(&&、||)

注意:&& 短路逻辑运算具有短路效果
当左边的表达式能确定最终的结果,那么右边就不会参与运行了
注意:&|,无论左边true false,右边都要执行
&& ||,如果左边能确定整个表达式,右边不执行
&&,左边false,右边不管真假,整个表达式的结果一定是false
int a=10;
int b=10;
boolean result= ++a<5 && ++b<5;
System.ou.println(result);//false
System.ou.println(a);//11
System.ou.println(b);//10 当左边已经确定为假时,右边就不需要再进行运算了
int a=10;
int b=10;
boolean result= ++a<5 & ++b<5;
System.ou.println(result);//false
System.ou.println(a);//11
System.ou.println(b);//11
运算符优先级


判断和循环
switch新特性 JDK12
int num=1;
switch(num){
case 1->{
System.out.println("一");
}
case 2->{
System.out.println("二");
}
case 3->{
System.out.println("三");
}
default ->{
System.out.println("没有这种选项");
}
}
int num=1;
switch(num){
case 1->System.out.println("一");
case 2->System.out.println("二");
case 3->System.out.println("三");
default->System.out.println("没有这种选项");
}

生成随机数


数组
格式一:数据类型[ ] 数组名 示例:int [ ] array
格式二:数据类型 数组名 [ ] 示例:int array [ ]
静态初始化:就是为数组容器开辟空间,并将数据存入容器
完整格式:数据类型[ ] 数组名=new 数据类型[ ]{元素1,元素2,元素3.....};
示例:int [ ] arry=new int[]{11,22,33};
//定义数组存储4个学生的年龄
int[ ] arr1=new int[ ]{11,12,13,14};
int[ ] arr1={11,12,13,14};//简写
System.out.println(arr1);//数组容器在内存中的地址值 [D@776ec8df
//[:表示当前一个数组
//D:表示当前数组里面的元素都是double类型的 或者 I:int类型
//@:间隔符号(固定格式)
//776ec8df:才是数组真正的地址值

属性
长度:arr.length
动态初始化
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:数组类型[ ] 数组=new 数据类型[数组长度];
示例:int[ ]arr=new int[3];

内存图




方法
方法定义
public static void 方法名(){
方法体(就是打包起来的代码);
}
//示例:
public static playGame(){
七个打印语句;
}
方法调用
方法名();
//示例: playGame();
带参数的方法
格式:public static void 方法名(参数){...}
调用:方法名(参数);
//示例:
public static void method(int number){...}
带返回值的方法
public static 返回值类型 方法名(参数){
方法体;
return 返回值;
}
//调用:
//1.直接调用 方法名(实参);
//2.复制调用 整数类型 变量名=方法名(实参);
//3.输出调用 System.out.println(方法名(实参));
注意:方法与方法之间是平级关系,不能互相嵌套定义(不能将一个方法的定义卸载另一个方法定义的里面)
方法的返回值类型为void,表示方法没有返回值。没有返回值的方法可以省略return语句不写。如果编写return,后面不跟具体的数据。
方法的重载
在同一个类中,定义了多个同名的方法,这些同名的方法具有同名的功能。
每个方法具有不同的参数类型或参数个数,这些同名的方法就构成了重载关系。
简单记:同一个类中,方法名相同,参数不同的方法。与返回值无关。
参数不同:个数不同,类型不同,顺序不同。


基本数据类型和引用数据类型





浙公网安备 33010602011771号