Java、C、C++ 是强类型语言(定义一个变量一定要规定它的类型)
(一)Java中共有八大基本数据类型(均有默认值)
一、数值型
1、整数型 默认值0
byte<short<int<<long
(1) int 4字节,
在 Java 中, 一个 int 变量占 4 个字节. 和操作系统没有直接关系.最高位不存储数值,表示正负
int a = 10; 声明变量 int a 赋值变量 = 10
当在类中(主方法外定义int变量时,默认值为0)
8个二进制位(bit)为一个字节(Byte).
当发生数据溢出(当前的数据类型放不下当前的数据)时,需要更换更大的数据类型。
(2) long(长整型) 8字节
long b = 10L; //使用long关键字定义长整型,数字后用L或者l
(3)byte 1个字节
字节型变量,进行网络编程或者文件IO传输使用byte, [-128 , +127]
2、浮点型 默认值0.0
(1) float 单精度 4字节
float a = 1.0F; //定义一个float变量
(2) double 双精度(推荐) 8字节
当使用double类型进行小数运算时,精度会出现不准,使用BigDecimal替代
二、字符型 默认值 \u000(单个空格)
char 2个字节,无论中文还是英文
三、布尔类型 默认值false
boolean
true false ,不能用0或1来表示真假
(二)字符串——不是基本类型,属于类
在Java中,任何数据类型只要和字符串“ + ”,都会将其转为字符串而后进行字符串的拼接操作。
(三)变量的命名规则:小驼峰法命名
当只有一个单词时,全小写;多个单词,只有第一单词全小写,第二个单词起,首字母大写
int age String schoolName String myHomeName
(四)常量
定义以后不能修改的值
一、final 关键字定义常量
二、字面值常量
public class Test {
//程序入口
public static void main(String[] args){
int a = 10;
//0b开头表示二进制
int b = 0b10;
//0开头表示八进制
int c = 010;
//0x开头表示十六进制
int d = 0x10;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
(五)数值类型的转换(一定是有关系的类型之间的转换)
一、大的转小的(需要强制类型转换)
会出现精度丢失问题(溢出问题,不推荐)
int a = 10;
long b = 10L;
a = (int)b;
b = a;
二、小的转大的(隐式提升)
当直接赋值时long c = 10;将小类型直接提升为大类型,
当小类型与大类型进行运算时,小类型提升为大类型
在Java中,byte和short都不是4字节,为了程序运行方便,都会隐式的把byte、short => int
三、int与String之间的转换
1. int => String 使用Integer.parseInt 方法
2. String => int String 的valueOf方法
String s = "123";
//String => int
int a = Integer.parseInt(s);
//int => String
String s1 =String.valueOf(a);
(六)运算符
1. 算术运算符
自增运算符
4. 位运算符
& :按位与,两个二进制都为1返回1 ,否则返回0
| :按位或,两个二进制都为0才为0,否则返回1
~ : 按位取反 , 1 —> 0 , 0 —> 1
^ : 按位异或,两不一样返回1,两一样返回0 (一个数组中只有一个数出现一次,其他数都出现
两次,请找到这个数)——应用很广
a : 0 1 0 1 0
b : 1 0 1 0 0
&操作:0 0 0 0 0
|操作: 1 1 1 1 0
^操作:1 1 1 1 0
取反操作牵扯到反码、原码、补码操作。
5.移位运算(直接在二进制位上进行的操作,效率比乘除高)
不考虑溢出问题
(1)左移
最左侧的不要,右侧补零 <<1,左移一位实际就是 * 2
(2)右移
最右侧的不要,左侧补零 >>1,右移一位实际就是 / 2
6. 三目运算符:
表达式 ?(为真时取值):(为false时取值)
(七)注释
注释是给人看的。编译之后,实际上就没了
(1) // 单行注释 用在方法中,说明变量或者方法中代码的含义
(2) /**
注释...
*/
文档注释,用在方法和类的声明上,使用命令可以一键生成 .doc 文档