一、变量
1、什么是变量
变量的定义是: 用来命名一个数据的标识符
int year = 1949;
int 是数据类型,表示是整数
year 是一个标识符
= 是赋值操作符
1949 是一个数字类型的值
; 表示该行结束
2、变量类型(见上一章)
3、字面值
给基本类型的变量赋值的方式叫做 字面值,如下所例:
float hp = 500f;
int armor = 50;
整型
long val = 26L; //以L结尾的字面值表示long型
int decVal = 26; //默认就是int型
int hexVal = 0x1a; //16进制
int oxVal = 032; //8进制
int binVal = 0b11010; //2进制
浮点型
float f1 = 123.4F;// 以F结尾的字面值表示float类型
double d1 = 123.4;// 默认就是double类型
double d2 = 1.234e2;// 科学计数法表示double
字符和字符串
String name = "盖伦";
char a= 'c';
//以下是转义字符
char tab = '\t'; //制表符
char carriageReturn = '\r'; //回车
char newLine = '\n'; //换行
char doubleQuote = '\"'; //双引号
char singleQuote = '\''; //单引号
char backslash = '\\'; //反斜杠
4、类型转换
规则:从小到大自动转,从大到小要强转
byte b = 5;
int i1 = 10;
int i2 = 300;
b = (byte) i1;
//因为i1的值是在byte范围之内,所以即便进行强制转换
//最后得到的值,也是10
System.out.println(b);
//因为i2的值是在byte范围之外,所以就会按照byte的长度进行截取
//i2的值是300,其对应的二进制数是 100101100
//按照byte的长度8位进行截取后,其值为 00101100 即44
b =(byte) i2;
System.out.println(b);
//查看一个整数对应的二进制的方法:
System.out.println(Integer.toBinaryString(i2));
5、命名规则(见上一章属性)
6、作用域
(1)声明在类下面的变量,叫做字段 或者属性、成员变量、Field
其作用域就是从其声明的位置开始的整个类
(2)声明在方法上的变量,叫做参数
参数的作用域即为该方法内的所有代码
(3)声明在方法内的变量,叫做局部变量
其作用域在声明开始的位置,到其所处于的块结束位置
7、变量表达式与变量块
以 ; 结尾的一段代码,即为一个表达式
从 { 开始 到对应的 } 结束,即一个块
二、操作符
1.操作符类型
(1)算数操作符 + - * / %(取余数,又叫取模) ++ --(自增、自减)
i++; 先取值,再运算
++i; 先运算,再取值
(2)关系操作符 > >= < <= == !=
(3)逻辑运算符 &(长路与) &&(短路与)|(长路或) ||(短路或)!(取反)^(异或)
长路与:两侧都会被运算
短路与:只要第一个是false,第二个就不进行运算了
长路或: 两侧都会被运算
短路或 :只要第一个是true的,第二个就不进行运算了
(4)位操作符 & | ~ ^ >> << (带符号移位)>>> <<<(无符号移位)
位操作符在实际工作中用的并不常见
通过Integer.toBinaryString() 方法,将一个十进制整数转换为一个二进制字符串
(5)赋值操作符 =,+=,-= , *= , /= , %= , &= , |= , ^= , >>= , >>>=
(6)三元操作符
表达式 ? 值1 : 值2
如果表达式为真 返回值1
如果表达式为假 返回值2
int k = i < j ? 99 : 88;
// 相当于
if (i < j) {
k = 99;
} else {
k = 88;
}
2.Scanner类
注意: 使用Scanner类,需要在最前面加上 import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
//读取整数
int a = s.nextInt();
System.out.println("第一个整数:"+a);
//读取浮点数
float b = s.nextFloat();
System.out.println("读取的浮点数的值是:"+b);
//读取字符串
String c = s.nextLine();
String d = s.nextLine();
System.out.println("读取的字符串是:"+d);
}
}
注意:如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读取回车换行"\r\n".
所以,如果需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串