1.数据类型
一、分类
1)基本数据类型:由程序设计语言系统所定义、不可再划分的数据类型。数据所占内存的大小是固定的,与软硬件环境无关。在内存中存放的师数据值本身。
2)引用数据类型(复合数据类型;指针):往往由多个基本数据组成,引用数据类型在内存中存放的是指向该数据的地址,对引用数据类型的应用称为对象引用。
二、八种基本类型
4种整型:字节型(byte)、短整型(short)、整型(int)、长整型(long)
2种浮点型:单精度浮点型(float)、双精度浮点型(double)
一种布尔型:boolean
一种字符型:char
类型 | 数据位 | 占用字节数 | 默认数值 |
---|---|---|---|
字节型(byte) | 8 | 1 | 0 |
短整型(short) | 16 | 2 | 0 |
整型(int) | 32 | 4 | 0 |
长整型(long) | 64 | 8 | 0L |
单精度浮点型(float) | 32 | 4 | 0.0F |
双精度浮点型(double) | 64 | 8 | 0.0D |
布尔型(boolean) | 1 | false | |
字符型(char) | 2 | ‘\u0000’ |
常用的转义字符
转义字符 | 所代表的意义 |
---|---|
\f | 换页,走纸到下一页 |
\b | 退格,后退一格 |
\n | 换行,将光标移到下一行的开始 |
\r | 回车,将光标移到当前行的行首,但不移到下一行 |
\t | 横向跳格,将光标移到下一个制表符位置 |
\ | 反斜线字符,输出一个反斜杠 |
’ | 单引号字符,输出一个单引号 |
‘’ | 双引号字符,输出一个双引号 |
\uxxxx | 1-4位十六进制数所表示的unicode字符 |
\ddd | 1-3位八进制数所表示的unicode字符,范围在八进制的000~377之间 |
2.变量
1)变量声明
2)变量赋值
3.基本类型变量
4.数据类型的转换规则
1.数值型不同类型数据的转换
①自动类型转换(隐含类型转换):
(1)转换前的数据类型与转换后的类型兼容
(2)转换后的数据类型的表示范围比转换前的类型大
低————————————→高
byte→short→char→int→long→float→double
当表达式中的变量的类型不同时,Java会自动将较少的表示范围转换成较大的表示范围,然后再作运算。
②强制类型转换:
(与转换的数据类型)变量名
int a,b
h=(float)a/b;或a/(float)b或(float)a/(float)b
2.字符串型数据与整形数据相互转换
1)字符串转换成数值型数据
转换的方法 | 功能说懵 |
---|---|
Byte.parseByte(String s) | 将数字字符串转换成字节型数据 |
Short.parseShort(String s) | 将数字字符串转换成短整型数据 |
Integer.parseInteger(String s) | 将数字字符串转换成整型数据 |
Long.parseLong(String s) | 将数字字符串转换成长整型数据 |
Float.parseFloat(String s) | 将数字字符串转换成浮点型数据 |
Double.parseDouble(String s) | 将数字字符串转换成双精度型数据 |
Boolean.parseBoolean(String s) | 将数字字符串转换成布尔型数据 |
例如:
String myNumber = "1234567";
float myFloat = Float.parseFloat(myNumber);
2)数值型数据转换成字符串
在java语言中,字符串可用加号”+“来实现连接操作。
int myInt = 1234;
String myString = "" + float;
5.从键盘输入数据的语句格式
1.数据输入方式1
1)输入字符串
import java.io.*;
public class App3_3 {
public static void main(String[] args)throws IOException {
BufferedReader buf;
String str;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入字符串:");
str = buf.readLine();
System.out.println("您输入的字符串是:"+str);
}
}
2)输入数值
import java.io.*;
public class App3_4 {
public static void main(String[] args)throws IOException {
float num;
String str;
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个实数:");
str = buf.readLine();
num = Float.parseFloat(str);
System.out.println("您输入的数为:"+num);
}
}
3)输入多个数据
import java.io.*;
public class App3_5 {
public static void main(String[] args)throws IOException {
int num1,num2;
String str1,str2;
InputStreamReader in;
in = new InputStreamReader(System.in);
BufferedReader buf;
buf = new BufferedReader(in);
System.out.print("请输入第一个数:");
str1 = buf.readLine();
num1 = Integer.parseInt(str1);
System.out.print("请输入第二个数:");
str2 = buf.readLine();
num2 = Integer.parseInt(str2);
System.out.print(num1+"*"+num2+"="+(num1*num2));
}
}
2.数据输入方式2
一个专门用于输入操作的类Scanner
1)利用Scanner类从键盘输入多个数据
import java.util.*;
public class App3_6 {
public static void main(String[] args) {
int num1;
double num2;
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个数:");
num1 = sc.nextInt();
System.out.print("请输入第二个数:");
num2 = sc.nextDouble();
System.out.println(num1+"*"+num2+"="+((float)num1*num2));
}
}
2)利用Scanner类,利用next()和nextLine()方法接收从键盘输入字符串型数据
import java.util.*;
public class App3_7 {
public static void main(String[] args) {
String s1,s2;
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个数据:");
s1 = sc.nextLine();
System.out.print("请输入第二个数据:");
s2 = sc.next();
System.out.print("输入的是"+s1+"和"+s2);
}
}
()next方法一定要读取到有效字符后才可以结束输入,而nextLine()方法的结束符只是回车键。
6.运算符
1、算术运算符(用于整型或浮点型数据)
一、二元算术运算符
运算符 | 功能 | 示例 |
---|---|---|
+ | 加 | a+b |
- | 减 | a-b |
* | 乘 | a*b |
/ | 除 | a/b |
% | 取模 | a%b |
二、一元算术运算符
运算符 | 功能 | 示例 |
---|---|---|
+ | 正值 | +a |
- | 负值 | -b |
++ | 加1 | ++a或a++ |
- - | 减1 | - -a或a- - |
int i = 10,j,k,m,n;
j=+i;//取原值,则j=10
k=-i;//取负值,则k=-10
m=i++;//先m=i,再i=i+1,则m=10 i=11
m=++i;//先i=i+1,再m=i,则i=12,m=12
n=i--;//先n=i i=i-1 ,则n=12,i=11
n=--i;//先i=i-1,n=i,则i=10,
2、关系运算符
大于>、小于<、大于或等于>=、小于或等于<=、
等于==、不等于!=
3、逻辑运算符
&:与
|:或
!:非
^:异或
&&:与
||:或
4、位运算符
运算符 | 功能 | 示例 |
---|---|---|
~ | 按位取反 | ~a |
& | 按位与 | a&b |
I | 按位或 | aIb |
^ | 按位异或 | 除 |
>> | 右移 | a>>b |
<< | 左移 | a<<b |
>>> | 0填充右移 | a >>>b |
5、赋值运算符
运算符 | 示例 | 等效表达式 |
---|---|---|
+= | a+=b | a=a+b |
-= | a-=b | a=a-b |
*= | a*=b | a=a*b |
/= | a/=b | a=a/b |
%= | a%=b | a=a%b |
&= | a&=b | a=a&b |
^= | a^=b | a=a^b |
>>= | a>>=b | a=a>>b |
<<= | a<<=b | a=a<<b |
>>>= | a>>>=b | a=a>>>b |
6、条件运算符
格式:表达式1?表达式2:表达式3;
7、其他运算符
字符串运算符
1.“+”
2.toString()方法