文章目录
注释、标识符、关键字
注释
注释为了便于理解代码,书写注释是一个非常好的习惯。
- 单行注释
- 多行注释
- 文档注释
标识符
所有的标识符都应该以字母,美元符$,下划线开始
首字符之后可以是字母,美元符,下划线或数字的任何字符组合
不能使用关键字作为变量名或者方法名
标识符大小写敏感
合法标识符:
非法标识符:
可以使用中文命名,但一般不建议
String 王者荣耀=“最强王者”;是可以的
数据类型
强类型语言
要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用
缺点:安全高,速度低
弱类型语言
基本类型
1. 数值类型
整数类型
浮点类型
字符类型
2.boolean类型
//八大基本类型
//整数
int num1=10;//最常用
byte num2=20;
short num3=30;
long num4=30L;//long类型数字后面要加个L
//小数:浮点数
float num5=50.1F;//float类型数字后面要加个F
double num6=3.14159265659535215253;
//字符类型
char name='A';
//字符串 String不是关键字,类
String name1="中国";
//布尔值:是非
boolean flag=true;
//boolean flag=false;
引用类型
类
接口
数组
什么是字节
位bit:是计算机内部数据存储的最小单位
字节byte:是计算机中数据处理的基本单位,习惯上用B表示
1B(byte,字节)=8bit(位)
字符:是指计算机中使用的字母、数字、字和符号
1bit表示1位
1byte 一个字节 1B=8bit
1024B=1KB
1024KB=1M
1024M=1G
拓展
public class Demo03 {
public static void main(String[] args) {
// 整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;//八进制0
int i3=0x21;//十六进制0x 0~9 A~F 11~15
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("======================================================================================================================");
//====================================================================================
//浮点数拓展: 银行业务怎么表示? 钱
//BigDecimal 数学工具类
//====================================================================================
//float :有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f=0.1f; //0.1
double d=1.0/10; //0.1
System.out.println(f==d); //false
System.out.println(f);
System.out.println(d);
float d1=26515135513151135135f;
float d2=d1+1;
System.out.println(d1==d2);//true
//=====================================================================================================
//字符串拓展
//=====================================================================================================
char c1='a';
char c2='中';
System.out.println("======================================================================================================================");
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有的字符本质还是数字
//编码 Unicode表: (97=a 65=A) 2字节 65536长度
// U0000 UFFFF
char c3='\u0061';//十六进制 97 a
System.out.println(c3);
//转义字符
// \t 水平制表符 中间多个 tab 空格
// \n 换行
//...
System.out.println("Hello\tWorld");
}
}
/t 水平制表符 上文代码效果 Hello World
String sa=new String("hello world");
String sb=new String("hello world");
System.out.println(sa==sb);// 不相等
String sc="hello world";
String sd="hello world";
System.out.println(sc==sd);//相等
//对象 从内存分析
//布尔值拓展
Boolean flag=true;
if (flag==true){}//新手
if (flag){}//老手
// Less is more 代码要精简易读
类型转换
运算中,不同类型的数据要先转化为同一类型,然后在计算
强制类型转换
自动转换
int i=128;
byte b=(byte) i;//内存溢出
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(i);
System.out.println(b);
int j=126;
double b1=j;
System.out.println(j);
System.out.println(b1);
/*
注意点:
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 c='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
操作比较大的数 注意溢出问题
public class Demo06 {
public static void main(String[] args) {
//操作比较大的数 注意溢出问题
//JDK7 数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480,计算溢出
long total2=money*years;//默认为int,转换之前就已经存在问题了
long total3=money*((long)years); //解决 先把一个数转化为long
System.out.println(total3);
}
}