Java基础知识复习
一、变量
- 概念:存储在计算机内存中的一块位置,是存储数据的基本单位
- 组成部分:数据类型,变量名称,变量值
- 定义变量的步骤:
- 声明
- 赋值(变量的值必须和数据类型一致)
# 定义方式一(声明并赋值)
String s = 'Holle world!';
# 定义方式二(先声明后赋值)
String s;
s = 'Holle wolrd! ';
# 定义方式三(多个同类型的变量定义赋值)
int a,b;
a=b=0;
二、数据类型
- 基本数据类型:
- 整数
- 小数
- 布尔
- 字符
- 应用数据类型
- 字符串
- 数组
- 对象
- 整数
类型 | 字节 | 取值范围(二进制) | 取值范围(十进制) |
---|---|---|---|
byte | 1字节 | -2^7 ~ 2^7-1 | -128 ~ 127 |
short | 2字节 | -2^15 ~ 2^15-1 | -32768 ~ 32767 |
int | 4字节 | -2^31 ~ 2^31-1 | -2147483648 ~ 2147483647 |
long | 8字节 | -2^63 ~ 2^63-1 | -9223372036854775808 ~ 9223372036854775807 |
- 小数
类型 | 字节 | 负数取值范围 | 整数取值范围 |
---|---|---|---|
float | 4字节 | -3.4E+38 ~ -1.4E-45 | 1.4E-45 ~ -3.4E+38 |
double | 8字节 | -1.7E+308 ~ 4.9E-324 | 4.9E-324 ~ 1.7E+308 |
- 布尔
类型 | 字节 | 取值范围 | 描述 |
---|---|---|---|
Boolean | 1字节 | true、false | 真、假 |
- 字符
类型 | 字节 | 取值范围 |
---|---|---|
char | 2字节 | 0 ~ 65535 |
** 特殊字符: ** 转移字符(换行符、制表符、引号、斜杠、单引号)
转义字符 | 描述 |
---|---|
\n | 换行符 |
\t | 制表位(缩进等于Tab键缩进) |
\ | 反斜杠 |
\’ | 单引号 |
“” | 双引号 |
注意: 其他字符则对应ACII编码表:
https://tool.oschina.net/commons?type=4
- 字符串
类型 | 取值范围 |
---|---|
String | 任何" "之间的字面值 |
- 数组 (引用数据类型)
- 对象 (引用数据类型)
三、类型转换
自动类型转换:
两种类型互相兼容,目标类型大于源类型
char a = 98;
注意:输出a的值为b;
***强制类型转换: ***
两种类型转换,目标类型小于源类型
注意: 通过在源类型前面,加上 (目标类型) ,达到强制转换的目的,但是,有可能失去精度。
例如:小数强转为整数,则失去精度,小数点之后的值,无法保留
*** 强制类型转换规则: ***
- 整数长度足够,数据完整。
- 例:int i = 100; byte b = (byte)i; //b = 100
- 整数长度不够,数据截断
- 例:int = 10000; byte b = (byte)i; //b = 16(符号位发生变化,可能为负数)
- 小数强转整数,数据截断
- 例:double d = 2.5; int i = (int)d; //i = 2(小数位舍掉)
- 字符整数互转,数据完整
- 例:char c = 65; int i = c; //i = 65;
- 特殊: boolean的取值为true、false,不可与其他类型转换
包装类:8种基本数据类型对应着的一个类,此类即为包装类
基本数据类型 包装类 及String之间的相互转换
public void demo1(){
int i = 1;
System.out.print(i);
boolean b = false;
}
测试代码
public class demo_1 {public static void main(String[] args) {
char a = 98;
System.out.println(a);
//关于变量的练习
char b = 'c';
System.out.println(b);
//关于变量的命名
int aa = 21;
int aaa;
aaa = 22;
int ab, ac = 0;
int abb, acc;
abb = 0;
acc = 0;
//关于数据类型的练习
//整数;
int demo1 = 10;
//小数(浮点数)
float demo2 = 3.14f;
//布尔型
boolean demo3 = true;
boolean demo15 = !demo3;
//字符型
char demo4 = a;
//字符串
String demo5 = "hello world";
//数组
int[] demo6 = {1, 23, 4, 5};
int[] demo7 = new int[]{1, 2, 3, 4, 5, 6, 67};
int[] demo8 = new int[4];
demo8[0] = 2;
demo8[1] = 3;
//对象
Java_demo_helloworld demo9 = new Java_demo_helloworld();
//强制类型转换
int demo10 = 100;
byte demo11 = (byte) demo10;
long demo12 = 10000000;
int demo14 = (int) demo12;
short demo13 = (short) demo14;
System.out.println();
//三目运算符
System.out.println(demo3 != true ? demo3 = !demo3 : demo13);
//键盘输入
Scanner demo16 = new Scanner(System.in);
// int demo17 = demo16.nextInt();
// System.out.println(demo17);
/** if判断语句的使用 **/
Scanner demo18 = new Scanner(System.in);
// int demo19= demo18.nextInt();
// if ( demo19>='0'&& demo19<='9'){
// System.out.println("不是数字");
// }else {
// System.out.println("输入的是数字");
// if (demo19>=1000){
// System.out.println("输入的数字大于1000");
// }
//
// }
/** switch 的使用 */
// switch (demo18.nextInt()){
// case 1: System.out.println("这是1月");break;
// case 2: System.out.println("这是2月");break;
// case 3: System.out.println("这是3月");break;
// case 4: System.out.println("这是4月");break;
// case 5: System.out.println("这是5月");break;
// case 6: System.out.println("这是6月");break;
// case 7: System.out.println("这是7月");break;
// case 8: System.out.println("这是8月");break;
// case 9: System.out.println("这是9月");break;
// case 10: System.out.println("这是10月");break;
// case 11: System.out.println("这是11月");break;
// case 12: System.out.println("这是12月");break;
// }
/** 循环的使用 **/
// int count=0;
// while (true){
// count++;
// if (count==100){
// break;
// }else {
// System.out.println(count+1);
// }
// }
/** do while 的使用 **/
// int count = 0;
// int demo20;
// do {
// demo20 = count++;
// if (count==100){
// break;
// }else {
// System.out.println(count+1);
// }
// } while (count != demo20);
}
//定义函数
class fun{
public fun(){
}
public void in(){
int a,b = 0;
a =2;
int c = a + b;
}
}
}