当前位置: 代码迷 >> 综合 >> FUNDAMENTAL Unit02 变量 、?JAVA基本类型
  详细解决方案

FUNDAMENTAL Unit02 变量 、?JAVA基本类型

热度:95   发布时间:2023-12-11 15:13:05.0

1.变量:

存数的,代词,指代的就是它所存的那个数

1)声明:

int a; //声明一个整型的变量,名为a
int b,c,d; //声明三个整型的变量,名为b,c,d

2)命名:
2.1)只能包含字母、数字、_和$符,并且不能以数字开头
2.2)严格区分大小写
2.3)不能使用关键字
2.4)可以中文命名,但不建议
建议:”见名知意”、”驼峰命名法”

3)初始化:第一次赋值
3.1)声明的同时初始化

      int a = 5; //声明整型变量a并赋值为5

3.2)先声明后初始化

      int a; //声明整型变量aa = 5; //给变量a赋值为5

4)使用:

      int a = 5;int b = a+10; //取出a的值5,加10后,再赋值给变量bSystem.out.println(b); //输出变量b的值15System.out.println("b"); //b,双引号中的原样输出a = a+10; //取出a的值5,加10后,再赋值给变量a//在a本身基础之上增10System.out.println(a); //输出变量a的值15

4.2)变量的使用要与数据类型匹配

      int a = 3.14; //编译错误,数据类型不匹配

4.3)变量在用之前必须声明并初始化

      System.out.println(m); //编译错误,m未声明int m;System.out.println(m); //编译错误,m未初始化

2.基本数据类型:

这里写图片描述
这里写图片描述
1)int:整型,只能装整数,4个字节,-21个多亿到21个多亿
1.1)整数直接量默认为int型,但不能超范围,超范围则编译错误
1.2)两个整数相除,结果还是整数,小数位无条件舍弃
1.3)整数运算时超出范围则发生溢出,溢出是需要避免的

2)long:长整型,只能装整数,8个字节,很大很大很大
2.1)长整型直接量需要数字后加L或l
2.2)运算时若有可能溢出,建议在第1个数字后加L
2.3)System.currentTimeMillis()用于获取自1970.1.1零时到此时此刻的毫秒数

3)double:浮点型,只能装小数,8个字节,很大很大很大
3.1)浮点数直接量默认为double型,若想表示float需要数字后加F或f
3.2)double型数据参与运算时,会出现舍入误差,所以精确运算场合不能用

4)boolean:布尔型,1个字节
4.1)只能取值为true和false

5)char:字符型,2个字节
5.1)java中的char采用Unicode编码格式,一个字符char对应一个码int表现的形式是char字符,但实质上存储的是int码
码只能在0到65535之间
ASCII码:’a’–97 ‘A’–65 ‘0’–48
5.2)字符直接量必须放在单引号中,有且仅有一个
5.3)特殊字符需要通过\来转义
这里写图片描述

3.基本数据类型间的转换:

基本数据类型从小到大依次为:
这里写图片描述
1)两种方式:
1.1)自动类型转换:从小类型到大类型
1.2)强制类型转换:从大类型到小类型
语法: (要转换为的类型)变量
强转有可能会溢出或精度丢失

2)两点规则:
2.1)整数直接量可以直接赋值给byte,short,char,但不能超范围
2.2)byte,short,char型数据参与运算时,先一律转换为int再运算

4.Scanner的用法:
1)在package下:

  import java.util.Scanner;

2)在main()方法中:

Scanner scan = new Scanner(System.in);

3)在第2步之下:

  System.out.println("请输入年龄:");      int age = scan.nextInt();System.out.println("请输入单价:");double price = scan.nextDouble();

double的缺点(计算结果可能有偏差):

double a=3.0,b=2.9;
System.out.println(a-b); //0.10000000000000009//0.1double a=6.0,b=4.9;
System.out.println(a-b); //1.09999999999999996//1.1

int的缺点:

(2147483647+1后会溢出,溢出不是错,是一个不好的现象,需要避免)

int balance = 2147483647;
balance = balance+1;
-2147483648===========+1后
-2147483647===========+1+1后
-2147483646===========+1+2后

1G=1024M(兆)
1M=1024KB(千字节)
1KB=1024B(字节)
1B=8Bit(位)

