创建新项目
接着会弹出 项目结构 窗口 (关掉)
右击src
注意:
打开项目结构
基础语法
psvm和sout
第一个代码
Java中的注释
单行注释//
多行注释/* /
文档注释/* */
1、 //好好学习
//天天向上
2、 /*
多行注释
多行注释
*/
3、 /** 文档注释
* @Description HelloJava
* @Author 阿董
*/
标识符
- 关键字
注意:
Java标识符由数字、字母、下划线_ 、美元符号$、或人民币符号¥组成
1.不能以数字开头
2.大小写敏感
3.不能使用Java关键字,但可以使用包含关键字,保留字的字符序列,例如:关键字为String ,标识符可以为MyString
4.不能有空格、@、#、+、-、/ 等符号,但是人名币符号¥可以且不限制位置
5.Java中标识符的长度没有限制
6.应该使用有意义的名称,达到见名知意的目的
数据类型
public class DataType {
public static void main(String[] args) {
byte num1 = 10;
short num2 = 20;
int num3 = 30; //最常用的
long num4 = 40L; //long定义的时候需要在数字的后面加上“L”,用来区分long类型
//浮点数类型
float num5 = 50.1f;//float占4个字节,float定义的时候需要在数字的后面加上”f“,用来区分float类型
double num6 = 60.1;//double占8个字节
//字符类型
char name1 = 'G'; //char占2个字节
char name2 ='董';// char name2 ='阿董';(错误)
//boolean类型
boolean flag1 = true;
boolean flag2 = false;
}
}
1B(byte字节)=8bit(字位)
数据类型拓展及面试题目
整数类型(进制)
二进制:0b开头
八进制:0开头
十进制:正常
十六进制:0x开头
public class Demo1 {
public static void main(String[] args) {
int i1 = 0b10;//二进制
int i2 = 10;//十进制
int i3 = 010;//八进制0
int i4 = 0x10;//十六进制0x
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
浮点数拓展
float f = 0.1f;
double d = 0.1;
System.out.println(f==d);//false
System.out.println(f);
System.out.println(d);
float d1 = 223232323232f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
float double 浮点数表示的字长是有限的且是离散的,并且存在舍入误差,结果只能是一个大约数
银行业务(钱)使用BigDecimal数学工具类表示
最好完全避免使用浮点数进行比较!(精度丢失)
字符拓展
Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
byte,short,char->int->long->float->double
高—>低强制转换;低—>高自动转换
运算中,不同类型的数据先转化为同一类型,然后进行运算
运算中,不同类型的数据先转化为同一类型,然后进行运算
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换,转换成数字
char c3 = '\u0061';
System.out.println(c3);//a
所有的字符本质是数字
Unicode编码占2字节,最多可表示65536位
97 = a 65 = A 20013 = 中
\u0061是Unicode的标准的表示方式(\u是转义字符)
转义字符:
System.out.println("阿董\t阿董");
System.out.println("阿董\n阿董");
字符串对比
String a = new String("我爱中国");
String b = new String("我爱中国");
System.out.println(a==b);//false,地址不同
//new一个内存就会创建一块空间(不管内容是否相同)
String a1 = "我爱中国";
String b1 = "我爱中国";
System.out.println(a1==b1);//true,指向同一个字符串池
原因:new一个内存就会创建一块空间(不管内容是否相同)
第二个保存在字符串常量池中
布尔值拓展
if(flag==true){}和if(flag){}相等
if本身会做一个判断是否为真的操作