Java基础
Idea
快捷键
Ctrl+Z:撤销
Ctrl+Shift+Z:重做
Ctrl+X:剪贴
Ctrl+C:复制
Ctrl+V:粘贴
Ctrl+Y:删除当前行
Ctrl+D:复制当前行
Ctrl+Shift+J:将选中的行合并成一行
Ctrl+N:查找类文件
Ctrl+Shift+N:查找文件
Ctrl+G:定位到文件某一行
Alt+向左箭头:返回上次光标位置
Alt+向右箭头:返回至后一次光标位置
Ctrl+Shift+Backspace:返回上次编辑位置
Ctrl+Shift+反斜杠:返回后一次编辑位置
Ctrl+B:定位至变量定义的位置
Ctrl+Alt+B:定位至选中类或者方法的具体实现
Ctrl+Shift+B:直接定位至光标所在变量的类型定义
Ctrl+U:直接定位至当前方法override或者implements的方法定义处
Ctrl+F12:显示当前文件的文件结构
Ctrl+Alt+F12:显示当前文件的路径,并可以方便的将相关父路径打开
Ctrl+H:显示当前类的继承层次
Ctrl+Shift+H:显示当前方法的继承层次
Ctrl+Alt+H:显示当前方法的调用层次
F2:定位至下一个错误处
Shift+F2:定位至前一个错误处
Ctrl+Alt+向上箭头:查找前一个变量共现的地方
Ctrl+Alt+向下箭头:查找下一个变量共现的地方
Ctrl+=:展开代码
Ctrl±:收缩代码
Ctrl+Alt+=:递归展开代码
Ctrl+Alt±:递归收缩代码
Ctrl+Shift+=:展开所有代码
Ctrl+Shift±:收缩所有代码
代码快捷键
psvm=public static void main(String[] args)
sout=System.out.println();
Ctrl+D:复制当前到下一行
Alt+insert 创建方法
Ctrl+H 查看类关系
Ctrl+Alt+T 创建类
注释
单行注释 //
//输出一个hellowrold!
多行注释
/*1111111111111
1111111111111
1111111111111
1111111111111
1111111111111*/
文档注释
//javaDoc:文档注释 /** */
/**
* @Description HelloWorld
* @Author Split
*/
## 标识符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MdiW9dAx-1635669757026)(D:\我的文档\桌面\Markdown\基本标识符.jpeg)]
所有的标识符都应该以字母(A-Z或者a-z),美元符号$,或者下划线(_)开始
首字符之后可以是字母(A-Z或者a-z),美元符号$,或者下划线(_)任何字符的组合
不能使用关键字或者变量名
大小写敏感
public class Demo01 {
public static void main(String[] args) {
String Ahello=“Split”;
String ahello=“Split”;
String 永劫无间=“陨星”;
System.out.println(永劫无间);
}
}
## 数据类型
所有变量都必须先定义后才能使用
### 字节
1bit表示一位
1Byte 表示一个字节 1B=8b
1024B=1KB
1024KB=1M
1024M=1G
1024G=1T
### 基本类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dXXflzkj-1635669757030)(D:\我的文档\桌面\Markdown\基本数据类型.jpg)]
public class Demon02 {
public static void main(String[] args) {
//八大数据类型
//整数
int num1=10;//最常用
byte num2=20;
short num3=40;
long num4=30l;// long类型要在数字后面加l
//小数
float num5 = 50.1f;// float类型要在数字后加f
double num6=3.1415926;
//字符
char name=‘何’;
//字母串,String不是关键字,是类
String namea = “Split”;
//布尔值
boolean flag= false;
//boolean flag=true;
}
}
### 类型拓展
import java.math.BigDecimal;
public class Demon03 {
public static void main(String[] args) {
//整数拓展 进制 二进制(0b) 十进制 八进制(0) 十六进制(0x)
int i=10;
int i1=010;
int i2=0x10;
int i3=0b10;
System.out.println(i2);
System.out.println("------------------------------------------------------");
//BigDecimal 数学工具类
//---------------------------------------------------------------------------
//浮点数拓展
//float 有限,离散 含入误差 大约 接近但不等于
//double
float f=0.1f;
double d=1.0/10;
System.out.println(fd);
float d1 =231313131313131313f;
float d2 =d1+1;
System.out.println(d1d2);
System.out.println("------------------------------------------------------");
//---------------------------------------------------------------------------
//字符拓展
char c1=‘a’;
char c2=‘中’;
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有的字符本质还是数字
//编码 Unicode 表:(97=a 65=A) 2字节 0-65536 Excel 2`16=65526
// U0000 UFFFF
char c3=’\u0061’;
System.out.println(c3); //a
//转义字符
// \t 制表符
// \n 换行
// ......
System.out.println("HEllo\twrold");
System.out.println("HEllo\nwrold");
System.out.println("------------------------------------------------------");
String sa= new String("hello wrold");
String sb= new String("hello wrold");
System.out.println(sa==sb);
String sc="hello wrold";
String sd="hello wrold";
System.out.println(sc==sd);
//对象 从内存分析
//布尔值扩展
boolean flag=true;
if(flag==true){} //新手
if(flag){} //老手
}
}
### 引用类型
### 类型转换
public class Demon05 {
public static void main(String[] args) {
int i= 128;
byte b=(byte) i; //内容溢出
// 强制转换 (类型)变量名 高到低
System.out.println(i);
System.out.println(b);
// 自动转换 (类型)变量名 低到高
int c=128;
double d=c;
System.out.println(c);
System.out.println(d);
/*注意点
1.不能将布尔类型进行转换
2.不能把对象类型转换成不相干的
3.把高容量的转换为低容量的时候,强制转换
4.转换的时候可能存在内容溢出,或者精度的问题
*/
System.out.println("-----------------------------------------------------");
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
System.out.println("-----------------------------------------------------");
char e='a';
int g=e+1;
System.out.println(g);
System.out.println((char)g);
}
}
#### 转换溢出
public class Demon06 {
public static void main(String[] args) {
//操作比较大的数时,注意溢出问题
//jdk7新特性 数字之间用下划线分割
int money=10_0000_0000;
int years=20;
int total =moneyyears;//计算时已经溢出
long total1 =moneyyears; //默认是int,转换之前已经存在问题
long total3= money*(long)years;
System.out.println(total3);
System.out.println(money);
System.out.println(total); //计算是溢出
}
}
## 进制
public class Demon03 {
public static void main(String[] args) {
//整数拓展 进制 二进制(0b) 十进制 八进制(0) 十六进制(0x)
int i=10;
int i1=010;
int i2=0x10;
int i3=0b10;
System.out.println(i2);
}
}
## 变量
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
public class Demon07 {
public static void main(String[] args) {
//int a,b,c;
//int a=1,b=2,c=3; //程序可读性
String name =“Spilt”;
char x=‘X’;
double p1=3.14;
}
}
### 变量作用域
#### 类变量
#### 实例变量
#### 局部变量
public class Demon08 { //类
//类变量 static
static double salary=2500;
// 属性,变量
//实例变量:从属于对象,如果不自行初始化,这个类型的默认值 0 0.0
//布尔值,默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量 在方法里面 必须声明和初始化值
int i=10;
//变量类型 变量名字=new Demon08();
Demon08 demon08=new Demon08();
System.out.println(demon08.age);
System.out.println(demon08.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){}
}
### 常量
public class Demon09 {
//final 为修饰符,不存在先后顺序
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
### 变量的命名规范
- 所有变量,方法,类名,见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写。
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线 MAX_VALUE
- 类名:首字母大写和驼峰原则 Man,GoodMan
- 方法名:首字母小写和驼峰原则 run(),runRun()
## 运算符
算术运算符:+, -, *, / ,%,++,--
赋值运算符:=
关系运算符 :>, < , >= ,<= , ==, != instanceof
逻辑运算符:&&,||,!
位运算符:&, |, ^, ~ , >> , << , >>>
条件运算符: ?
拓展赋值运算符:+= , -= ,*= , /=
package operator;
public class Demon01 {
public static void main(String[] args) {
// 二元运算符
//Ctrl+D:复制当前到下一行
int a=10;
int b=10;
int c=10;
int d=10;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
package operator;
public class Demon02 {
public static void main(String[] args) {
long a=12121211121212l;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d); //long
System.out.println(b+c+d); //Int
System.out.println(c+d); //Int
}
}
package operator;
public class Demon03 {
public static void main(String[] args) {
// 关系运算符返回的结果 正确错误 布尔值
int a=10;
int b=20;
int c=21;
System.out.println(c%a);
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
package operator;
public class Demon04 {
public static void main(String[] args) {
// ++ – 自增,自减 一元运算符
int a=3;
int b=a++; //执行代码之后,先给b赋值,再自增
//a++ a=a+1
//a++ a=a+1
int c=++a; //执行代码前,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 2*2*2 =8
double pow =Math.pow(2,3);
System.out.println(pow);
}
}
package operator;
public class Demon05 {
public static void main(String[] args) {
//逻辑运算符
// 与 (and) 或 (or) 非 (取反)
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(a&&b)); //逻辑与运算,两个变量为真,结果为真
System.out.println("a || b"+(a||b)); //逻辑或运算,两个变量有一个为真,结果为真
System.out.println("!(a&&b)"+!(a&&b)); //如果是真,则变为假,如果是假,则变为真
//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
package operator;
public class Demon06 {
public static void main(String[] args) {
/*
A=0011 1100
B=0000 1101
A&B 0000 1100
A|B 0011 1101
~B 1111 0010
A^B 0011 0001
2*8=2*2*2*2
<< 数字乘2 >>数字除2
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 0101 5
*/
System.out.println(2<<3);
}
}
package operator;
public class Demon07 {
public static void main(String[] args) {
int a =10;
int b =20;
a+=b; //a=a+b
a-=b; //a=a-b
System.out.println(a);
//字符串连接符 + ,String
System.out.println(a+b);
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}
package operator;
public class Demon08 {
public static void main(String[] args) {
// x ? y 😒
//如果x的值为true ,则结果为y,否则为z
int score =50;
String type=score<60?“不及格”:“及格”;
System.out.println(type);
}
}
## 包机制
定义包 package
导入包 import
## javaDoc
```java
package com.split.base;
/**
* @author split
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**
* @author split
* @param name
* @return
* @throws Exception
*/
public String text(String name) throws Exception{
return name;
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hwnS4d40-1635669757032)(D:\我的文档\我的图片\Screenshots\屏幕截图(2)].png)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrHsvvL6-1635669757035)(D:\我的文档\我的图片\Screenshots\屏幕截图(4)].png)