java新建空项目
步骤:
new->Project->Empty Project->Next
配置:
File->Module->java->Module SDK(选择安装的jdk)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-760dMivi-1646488311278)(C:\Users\大神林\AppData\Roaming\Typora\typora-user-images\1646448622669.png)]
File->Project Structure->下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tZPUs5hY-1646488311279)(C:\Users\大神林\AppData\Roaming\Typora\typora-user-images\1646448568795.png)]
java注释
更改注释字体颜色
步骤
Setings->Editor->Color Scheme->java->comments
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HcKkG1vZ-1646488311280)(C:\Users\大神林\AppData\Roaming\Typora\typora-user-images\1646449193150.png)]
单行注释
//我是注释
多行注释
/*我是多行注释
111
222*/
文档注释
/**我是文档注释
*/
标识符
1.标识符可以以字母,下划线,$符号命名,
2.java标识符大小写很敏感,
3.Java标识符不能与关键字重名
八大数据类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kSLd5HnB-1646488311280)(C:\Users\大神林\AppData\Roaming\Typora\typora-user-images\1646453655507.png)]
补充
//整数扩展:进制 八进制 0 十进制 十六进制0x
int i = 0;
int i1 = 010;//八进制
int i2 = 0x13;//十六进制
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
//浮点数扩展:银行业务怎么表示钱?
//BigDecimal 数学工具类 来表示
//float 有限 离散 舍入误差 大约 接近但不等于
float i3 = 1.2F;//1.2
double i4 = 12 / 10;//1.2
System.out.println(i3 == i4);//false
float i5 = 13223333222F;
float i6 = i5 + 1;
System.out.println(i5 == i6);//true
//所以最好完全使用浮点数来进行比较
//字符类扩展 所有的字符本身就是数字
char i7 = 'a';
char i8 = '中';
System.out.println((int) i7);
System.out.println((int) i8);//强制转换为int
//编码 :Unicode表 :(a=97,A=65) 2个字节 0-65536 Excel 也是2的16 次方 65536
//U0000 UFFFF
char i9 = '\u0062';
System.out.println(i9);//b
//转义字符
//\t 制表符 \n 换行 等等
System.out.println("hello\tworld");
//布尔值扩展:
boolean flag = true;
if (flag) {//等价于if(flag==true)
}
数据类型的转换
低--------------------------------->高
byte,short,char–>int,float–>double
强制转换类型 由高到低 比如 int 转换为byte 语法:(类型)变量名
自动转换类型 由低到高
int i=128;
byte i1=(byte)i;//强制转换(类型)变量名 由高到低
System.out.println(i);//128
System.out.println(i1);//-128内存会溢出,因为byte类型是0-127
byte i3=90;
int i4=i3;//自动转换 由低到高
System.out.println(i3);//90
System.out.println(i4);//90
char a1='a';
int b1=a1+1;
System.out.println(b1);//98
System.out.println((char) b1);//b
/*1.不能对布尔值进行转换
2.不能把对象转换为不相干的类型
3.在高容量转换为低容量的时候要进行强制转换
4.在转换的时候会出现内存溢出或者精度问题
* */
补充
//当操作比较大的数时候,注意溢出的问题
//JDK新特性 数字之间是可以用下划线分割的
int money=10_0000_0000;
int year=20;
System.out.println(money);//1000000000
int total1=money*year;
System.out.println(total1);//-1474836480 其实呢这个溢出是因为两个int相乘的时候结果默认已经是int类型了
long total2=money*year;
System.out.println(total2);//-1474836480
long total3=money*(long)year;//所以在乘的时候先把其中一个转换为long类型就可以了
System.out.println(total3);//2000000000
变量
public class demo04 {
//类变量
static double salary=2500;
//属性:变量
//实例变量:从属于对象,如果没有自行初始化,这个类型的默认值为0,0.0 boolean类型为false
//除了基本类型 其余的都是null
String name;
int age;
//主方法
public static void main(String[] args) {
//局部变量,必须声明和初始化值
int n=10;
System.out.println(n);
demo04 demo =new demo04();//变量类型 变量名字=new Demo04();
System.out.println(demo.age);//0
System.out.println(demo.name);//null
System.out.println(salary);//2500
}
}
常量
public class demo05 {
//常量 关键字final和static可以互换位置,因为都是修饰符 不区分顺序
final static double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
- 所有的变量,类名,方法都要见名知意
- 类成员变量:首字母小写和驼峰原则 lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线 MAX_VALUE
- 类名:首字母大写和驼峰原则 Man
- 方法名:首字母小写和驼峰原则 man(),runMan()
运算符
long a=112223344L;
int b=10;
short c=5;
byte d=2;
//只要有long类型计算会是long类型,其余的为int类型
System.out.println(a+b+c+d);//112223361 long类型
System.out.println(b+c+d);//17 int 类型
System.out.println(c+d);//7 int 类型
//幂运算
double pow =Math.pow(2,3);//2^3=8.0
逻辑运算符
//逻辑运算符
public static void main(String[] args) {
//与 and 或 or 非 取反
boolean a=true;
boolean b=false;
System.out.println("a&&b :"+(a&&b));//两个变量为真才为true
System.out.println("a||b :"+(a||b));//两个只要有一个true结果就为true
System.out.println("!(a&&b) :"+!(a&&b));//结果与括号的相反
}
// 短路运算
int d=5;
boolean c=(d>5)&&(d++<7);//当程序执行到d>5时,结果为false 后面的d++就不会执行了
System.out.println(d);//5
System.out.println(c);//false
位运算
/*位运算
A=0010 1100
B=0011 1001
A&B=0010 1000 两个为1才为1
A|B=0011 1101 两个为0才为0
A^B=0001 0101 两个相同为0,不相同为1(逆否)
~B=1100 0110 取反
面试题:问2*8怎么样计算最快?
<< *2 左移运算符
>> /2 右移运算符
0000 0000 0
0000 0001 1
0000 0010 2 当0000 0010 往左边移动3位时,得到了0001 0000=16
0000 0011 3
0000 0100 4
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8
0001 0000 16
System.out.println( 2<< 3);//16
字符串连接符
//面试题:问下面输出为什么是这样?
//字符串连接符 +
int a=10;
int b=20;
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
//因为当字符串在前面 a+b会进行拼接,字符串在后面 a+b正常运算 ("")空字符串
三目运算符
//三目运算符
//x ? y : z 如果x为true 结果为 y 否则为z
int score =59;
String type= score>60?"及格":"不及格";
System.out.println(type);//不及格