1G=1024*1024*1024字节—-1073741824字节

帕斯卡命名法:

Score,MyScore,MyJavaScore

驼峰命名法:

score,myScore,myJavaScore

package day02;//数据类型的演示public class DataTypeDemo {public static void main(String[] args) {/*//基本类型间的转换int a = 5;long b = a; //自动类型转换int c = (int)b; //强制类型转换long d = 5; //自动类型转换double e = 5; //自动类型转换long f = 10000000000L;int g = (int)f;System.out.println(g); //强转有可能会溢出double h = 45.987654;int i = (int)h;System.out.println(i); //强转有可能会丢失精度byte b1 = 5;byte b2 = 6;byte b3 = (byte)(b1+b2);System.out.println(2+2); //4System.out.println('2'+'2'); //100,'2'的码50加上'2'的码50*//*//5.char:字符型,2个字节char c1 = '男';char c2 = 'm';char c3 = '6';char c4 = ' ';//char c5 = ''; //编译错误,必须有字符//char c6 = '男性'; //编译错误,只能有一个字符//char c7 = 男; //编译错误,必须放在单引号中char c8 = 65; //必须在0到65535之间System.out.println(c8); //Achar c9 = '\\';System.out.println(c9);*//*//4.boolean:布尔型,1个字节,只能取值为true和falseboolean a = true; //true为布尔型直接量boolean b = false;//boolean c = 25; //编译错误,数据类型不匹配*//*//3.double:浮点型,8个字节,很大很大很大double pi = 3.14159; //3.14159为浮点数直接量,默认double型float f = 3.14159F; //float型直接量需在数字后加f或Fdouble a=3.0,b=2.9;System.out.println(a-b); //0.10000000000000009*//*//2.long:长整型,8个字节,很大很大很大long a = 250L; //250L为长整型直接量//long b = 10000000000; //编译错误,100亿默认为int型,但超出范围了long c = 10000000000L;long d = 1000000000*2*10L;System.out.println(d); //200亿long e = 1000000000*3*10L;System.out.println(e); //溢出了long f = 1000000000L*3*10;System.out.println(f); //300亿//获取自1970.1.1零时到此时此刻的毫秒数long g = System.currentTimeMillis();System.out.println(g);*/    /*//1.int:整型,4个字节,-21个多亿到21个多亿int a = 250; //250为整数直接量,默认为int型//int b = 10000000000; //编译错误,100亿默认为int型,但超出范围了System.out.println(5/2);   //2System.out.println(2/5);   //0System.out.println(5/2.0); //2.5int b = 2147483647;b=b+1;System.out.println(b); //溢出为-2147483648*/}
}
package day02;
//变量的演示
public class VarDemo {public static void main(String[] args) {/*//4.变量的命名:int a1,a_5$,_5a,$6;//int a*b; //编译错误,不能包含*//int 1a; //编译错误,不能以数字开头int a=5;//System.out.println(A); //编译错误,严格区分大小写//int class; //编译错误,不能使用关键字int 年龄; //正确,但不建议int age;  //建议"见名知意"int score,myScore,myJavaScore; //建议"驼峰命名法"*//*//3.变量的使用://int a = 3.14; //编译错误,数据类型不匹配int b = 5; //声明整型变量b并赋值为5b = b+10; //取出b的值5,加10后,再赋值给bSystem.out.println(b); //输出变量b的值为15System.out.println("b"); //输出b,双引号中的原样输出//System.out.println(m); //编译错误,m未声明int m;//System.out.println(m); //编译错误,m未初始化*//*//2.变量的初始化:第一次赋值int a = 250; //声明整型变量a并赋值为250int b;   //声明整型变量bb = 250; //给变量b赋值为250*//*//1.变量的声明:int a; //声明一个整型的变量,名为aint b,c,d; //声明三个整型的变量,名为b,c,d*/}
}
package day02;
import java.util.Scanner; //1.
//Scanner用法的演示
public class ScannerDemo {public static void main(String[] args) {Scanner scan = new Scanner(System.in); //2.System.out.println("请输入年龄:");int age = scan.nextInt(); //3.System.out.println("请输入价格:");double price = scan.nextDouble();System.out.println(age);System.out.println(price);}
}
  相关解决方案