1.关键字与保留字
关键字:
被赋予特殊含义,用作专门用途的字符串(单词),关键字中所有字母都为小写。
保留字:
现在 java 版本未使用,但以后可能会作为关键字使用。
2.标识符(java对各种变量、方法和类命名的字符序列)
凡是自己可以起名字的地方都叫标识符!
- 规则一定得遵守,不遵守时编译会报错。
- 规范不遵守,编译不会报错,但是为了增强代码可读性,通常需要遵守命名规范。
3.变量
注意:
- 使用变量必须先声明,即定义它的数据类型和数据名。
- 变量只在定义它的一对{}内有效,且不能重复定义同一变量名。
变量可以先声明再赋值也可以声明和赋值同时进行(更方便)。
注意:字符串不属于基本数据类型,而属于引用数据类型。
3.1 基本数据类型(8种)
- java 的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’,不加后缀自动存储为 int 类型。
- java 程序中变量通常声明为 int 型,除非不足以表示较大的数,才使用 long。
- float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
- double:双精度,精度是 float 的两倍。通常采用此类型。
- Java 的浮点型常量默认为 double 型,声明 float 型常量,须后加‘f’或‘F’,不加后缀编译不通过,会报错。
注意: - 比较常用的转义字符是 “\n” 和 “\t” 。
- 需要记住在ASCII码中 A = 65, a = 97 。
- 一般想在 System.out.println() 语句中输出转义字符,只需要在转义字符前面再加一个 "\"即可,即
System.out.println("我学习java很快乐\\n你呢?");
3.2 基本数据类型转换(7种)
- byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
- 此时的 容量大小指的是,表示的数值的范围大小,而不是数据类型占用内存字节的大小。比如:float 的容量比 long 的容量要大。
- 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。
- 整型数据做运算时 + 表示加法运算,涉及到字符串运算时, + 表示连接运算。
3.3. 强制类型转换
强制类型转换:
- 自动类型提升运算的逆运算
- 需要使用强制转换符:()
- 强制类型转换可能会有精度损失
任意类型数据和字符串做运算都会变为字符串,下面是测试程序。
class StringTest1
{
public static void main(String[] args) {
int no = 10;
String str = "abcdef";
String str1 = str + "xyz" + no;
str1 = str1 + "123";
char c = '国';
double pi = 3.1416;
str1 = str1 + pi;
boolean b = false;
str1 = str1 + b;
str1 = str1 + c;
System.out.println("str1 = " + str1);
}
}
/*
1、String属于引用数据类型
2、声明String类型变量时使用一对“”,双引号内可以放置0-任意字符,也就是空字符串也可以编译通过
3、String可以和8种数据类型做运算,且运算只能是连接运算+,结果仍然是String类型。
*/
class StringTest
{
public static void main(String[] args)
{
String s1="";
System.out.println(s1);
int number = 10086;
String numberStr = "学号:";
String info = numberStr + number;//+ :连接运算
System.out.println(info);
//System.out.println("我学习java很快乐\\n你呢?");
//**********************练习i************************
char c = 'a'; //a = 97,A = 65
int num = 10;
String str = "hello";
System.out.println(c + num + str); //107hello,前面两个先做加法运算,后面做连接运算
System.out.println(c + str + num); //ahello10--string,前后两个➕都是连接运算
System.out.println(c + (num + str)); //a10hello,括号内连接运算变成字符串再与括号外面做连接运算
System.out.println((c + num) + str); //同1
System.out.println(str + num + c); //hello10a
//练习2
System.out.println("* *");
System.out.println('*' + '\t' + '*'); //加法运算变为int型
System.out.println('*' + "\t" + '*'); //连接运算
System.out.println('*' + '\t' + "*"); //先加法运算后连接运算
System.out.println('*' + ('\t' + "*")); //连接运算
//String str1 = 123; //编译不通过,必须加“”
String str1 = 123 + "";
System.out.println(str1); //"123"
//int num1 = int(str1); //编译不通过,不能进行强制类型转换
int num1 = Integer.parseInt(str1);
System.out.println(num1); //123,int类型
}
}
(1)(2)(4)java 默认存储数据的类型是 int 类型,前三种数据类型做运算最后结果都为 int 类型,所以不能用数字和 short 类型做运算之后还赋值给一个 short 类型或者 byte 类型的变量。
3.4 变量的进制
- 因为有补码的形式,所以计算机只用做加法而不用做减法。
- 计算机底层都以补码的方式来存储数据。
- 从补码计算原码的时候可以取反再+1,也可以-1再取反。
- 正数的原码,反码,补码 都是一样的。