JAVA之java重学之01
文章目录
学习前期准备
改变背景图片
https://blog.csdn.net/weixin_48005879/article/details/107875716?
注意我更改了快捷键:格式化代码
jre(java runtime environment)是java程序的运行环境,包含jvm和运行所需要的核心类库(执行一个java程序)
jdk(java development kit)是java程序开发工具包,包含jre和一些开发工具。(写一个程序,编译,执行,从无到有时需要)
jvm:程序运行的核心。
一个程序先写代码(编译),编译(代码翻译成JVM认识的字节码) 再运行
java源程序 后缀为.java经过编译器(即为javac.exe在jdk中的bin路径下)执行后生成java字节码文件(后缀为.class)再交给jvm运行。
cmd命令:到其他盘C:(‘盘’+‘:’)
cls:清屏
向上箭头,显示上一次写入的命令,两次向上就是上上次写入的命令,再按向下就是上次的命令,可以以用向上向下命令挑选曾经写过的命令。
Windows中.exe的后缀可以不用写。
exit:退出小黑窗口
IDEA中的快捷键和常见操作
左右,上下分屏操作
在 IDEA开发java时, 如何在实例化一个类时,如何快速生一个变量名
Ctrl+Alt+V 自动生成变量名
shift + esc 关闭左侧目录
鼠标连点三下选中代码行
Alt+Shift+↑/↓ 整行代码上下移动
shift +enter 光标所在行位置下方插入一行空行。(光标可以在这行的任意位置)
f3 搜索当前代码界面的变量。
f2 跳到下一个错误代码处。
ctrl +f4 关闭当前代码窗口
F4打开刚才关闭的代码窗口
ctrl + 句号(英文) 打开,折叠方法。
alt +左右键 类界面快速切换,文件界面快速回到上一浏览界面
全局搜索快捷鍵
shift+ctrl+f(按鍵为英文状态时用)
可以搜注释,搜方法,什么都能搜
shift+f6 可以同时改同一方法的相同名称。
alt+insert 鼠标在包处可快速创建包,类等,在class处可快速创建get等方法。
psvm快速生成public static void main(String[] args){
}
sout快速生成System.out.println();
ctrl+shift+f10快速运行
alt+4将上次运行的结果再显示出来
ctrl+空格:自动补全
alt+回车:导入包,提示,代码修复
ctrl+x:删除光标所在行
ctrl+d:复制光标所在行
ctrl+alt+L:格式化代码
ctrl+/:注释或者取消注释(单行)
ctrl+shift+/:多行注释或取消
alt+insert:自动生成代码,tostring,get,set等方法
alt+shift+上下箭头:移动当前光标行代码
更多请点击下面链接
https://blog.csdn.net/Fanche_1989/article/details/105519284
settings->>editor->>font设置字体
settings->>keymap->>设置小图标点default copy(默认复制但也不会影响系统的快捷键,就是改一些快捷键其他快捷键不会变化)然后可以设置自己的快捷键了,也可以查看一些常用的快捷键。
close project 关闭项目,退出后可以选择其他项目
字节码被保存在项目文件夹的out文件里。
使用IDEA时结构化
project->>module->>package->>class
在这里插入图片描述
按图中的在改项目名时,也应该改module名
再添加module时
插入Module
可以直接open打开文件夹,但注意不能文件太大如1-34学生资料,但可以如打开其中一种的方式来用
快捷写法
for循环:
这样写快速生成
IDEA2020.3过期失效?看过来!!!
https://my.oschina.net/u/2898531/blog/4875848,按照文章走
进入学习
标识符
包名所有字母一律小写。类名接口名每个单词首字母大写。变量,方法名首单词首字母小写其余大写。常量所有字母大写,单词间用_下划线连接,构造方法名单词首写字母大写
类型
八大类型:byte,short,int,long,float,double,char,boolean
外加一字符串:String
方法
方法的定义:
1.方法不会自己执行,需要调用。
2.方法的顺序互相没有影响。
3.return 结束方法的执行,有返回值的一定有,无返回值的可以没有。一个方法可以有多个return,但只能有一个return被执行。
4.方法只能写在类中不能写在方法中。
定义: 修饰符 返回值 方法名称(参数列表){方法体}
如:public static void 小白白(int i){;};
例子:
package demo01;
public class test1 {
public static void main(String[] args) {
int a=2,b=3;
System.out.printf(String.valueOf(sum(a,b)));
}
public static int sum(int a,int b){
return a+b ;
}
}
// printf()中输出的是字符串型,sum返回的是int型,可以用String.valueof(想要转型的值)来转型`
方法调用的三种格式:
1.单独调用。sum(3,3);//方法();
2.打印调用。上面的例子
3.赋值调用:如上面加一个:int result=sum(3,3);
写方法时考虑三要素:
返回值类型:
方法名称:
参数列表:
例子:
`package demo01;
public class test2 {//判断两个数是否相等
public static void main(String[] args) {
System.out.println(isSame(10,20));
System.out.println(isSame(10,10));
}
public static boolean isSame(int a, int b) {//在写方法前思考
//返回值类型:boolean
//方法名称:isSame
//参数列表:int a,int b
//方一:
/*boolean same;
if (a==b){same=true;}
else same=false;
return same;*/
//方二
// boolean same= a==b; return same;
//方三
// boolean same= a==b?true:false; return same;
//方四(推荐)
return a==b;
}
}
false
true
方法的重载
定义:方法名称一样,参数列表不一样(参数类型不一样or 参数个数不一样or多个参数类型的顺序不一样)
好处:只需要记住一个方法名,就能实现多个相同功能。(简便,看println的源代码可以发现jdk大神写了多个println的重载)
注意:要进行方法的重载只与定义处的满足,与返回值类型无关,与参数名称无关。
例子:
package demo01;
import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type;
public class test4 {//介绍方法的重载(overload)
public static void main(String[] args) {
}
//不用方法重载时:
/* public static int sumTwo(int a,int b){
return a+b;
}
public static int sumThree(int a,int b,int c){
return a+b+c;
}
public static int sumfour(int a,int b,int c,int d){
return a+b+c+d;
}//方法命名困难或者不方便*/
//用方法重载时:1.方法名相同,参数个数不同
public static int sum(int a,int b){
return a+b;
}
public static int sum(int a,int b,int c){
return a+b;
}
public static int sum(int a,int b,int c,int d){
return a+b;
}
public static int sum(int a,int b,int c,int d,int e){
return a+b;
}
//2.方法名相同,参数个数相同,参数类型不相同
public static float sum(int a,float b){
return a+b;//float的范围大于int,此处返回值为int时会报错
}
public static float sum(float a,float b){
return a+b;
}
/*// 错误写法:方法重载与返回值无关
public static float sum(int a,int b){
return a+b;
}*/
}
实例:
package demo01;
public class test5 {//方法重载的实例
/*用方法重载验证两个int ,两个double,两个byte值是否相同*/
public static void main(String[] args) {
int a=13,b=12;
System.out.println(isSame(a,b));
System.out.println(isSame(12d,13d));//在数值后加d,f,l等可以转换为double,float,long型
System.out.println(isSame((byte) a,(byte) b));//(强制转换的类型)参数
}
public static boolean isSame(int a, int b) {
System.out.println("两个int值验证");
boolean same;
if (a == b) {
same = true;
} else
same = false;
return same;
}
public static boolean isSame(double a, double b) {
System.out.println("两个double值验证");
boolean same = a == b ? true : false;
return same;
}
public static boolean isSame(byte a, byte b) {
System.out.println("两个byte值验证");
return a == b;
}
}