假设认识Java的第二天必会的知识
- 常量和变量:
常量就是我们固定不变的量,变量就是可以发生变化的量。
Java中每一个变量都必须明确数据类型。
a. 数据类型:
基本类型:整数,浮点数,字符,布尔
引用类型:类,数组,接口
这里记住8大基本类型:
字节型-----byte-----1个字节 (-128-127)
短整型----short-----2个字节 ( -32768-32767)
整型------int-----4个字节 (-2^31 )到(2^31-1)
长整型----long----8个字节 ( -2^64)到(2^64-1)
单精度浮点型----float----4个字节
双精度浮点型----double----8个字节
字符型------char-----2个字节 ( 0-65535)
布尔类型-----boolean----1个字节 (true,false)
Java中默认的类型:整数类型默认是int,浮点类型默认是double
b. 变量的定义
变量定义的格式包括这么三个要素:数据类型、变量名、数据值
格式:
数据类型 变量 = 数据值;
package test;
public class Demo{
public static void main(String[]args){
//定义一个字节类型
short s=20;
//在idea当中 快速生成我们的打印语句:sout
System.out.println(s);
int i=20;
System.out.println(i);
long l=200L;
System.out.println(l);
float f=5.5F;
//我们在定义float和long时,需要在尾部加标识
System.out.println(f);
double d=20;
System.out.println(d);
char c='A';
System.out.println(c);
}
}
- Java程序中要求参与计算的数据,必须要保证数据类型一致,如果数据类型不一致,那么就会出现数据类型的转换。
a.自动转换
一个int类型和一个byte运算,结果会是一个int类型。
b.转换规则:
范围小的向范围大的类型转换:
byte、short、char运算的时候都会转换为int类型
byte—>short---->char—>int---->long—>float—>double
c.强制转换:
例:将1.5赋值给int类型,double类型占8个字节,int类型4个字节,肯定没有办法将一个8个字节的赋值给一个4个字节。需要强制转换。
强制类型转换:
将取值范围大的类型转换为取值范围小的类型
转换格式:
数据类型 变量名=(数据类型)被转换数据;
public class Demo{
public static void main(String[]args){
int c=(int)1.5;
}
}
注意点:
1、浮点型转换整型,直接取消小数位,可能造成精度损失。
2、Int类型转换为short类型,砍掉2个字节,可能造成精度损失。
- AscII编码表:
计算机中内部都是二进制0,1,如何让我们的计算机能够识别我们的文字?就产生了一张编码表。
编码表:其实将人类的文字和一个十进制数对应起来的一张表。
字符0------------48
9------------------57
A------------------65
Z------------------90
a------------------97
z-----------------122
public class test02 {
public static void main(String[] args) {
char c='a';
int i=1;
System.out.println(i+c);
}
}
//结果为98
- 运算符
算数运算符
+ --------加法运算,字符串的拼接
- ---------减法运算
* -------乘法运算
/ -------除法运算
% ------取余运算
++-- ---- 自增自减
Java中,整数使用以上运算符,无论怎么计算,也不会得出小数。
++运算:
在独立运算中,无论是前++还是后++,结果都一样
在混合运算中就不一样
// i++ 先赋值在运算,例如 a=i++,先赋值a=i,后运算i=i+1,所以结果是a==1。
// ++i 先运算在赋值,例如 a=++i,先运算i=i+1,后赋值a=i,所以结果是a==2
public class test03 {
public static void main(String[] args) {
int i=1000;
int b=++i;
System.out.println(i);
System.out.println(b);
}
}
//结果输出 1001 1001
public class test03 {
public static void main(String[] args) {
int i=1000;
int b=i++;
System.out.println(i);
System.out.println(b);
}
}
//结果输出1001 1000
例题
加号的拼接:
+符号,在字符串中,表示连接和拼接的效果
public class test05 {
public static void main(String[] args) {
System.out.println("5+5="+5+5);
}
}
- 赋值运算符:
== 等于号
+= 加等于 相当于 s+=1 s=s+1
-= 减等
*= 乘等
/= 除等
%= 取余等
赋值运算符,就是将符号右边的值,赋给左边的值。
public class test05 {
public static void main(String[] args) {
int i=5;
i+=5;
System.out.println(i);
}
}
//结果为10
- 比较运算符:
== 比较符号两边的数据,相等的话结果就是true
< 比较符号两边的数据,如果左边的小于右边的数据,那么结果就是true
> 比较符号两边的数据,如果左边的大于右边的数据,那么结果就是true
<= 比较符号两边的数据,如果左边的小于右边的数据,那么结果就是true
>= 比较符号两边的数据,如果左边的大于等于右边的数据,那么结果就是true
- 逻辑运算符
&&:两边都是true,结果就是true。一边为false,结果就是false。
短路效果:如果左边为false,右边就不计算了。
||:两边都是true,结果就是true,一边为true,结果就是true 短路特点:符号左边为true的话,右边就不计算了
!: !True结果就是false
!False的结果就是true
//短路效果
public class test07 {
public static void main(String[] args) {
int a=1;
int b=2;
System.out.println(false&&(a>b++));
System.out.println(b);
}
}
//结果为:
false
2
- 三元运算符
格式: 数据类型 变量名=(布尔类型表达式?结果1:结果2);
三元运算符:布尔表达式的结果为false,三元运算符整体的结果就是结果2,
布尔类型表达式结果为true,三元运算符的整体结果就是结果1
public class test08 {
public static void main(String[] args) {
int i=(1==2? 200:300);
System.out.println(i);
}
}
//运行结果为300