基础语法
注释、标识符、关键字
IDEA注释的修改
注释
- 单行注释 //
- 多行注释/*
*/
快捷键: Ctrl+Shift+/
数据类型
八大数类型
- int(4字节整数)
- byte(1字节)
- shot(2字节)
- long(8字节整数)
- float(4字节浮点数)
- double(8字节浮点数)
- char 字符类型
- boolean(1位)
1byte(字节) = 8 bit(位)
每个数据类型都有对应的类(int --> Integer)。
浮点数是有限离散的,存在舍入误差,接近但不等于。
所以不用浮点数进行比较!
银行业务采用BigDecimaL 数学工具类来表示。
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
/**
* @author LingTeng
*/
//单行注释
/*
多行注释
多行注释
*/
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world");
//数据类型
//整数 二进制0b 十进制 八进制0 16进制0x
int n1 = 10;//10
int n2 = 0b10;//2
int n3 = 010;//8
int n4 = 0x10;//16
System.out.println(n1+"/"+n2+"/"+n3+"/"+n4);
short num = 1000;
byte num0 = 100;
int num1 = 10;
long num2 = 122L;//long类型要在数据末尾加L。
//浮点数
float num3 = 1.1f;//float类型要在数据末尾加f。
double num4 = 3.14;
//字符
char c = 'A';
//boolean
boolean flag = true;
System.out.println(num3);
System.out.println("==============");
//浮点数拓展
float f1 = 0.3f;
double d1 = 0.3;
System.out.println(f1==d1);
float f2 = 3.14159232543543523235443225f;
float f3 = f2 + 1;
System.out.println(f2==f3);
//不能用浮点数比较,银行问题采用BigDecimaL类
System.out.println("==============");
//字符串拓展
char c1 = 'c';
char c2 = '中';
System.out.println((int)c1);
System.out.println((int)c2);//(int)表示强制转换
//unicode 编码 u0000-uFFFF,0-65536
char c3 = '\u0061';
// \ u为转义字符表示以unicode赋值
System.out.println(c3);
System.out.println("==============");
String s1 = new String("ling");//新建一个对象
String s2 = new String("ling");
System.out.println(s1==s2);
//变量由 ID;值;类型组成。
String s3 = "ling";
String s4 = "ling";
System.out.println(s3==s4);
}
}
引用类型
- 类(String不是数据类型,是一个类)
- 接口
- 数组
类型转换
运算中,不同的数据类型先转换在运算,转换由位数低–>高;整数–>小数。
- 不能对Boolean类型进行转换
- 不能把对象类型转换成不相干的类型
- 在高容器(double)向低容器类型进行转换时,要强制转换
- 转换的时候需要考虑内存溢出,或者精度问题
import java.sql.SQLOutput;
//类型转换
public class type {
public static void main(String[] args) {
//高容器-->低容器 强转
long l = 10L;//采用大写L适为了便于区分l和1。
int i1 = (int)l;
System.out.println(i1);
//低容器-->高容器
int i = 10;
double l1 = i;
System.out.println(l1);
char c = 'a';
System.out.println(c+1);
System.out.println((char)(c+1));
//精度丢失
System.out.println((int)37.9);//输出37
System.out.println((int)-99.1);//输出-99
//内存溢出
int money = 100_000_000;//JDK7新特性可以用_对数字进行分割。
int year = 200;
long s = year * money;
System.out.println(s);
long s1 = year * ((long)money);//先转型在运算
System.out.println(s1);
long s2 = (long)(year * money);//先运算在转型
System.out.println(s2);
}
}
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UBj4UB5e-1621528611646)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210520235922109.png)
变量、常量
变量作用域![在这里插入图片描述](https://img-blog.csdnimg.cn/20210521003909552.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzA2NzAw,size_16,color_FFFFFF,t_70#pic_center)
- 类变量
- 实例变量
- 局部变量
public class Demo02 {
//static修饰类变量,静态变量不要新建对象就可以使用
static int i;
//final修饰常量,不会改变,一般用大写字母表示
//修饰符 类型 变量名
static final double PI = 3.14;
//实例变量从属于对象,可以不用初始化,默认值时0/null/false;使用时需要新建对象
double salary = 10;
boolean flag;
public static void main(String[] args) {
//局部变量,仅在方法内部可用,必须要初始化
int i = 10;
System.out.println(i);
//新建对象
Demo02 demo = new Demo02();
demo.add();
System.out.println(demo.salary);
System.out.println(demo.flag);
System.out.println(PI);
}
//方法
public void add(){
}
}
命名规则
- 所有变量、方法、类名:见名知意
- 类成员变量遵循首字母小写驼峰规则
- 局部变量遵循首字母小写驼峰规则
- 常量全部大写用_分割
- 类名首字母大写驼峰规则
- 方法名首字母小写驼峰规则