变量
语法: 数据类型 变量名=初始值
例:
int a=1 ;//声明变量并赋初始值
int a ;//声明变量
a=1;//给变量赋值(使用之前)
int a ,b,c;
常量 通常用大写字母表示
final 数据类型 变量名=初始值;值只能赋值一次
例:
final double PI=3.14;
变量作用域
局部变量
成员变量 所有范围内可用
数据类型
基本类型:是一个单纯的数据类型表示一个具体的数字、字符或布尔值
引用类型:是指向存储在内存“堆”重数据的指针或引用(地址)
补码的计算规则
1、正数的补码和原码完全相同
2、负数的反码+1是补码
3、符号位0是整数,1是负数
符号位 | 数据位 | |
---|---|---|
原码 | 1 | 000000000000000000000000010011 |
反码 | 1 | 1111111111111111111111111101100 |
补码 | 1 | 1111111111111111111111111101101 |
float类型数据声明赋值时数字后面必须加f
flout a=5.3f;
表示形式
·通过单个字符来指定字符型值,例如:‘A’,‘8’,‘z’等
·通过转义字符来表示特殊字符型值,例:‘\n’,’\t’等
·直接利用Unicoude值来表示字符型值,格式是‘\uXXXX’
附:
简单类型:
整数类型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
整数类型:
数组:[]
类:class
接口:interface
枚举
注解
字节型 | ttype | 8位 | -2^7 ~2^7-1 |
---|---|---|---|
短整型 | shoft | 16位 | -215~215-1 |
长整型 | int | 32位 | -231~231-1 |
浮点型 | float | 32位 | -263~263-1 |
双精度 | double | 64位 | 3.4e-38~3.4e+38 |
布尔型 | boolean | 1位 | ‘\uFFFF’ |
java的浮点型常量默认为double型,声明float型常量需加上f或F
布尔型(boolean) true,false
一般用于程序流程控制
不可以以0或非0的整数代替true和false
引用类型
数组:具有相同数据类型的变量的集合
类(class):变量和方法的集合
接口(interface):一系列方法的声明,方法特征的集合
枚举(enum):一种独特的值类类型,用于声明一组命名的常数
类型转换
·自动类型转换:将某种基本类型变量的值直接赋值给另一种基本类型变量
·强制类型转换:将容量大的数据转换为容量小的数据类型,使用时要加上强制类型转换符(()),但可能造成精度降低或溢出
通常,字符串不能直接转化为基本类型,但通过基本类型对应的包装可以实现吧字符串转换成基本类型
string a = “43”;
int i = integer.parselnt(a);
boolean类型不能转换为其他数据类型
语法 数据类型 变量 I = 变量 Z;
例:
int a = 56;
char c = char(a);
数据按容量大小排序为:
byte,short,char之间不会互相转换,他们三者在计算时会首先转换为int类型。
任何基本类型的值和字符串string进行连接运算时(+)基本类型的值将自动转换为字符串类型
转义字符表 | 说明 | unicode编码 |
---|---|---|
\b | 退格符 | \u0008 |
\t | 制表符 | \u0009 |
\n | 换行符 | \u000a |
\r | 回车符 | \u000d |
" | 双引号 | \u0022 |
’ | 单引号 | \u0027 |
\ | 反斜杠 | \u0050 |
运算符—>操作符
操作符类型:
一元操作符:只操作一个操作数
二元操作符:操作两个操作数
三元操作符:操作三个操作数
一元操作符:++(自增),- -(自减)
非运算 !
~按位非运算
短路运算符
算数运算符
+ | 两个数相加或两个字符串连接 |
---|---|
- | 两个数相减 |
* | 两个数相乘 |
/ | 两个数相除 |
% | 取余 |
位运算符
操作符 | 描述 | 示例 |
---|---|---|
& | 按位与,两位同时位1才返回1 | 00101010&00001111=00001010 |
I | 按位或,只要有一位位1,即返回1 | 00101010 I 00001111=00101111 |
^ | 按位异或,两位相同时返回0,不同返回1 | 00101010I^00001111=00100101 |
<< | 左移 | N<<S,是将N左移S位,右边充0 |
>> | 右移 | N>>S,是将N右移S位,左边正数充0,负数充1 |
>>> | 无符号右移 | 无论正数还是负数,右移后左边充1 |
int a=5,b=3;
int c=a%b
//c的值为2
double a=5.2,b=3.1;
double c=a%b
//b的值为2.1
10% -1= 1
-10& 3 = -1
-10%-3= -1
赋值运算符=
类赋值运算符
三元操作符:
表达式 ?value1 : value2
若表达式值为true,则返回value1的值
表达式值为false,返回value2的值
程序流程控制
顺序结构,
分支结构:if…else;switch…case;
循环结构:while;do…while;for;
特殊关键字,转移语句
break:在switch语句中,终止case语句,跳出switch分支结构,在循环结构中,用于终止循环语句,跳出循环结构与标签语句配合使用,从内层循环或内层程序块中退出
continue:忽略本次循环体剩下的语句,接着进入到下一次循环,只能用于循环语句中
数组
语法:数据类型 [ ] 数组名 或 数组类型 数组名 [ ]
数组创建后,其大小不能改变,值可以改变,下标索引不能越界(0~length-1)
声明数组:
//声明数组
int arr[];
arr=new int[9];
//或
int arr2[]=new int[9];
数组使用:
1.数组遍历 length:长度
for (int i=0;i<arr2.length;++i){
System.out.println(arr[i]);
}
2.常见操作:最大值,最小值
数组静态初始化
int []a={1,2,3,4,5};
int []a=new int []{1,2,3,4,5};
动态初始化
int [] array=new int [10];
for (int i = 0;i<10;i++){
array[i]=i+1;
}
二维数组 int [ ] [ ] a;
int[][]a={{1,2},{3,4},{5,6}};//静态初始化
int[][]b=new int[2][2];//动态初始化
b[0][0]=1;
b[0][1]=2;
b[1][0]=3;
b[1][1]=4;