一.变量
-
概念:变量是内存中的一块存储空间,是存储数据的基本单元
-
语法:
-
先声明后赋值
数据类型 变量名;//声明变量 变量名=变量值;//给变量赋值 int b; b=20;
-
声明变量并赋值
数据类型 变量名=变量值; int a=10;
-
一次性声明多个同类型变量
数据类型 变量名1,变量名2,变量名3=变量值,...; int c,d,f=30;
-
二.数据类型
-
java是强类型的编程语言
-
数据类型分为基本数据类型和引用数据类型
-
基本数据类型
-
整数类型–整型
数据类型 字节数 二进制 十进制 byte 1 -27–27-1 -128–127 short 2 -215–215-1 -32768–32767 int 4 -231–231-1 -2147483648–2147483647 long 8 -263–263-1 -9223372036854775808–9223372036854775807 **注:**整数类型默认int,如果需要存储long,需要在字面值后加"L"
-
浮点类型–小数
数据类型 字节数 float 4 double 8 **注:**浮点数默认double,如果需要存储float,需要在字面值后加"F"
-
字符类型
数据类型 字节 十进制值 字符集 char 2 0–65535 Unicode(万国码) ASCII(美国标准信息交换码)编码暗合Unicode
char g='A';//以字面值对字符类型进行赋值 char g2=65;//以字符的十进制表示形式对字符类型进行赋值 char g3='\u0041';//以字符的十六进制表示形式对字符类型进行赋值
转义字符:\' \\ \" \t(tab) \n(换行)
-
布尔类型
数据类型 字面值 boolean true/false **注:**布尔类型不能参与运算,+ - * /
-
-
引用数据类型
-
字符串
数据类型 字面值 String 字符序列 String s="HelloWrold";
-
数组
-
对象
-
三.数据类型之间的转换
-
自动类型转换
byte b=10; int a=b; 数据类型兼容;目标类型大于原类型 //数据提升链:byte--short--int--long--float--double //数据提升链:char--int--long--float--double
-
强制类型转换
int i=10; byte b=(byte)i;//目标类型 变量名=(目标类型)源数据; 数据类型兼容;目标类型小于原类型 //强转原则: 如果空间足够,数值不变 如果空间不够,整数可能转为负数 小数转整数,保留整数位 整数和字符可以互转
-
自动类型提升
比如变量 a和变量 b,进行运算
- 如果一方为double,结果一定为double
- 如果一方为float,结果一定为float
- 如果一方为long,结果为long
- 其他类型运算结果为int
四.表达式
- 通过运算符(+ - * /)链接的变量或者字面值,并最终有一个结果的式子
五.运算符
-
算数运算符:+ - * / %(模:取余)
-
赋值运算符:++ – += -+ *= /= %= =
面试重点:
a++和++a区别?
a++:先参与运算,后进行自增
++a:先进行自增,后进行运算面试重点:
byte c=1;c=c+1;是否可以编译通过?c+=1;是否可以编译通过?原因是什么?
c=c+1;不能编译通过,整数默认int int无法直接转为byte
c+=1;可以编译通过,c=(byte)(c+1)内部存在强转 -
比较运算符:> >= < <= == !=
-
逻辑运算符:&& || !
&&:与,链接两个布尔表达式,双方为true,结果为true,一方为false,结果为false
||:或,链接两个布尔表达式,一方为true,结果为true,双方为fasle,结果为false
!:非 对结果取反 -
三元运算符:布尔表达式?结果1:结果2
如果布尔表达式为true,执行结果1,如果结果为false,执行结果2
六.扫描器
//创建扫描器
java.util.Scanner sc=new java.util.Scanner(System.in);
//输入整数
int i=sc.nextInt();
System.out.println("这个整数是"+i);//字符串和+,+代表拼接,任何值+字符串都为字符串
byte b=sc.nextByte();
short s=sc.nextShort();
long l=sc.nextLong();
//输入浮点数
float f=sc.nextFloat();
double d=sc.nextDouble();
//输入boolean
boolean bl=sc.nextBoolean();
//输入char
char c=sc.next().charAt(0);
//输入字符串
String str=sc.next();
七.导包
-
语法:
import 包名.....类名; import java.util.Scanner;
-
位置:package下,类之上
-
注:可以存在多个import语句;*:通配符,代表此包下所有内容,lang自动导入
-
作用:将已经写好的内容加载到此代码中