一:常量:不可改变的量.
*******JAVA有常量优化机制*********
二:进制(见EasyForget)
补充:
1 0110 100 原码 1 0110100 原码
1 1001 100 补码 1 1001011 反码
三:Java数据类型分类:
基本数据类型:
整数型:byte(0000 0000)(1字节) short(2);int(4); long(8);
浮点型:float(4);double(8);
字符型:char(2);
布尔型:boolean(1/8);
引用数据类型:
四:变量
1:作用范围:局部变量(使用前必须初始化) 全局变量
2:同一范围内变量名不能相同;
五:类型转换:
隐式转换:
int x = 0
byte b = 1;
x = x + b;(此时的b会被隐式的提升成int类型的变量)
byte类型的变量与byte类型的变量运算时会提升成int类型,只能声明
一个int类型的变量来存放它俩的结果.
强制转换:
byte b = 1;
//b = b + 1;
(这里会报错; byte类型变量b 与默认类型int 运算时 b会发生隐式的提升为int类型)
b = 1 + 1;
但是这样写是不会报错的. *******JAVA有常量优化机制*********
b = (byte)(b + 1);
(需要强制转换,但是如果b+1超过的byte的范围,则会得到意向不到的结果)
六:float(4字节)的数据范围比long(8字节)还要大 大 咦 大大!!
七: char字符 字符串问题
char O = '0'; //!!!!******char类型只有在参加运算的时候,
char A = 'A'; // 才会匹配ASCII表的符号.******!!!!!!
char a = 'a';
System.out.println(O);//输出字符O
System.out.println(A);//输出字符A
System.out.println(a);//输出字符a
System.out.println(O + 1);//输出数字49
System.out.println(A + 1);//输出数字66
System.out.println(a + 1);//输出数字98
**字符串 字符 数字 拼接问题**
System.out.println("hello"+a + 1);//输出helloa1
System.out.println(a + 1+"hello");//输出98hello
**char类型存放中文提问**
* A:char c = 97; 0到65535
* B:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
* 可以。因为Java语言采用的是Unicode编码,
* Unicode编码中的每个字符占用两个字节。中文也是占的两个字节
* 所以,Java中的字符可以存储一个中文汉字.
八:算术运算符
* a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
* b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
* c:/获取的是除法操作的商,%获取的是除法操作的余数
* %运算符
* 当左边的绝对值小于右边绝对值时,结果是左边
* 当左边的绝对值等于右边或是右边的倍数时,结果是0
* 当左边的绝对值大于右边绝对值时,结果是余数
* %运算符结果的符号只和左边有关系,与右边无关
**** 任何一个正整数%2结果不是0就是1可以用来当作切换条件***
九: ++问题
// ++ 在单独使用的时候 ++a 与a++ 是一样的 但是在参与运算的时候就会有所不同.
int a = 3;
int b,c;
b = a++;//此时a++等价于3 赋值给b 赋值之后 a自身+1
c = ++a;//此时a经过上行代码已经是4,++a 先自身+1 然后 ++a=5 赋值给c
System.out.println(b);//3
System.out.println(c);//5
|
|