变量

  • 基本概念

    用于指代内存中的一块存储区域。
    变量必须有特定的数据类型,不同的数据类型表示不同的数据存储结构。
    每个变量都有自己的作用范围,叫作用域。

  • 声明和初始化

Java是强类型语言,变量必须先声明后使用。Java变量在使用前必须初始化,也就是赋以确定的初值。

1
2
3
语法:
数据类型 变量名 = 初始值 ;
数据类型 变量名1 = 初始值 , 变量名2 = 初始值 ,... , 变量名N = 初始值 ;
  • 变量的输出

    语法:System.out.println(“原样字符”+变量名+“原样字符”+… +变量名+…);

1
2
3
4
//设两个整数变量存储1和2,输出2数之和,格式“1+2=3”
int a=1,b=2;
int sum = a + b;
System.out.println( a+ "+" +b+ "=" +sum );
  • 变量的输入
1
2
3
4
5
6
7
8
9
10
//导入输入类型
import java.util.Scanner;
//创建输入对象
Scanner 名 = new Scanner(Sysatem.in);
//调用输入方法实现输入
名.nextInt(); //输入整数
名.nextFloat(); //输入单精度小数
名.nextDouble(); //输入双精度小数
名.next(); //输入字符串,不会吸取字符前/后的空格/Tab键,只吸取字符,直到遇到空格/Tab键/回车截止吸取
名.nextLine(); //输入字符串,吸取字符前后的空格/Tab键,回车键截止
  • 标识符命名规则
1
2
3
4
5
6
7
变量名由大写字母A~Z、小写字母a~z、数字0~9、_和$符组成
变量名不能以数字做开头
变量名应避免与关键字重名
变量名要见名知意
变量名支持中文,但不推荐使用
变量名编写习惯第一个单词首字母小写,其后每个单词首字母大写。
类名称与变量名命名规范雷同,但是类名称每个单词的首字母都大写。

注释

注释用于解释代码,给程序员看但计算机会忽略注释,主要包括以下三种:

1
2
3
// 单行注释 ,从 // 开始,到本行结束,都是注释。
/* */ 多行注释,从/* 开始,到*/结束,中间所有都是注释。
/** */ 多行注释,从/**开始,到*/结束,是一种支持提取的注释。

数据类型

  • 基础类型

    基本数据类型(记住):byte、short、int、long、float、double、boolean、char

1
2
3
4
字节类型--Byte
1字节(8位)表示:-127 ~ 128

表示形式如int相同.
1
2
3
4
短整型--short
2字节(16位)表示:-32768 – 32767

表示形式如int相同.
1
2
3
4
5
6
整数类型--int
4字节(32位)表示:-2^31 ~ 2^31-1,即 -2147483648~2147483647。

int a = 100000;
int b = 0x186a0;
int c = 0303240; //16进制以0X或0x开头,8进制以0开头
1
2
3
4
5
6
长整型--long
8字节(64位)表示:比int还大

long d1 = 10000000000;
long d2 = 10000000000L;
表示形式如int相同.
1
2
3
4
5
单精度小数--float
4字节(32位)叫做单精度浮点数,通常有效到小数点后7位。

float n1 = 0.0123456789F;
float n2 = 0.5f;
1
2
3
4
双精度小数--double
8字节 (64位) 叫做双精度浮点数,通常有效到小数点后15位

double n3 = 0.01234567890123456789;
1
2
布尔--boolean
1字节(8位)值: true 或 false
1
2
3
4
5
6
字符--char
2字节(16位)表示16位无符号整数,0 - 65535

char c1 = '中';
char c2 = '\u4e2d'; //两行相同
a’ - 97 ,’A’ - 65 ,’0’ - 48 ,空格 - 32 ,换行 - 10

数据类型转换

  • 自动类型转换

    从小类型到大类型可以自动完成.

1
byte -> short(char) -> int -> long -> float -> double
  • 强制类型转换

从大类型到小类型需要强制转换,会造成精度损失或者溢出.

1
2
3
4
5
6
7
8
//强制类型转换,语法:  小数据类型  变量名 = (小数据类型)大变量;
double a1 = 3.14159283243;
float a2 = (float)a1;
long a3 = (long)a2;
int a4 = (int)a3;
char a5 = (char)a4;

//整数默认int,小数默认float

原码、反码和补码

  • 原码

把数字换算成二进制数。

  • 反码

负数反码是除符号位不变,按位取反
(0111,1111)反码==(1000,0000)

  • 补码

负数的补码是在负数的反码基础上累加1

注意:正数的三个码都是它的二进制码。

进制转换

二进制和八进制以及十六进制之间的转换(了解)

  1. 二进制转换为八进制的方式
    a.将每三位二进制合并为一位八进制即可,并使用0作为八进制的前缀。
    如:010 110(二进制) => 026(八进制)

  2. 八进制转换为二进制的方式
    a.将每一位八进制拆分为三位二进制即可,并使用0b作为二进制的前缀(从jdk1.7的新特性)
    如:026(八进制) => 0b010 110(二进制)

  3. 二进制转换为十六进制的方式
    a.将每四位二进制合并为一位十六进制即可,并使用0x作为十六进制的前缀。
    如:1010 0011(二进制) => 0xa3(十六进制,采用a~f来表示10~15)

  4. 十六进制转换为二进制的方式
    a.将每一位十六进制拆分为四位二进制即可,并使用0b作为二进制的前缀。
    如:0x9b(十六进制) => 0b1001 1011(二进制)