注释
- Java中的注释有三种
- 单行注释
- 多行注释
- 文档注释
修改注释颜色
要先 command ,(mac专用快捷键)调用出系统设置
关键字
关键字
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
标识符
Java 所有的组成部分都需要名字.类名、变量名以及方法名都被称为标识符
标识符注意点
- 所有的标识符都应该以字母(A-Z或者a-z),美元($)、或者下划线(_)开始
- 首字母之后可以是字母(A-Z或者a-z),美元($)、或者下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例 : age、$salary、_value、_1_value
- 非法标识符举例 : 123abc、-salary、#abc
- 可以使用中文命名,但是一般不建议去使用,也不建议使用拼音
数据类型
强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定以后才能使用
弱类型语言
Java的数据类型分为两大类
- 基本类型 (primitive type)
- 引用类型 (reference type)
public class demo {
public static void main(String[] args) {
//整数
int num1 = 10; // 最常用
byte num2 = 30;
short num3 = 30;
long num4 = 30L; //Long类型要在数字后面加L
//小数:浮点数
float num5 = 50.1F; //float类型要在数字后面加个F
double num6 = 3.14159265358979;
// 字符
char name = '石'; //只能填一个字符 例如 'A' 或 '中'
//布尔值 是非
boolean flag = true;
// boolean flag = false;
}
}
什么是字节?
- 位(bit) : 是计算机 内部数据 存储的最小单位, 11001100是一个八位二进制数.
- 字节(byte) : 是计算机中 数据处理 的基本单位, 习惯上用大写B来表示
- 1B(byte, 字节) = 8bit ( 位 )
- 字符 : 是指计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节 1 B = 8b
- 1024B = 1KB
- 1024KB = 1M
- 1024M = 1G
数据类型扩展
public class demo {
public static void main(String[] args) {
//整数扩展 进制: 二进制0b 十进制 八进制0 十六进制0x
int i = 10; //十进制
int i2 = 010; // 八进制
int i3 = 0x10; // 十六进制16 0-9 A-F
// 分别打印出来看看对应的十进制数字是多少
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=================================");
//浮点数扩展? 银行业务怎么表示?
//用BigDecimal 数学工具类表示
//===========================================
// float 离散 有限 舍入误差 大约 接近但不等于
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
//判断f是否等于d
System.out.println(f == d); //false
//输出f
System.out.println(f);
//输出d
System.out.println(d);
System.out.println("=================================");
//==============================
//字符拓展
//所有的字符本质还是数字
//===============================
char c1 = 'a';
char c2 = '中';
System.out.println(c1); // a
System.out.println((int)c1); //97
System.out.println(c2); // 中
System.out.println((int)c2); // 20013
}
}
类型转换
由于Java是强数据类型,所以要进行有些运算的时候,需要用到类型转换
运算中,不同类型的数据先转化为同一类型,然后进行运算
Java类型转换由低到高的排序
低 ------------------------------------------------------------------------> 高
byte、short、char ---> int ---> long ---> float ---> double
Java数据类型转换分为2种
强制转换(显式转换)
语法格式 : (需要转换成的的类型) 变量名
public class demo {
private int id;
public static void main(String[] args) {
int i = 128;
//强制转换: (类型)变量名 高 ---> 低
byte b = (byte) i;
System.out.println(i);
//会造成内存溢出,byte的范围是-128-127; i=128已经超出byte的范围
System.out.println(b); // -128
自动类型转换(隐式转换)
转换类型由低到高,会自动进行转换
public class demo {
private int id;
public static void main(String[] args) {
//自动转换 低---> 高
// double 转换类型比int高, 转换类型由低到高,会自动进行转换
int num = 128;
double double_num = num;
System.out.println(num);
System.out.println(double_num);
}
}
类型转换注意点
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 把高转换类型转换为低转换类型称为强制转换(显式转换)的时候,可能会出现内存溢出或精度问题
- 操作数比较大的时候,注意溢出问题
-
public class demo { private int id; public static void main(String[] args) { //操作数比较大的时候,注意溢出问题 int money = 10_0000_0000; int years = 20; int total = money * years; // total结果为 -1474836480,与实际结果不符 System.out.println(total); System.out.println("=========================="); //===================================== long total2 = money * years; // total结果为 -1474836480,与实际结果不符。 // 原因: money * years默认是int型,但是这个结果已经超出int的范围, // 所以是在把money * years的结果赋值给total2之前就已经存在问题了 System.out.println(total2); System.out.println("=========================="); //===================================== //解决方案: 先把一个数转换为long型。结果就会自动转换为long型 long total3 = money * ((long)years); System.out.println(total3); } }