完整教程: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,后面不跟具体的数据。

方法的重载

在同一个类中,定义了多个同名的方法,这些同名的方法具有同名的功能。

每个方法具有不同的参数类型或参数个数,这些同名的方法就构成了重载关系。

简单记:同一个类中,方法名相同,参数不同的方法。与返回值无关。

参数不同:个数不同,类型不同,顺序不同。

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

posted @ 2025-09-07 14:24  yjbjingcha  阅读(9)  评论(0)    收藏  举报