变量
变量的概念
内存:
1.么是内存?
. 内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁。
. 计算机中所有程序的运行都是在内存中进行的。
. 内存即是一块瞬时状态的存储空间,有一定的容量。
2.内存与硬盘的区别?
· 内存的造价比较高,整个的计算机硬件资源是比较稀缺的。(内存得省着点用)
. 工业上的瓶颈,多数大容量的内存都是由多个内存条组成的。
3.计算机给Java程序大多的内存空间?
. Java虚拟机(Java程序,默认分配的物理内存容量是计算机1/8。(省着点用)
4,计算机存储容量的基本单位?
. bit(位)8位=1字节(8bits = 1Byte)
.Byte(字节)
. KB-MB-GB-TB-PB-EB-ZB-YB-BB-NB-DB-CB-XB (1024进制)
变量
概念
变量的定义流程
//声明变量, 语法: 数据类型 变量名;
int money; //在内存中开辟了一块整数空间
//赋值, 语法 变量名=值;
money = 100; //将100赋值给money变量空间
System.out.println(money);//打印变量中的值
System.out.println("money");//打印文本
赋值运算符
1.概念
为变量进行赋值
2.变量名=值 //将等号右边的值赋值给等号左边的变量(存值)
int
全称:Integer(整数)
不同类型的编程语言
1,强类型编程语言:变量的类型必须和数据的类型一致。(java,C++,C#)
2,弱类型编程语言:变量的类型无需和数据的类型一致。(javaScript)
变量的定义方式
//声明并赋值
int age = 10;//将声明的语法与赋值的语法合二为一
System.out.println(age);
//同时声明多个同类型变量
int a, b, c,d =44,e=55;//不推荐使用此方法,可读性较差
a = 11;
b=22;
c= 33;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
注意:变量必须先赋值才能使用。
数据类型
概述
整数
注意:1, java中所有的”整数字面值“的默认类型是int,当整数字面值超过int的取值范围时则提醒”过大的整数“。
2,为long赋值较大整数(超过int取值范围)时需要在值末尾加上L已告知JVM使用long类型
例如:long L = 2345243532435L;
说明:定义变量时,使用语法:数据类型 变量名=值,其中的值即为”整数字面值“。
小数/浮点数
float:单精度浮点型
double:双精度浮点型
注意:1.给声明的double类型变量传入一个整形时会自动转换为浮点型。
2.任何“小数字面值”默认类型都是double,如果要存储到float中,需显示追加F。例如:float f = 2.4F;
科学计数法
Float的正数取值范围:
Float的负数取值范围:
Double的正数取值范围:
0.000000...049(323个0)~1700000...(307个0)
Double的负数取值范围:
-1700000...(307个0) ~ -0.000000...049(323个0)
布尔
字符
ASCII
Unicode
char
//字符赋值 原生,基本的赋值方式(常用)
char c1 = 'A';
//整数赋值 (十进制)
char c2 = 65;
//进制赋值(十六进制)
char c3 = '\u0041';
转义字符
为何要用转义字符?
如何使用?
引用数据类型(字符串)
类型转换自动类型转换
备注:1.数值类型之间相互兼容(整数与整数,整数与小数)
2.字符与整数也相互兼容(每个字符都有一个对应的Unicode编码,编码也是整数)
注意:boolean类型无法与其他数据类型进行转换(不兼容的类型)强制类型转换
强制类型转换规则
整数长度不够时,数据会被高位截断。
原数据:
说明:123=64+32+16+1257=256+1(123为十进制数值,01110001为二进制数值)
数据被截断后:
数据被截断后符号位也随之发生变化,数值的正负也发生变化(符号位等于0时为正值,符号位等于1时为负值)
将整数强转为字符时需要注意整数必须为正数才可以强转成功。(Unicode编码值均为正数,否则无法识别,系统以?显示输出结果)
运算符
算数运算符据
注意:运算a/b时,若a,b皆为整数时,结果为整数,若a,b中有一个为小数时,结果为小数,a%b为求余运算
测试如下计算int i=10,j=3;
System.out.println("10/3得\t"+i/j);//求商(两个整数)
System.out.println("10%3得\t"+i%j);//求余
double b=10.0;
System.out.println("10.0/3得\t"+b/j);//求商(含有小数)
结果如下
一元运算符需注意:++在前,先自增,后赋值;++在后,先赋值,后自增。--操作同理
赋值运算符
关系运算符
逻辑运算符
三元运算符
注意:结果1与结果2的数据类型可以任意但必须相同
表达式
类型提升
自动类型提升
控制台录入
import java.util.Scanner;//引入外部文件
public class test{
public static void main(String [] args){
//声明Scanner类型的变量
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int i = input.nextInt();
System.out.println("请输入一个小数:");
Double d = input.nextDouble();
System.out.println("请输入一个字符串");
String s = input.next();
System.out.println("请再次输入一个字符串");
char c = input.next().charAt(0);
System.out.println("整数"+i+"\t小数:"+d+"\t第一个字符串:"+s+"\t第二个字符串:"+c);
}
}
执行结果如下