注释、标识符、关键字
注释
-
三种注释类型
-
单行注释:// 注释内容
-
多行注释:/* 注释内容 */
-
文档注释:/** 注释内容 */
-
标识符
-
关键字
Java所有的组成部分都需要自己的名字。类名、变量名、以及方法名都被称为标识符
标识符注意点
-
所有的标识符都应该以字母(A-Z或a-z)、美元符($)、或者下划线(_)开始
-
首字符之后可以是字母(A-Z或a-z)、美元符($)、下划线(_)数字的任何字符组合
-
\textcolor{red}{不能使用关键字作为变量名或方法名}
-
合法标识符是大小写大小写敏感
-
合法标识符举例:age、$salary、_value、__1_value
-
非法标识符举例:123abc、-salary、#abc
-
可以使用中文命名,但是一般不建议这样使用
-
数据类型
-
强类型语言
-
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
-
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型(primitive type)
-
引用类型(reference type)
-
-
什么是字节
-
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数
-
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
-
1B(byte,字节)=8bit(位)
-
字符:是指计算机中使用字母、数字、字和符号
1bit表示1位
1Byte表示1个字节 1B=8b
1024B=1KB
1024KB=1M
1024M=1G
public class Student { public static void main(String[] args) { //八大基本数据类型 //整数 int num1 = 10;//最常用 byte num2 = 20; short num3 = 30; long num4 = 40L;//long类型要在数字后面加个L //小数:浮点数 float num5 = 50.1F;//float类型要在数字后加F double num6 = 3.141592653589793238462643; //字符 char name = 'A'; //字符串,String不是关键字,是类 String name1 = "中国"; //布尔值:是、非 boolean flag = true; boolean flag1 = false; } }
整数拓展:
public class Student { public static void main(String[] args) { //整数拓展:进制:二进制0b 十进制 八进制0 十六进制0x int i = 10; int i2 = 010;//八进制0 int i3 = 0x10;//十六进制0x 0~9 A~F 16 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 System.out.println(f==d); //false System.out.println(f); System.out.println(d);
字符拓展:
//字符拓展 char c1 = 'a'; char c2 = '中'; System.out.println(c1); System.out.println((int)c1);//强制转换 将字符转换为数字 System.out.println(c2); System.out.println((int)c2);//强制转换 //所有的字符本质还是数字 //编码 Unicode 表:(97=a 65=A) 2字节 0~65536 char c3 = '\u0061'; System.out.println(c3); //转义字符 //\t 制表符 //\n 换行 System.out.println("Hello\nWorld!");
布尔值拓展:
//布尔值扩展 boolean flag = true; if (flag==true){} //新手 if (flag){} //老手 //if (flag){} 和if (flag==true){} 表示的意思一样
类型转换
强制转换:(类型)变量名 高——低(的转换)
-
由于java是强类型语言,所以要进行有些运算的时候需要用到类型转换。
-
运算中不同类型的数据转化为同一类型,然后进行运算。
优先级
-
自动转换
public class Demo02 { public static void main(String[] args) { int i = 128; byte b = (byte)i;//i是整型,需强制类型转换 //因为byte范围是-128-127,而i=128,内存溢出 //强制转换:(类型)变量名 高——低(的转换) System.out.println(i); System.out.println(b); //自动转换:低——高 int i2 = 128; double b2 = i; System.out.println(i2); System.out.println(b2); /* 注意: 1.不能对boolean进行转换 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); } }
注意: 1.不能对boolean进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的时候,强制转换 4.转换的时候可能存在内存溢出,或者精度问题!
public class Demo03 { public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题 //JDK新特性,数字之间可以用下划线分割 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(total); System.out.println(total2); System.out.println(total3); //20000000000 } }