内存
-
什么是内存?
内存即是一块瞬时状态的储存空间,有一定的容量。
-
内存与硬盘的区别?
内存的造价比较高,整个的计算机硬件资源是比较稀缺的。(内存得省着点用)
工业上的瓶颈,多数大容量的内存都是由多个内存条组成的。
-
计算机给Java程序多大的内存空间?
Java虚拟机(Java程序),默认分配的物理内存容量是计算机的1/8。(省着点用)
-
计算机储存容量的基本单位?
bit(位)8位=1字节;(8bits = 1byte)
Byte(字节)1024byte = 1KB
KB-MB_GB_TB_PB_EB_ZB_YB_BB_NB_DB_CB_XB(1024进制)
变量的概念
-
概念:计算机内存中的一块储存空间,是储存数据的基本单元。
整个内存就好像是酒店,当中包含了多个房间。
房间的容量(大小)不同(单人间、两人间…)
每个房间都有一个唯一的门牌号。
每个房间的住客类型也不相同。
-
酒店的房间—变量
房间的类型—数据类型
房间的门牌号—变量名
房间的住客—值
变量的定义流程
变量的定义流程:
-
声明:
数据类型 变量名;
int money;//开辟整数变量空间
-
赋值:
变量名 = 值;
money = 100;//将整数值赋给变量
-
赋值运算符
- 概念:为变量进行赋值
- 变量名 = 值;//将等号右边的值,赋值给等号左边的变量(存值)
-
int 全称: Integer(整数)
-
注意:Java是强类型语言,变量的类型必须与数据的类型一致。
-
多个同类型变量的声明与赋值:【了解】
数据类型 变量1,变量2,变量3 = 值3 ,变量4,变量5=值5;
数据类型
Java中的变量具有严格的数据类型分区。(强类型语言)
在Java语言中,任何一个值,都有其对应类型的变量。
基本数据类型(整数)
byte 1字节 取值范围 -128~127
short 2字节 取值范围 -32768~32767
int 4字节 取值范围 -2147483648~ -2147483647
long 8字节 取值范围 -9223372036854775808~9223372036854775807
-
默认类型为int类型,long类型要在末尾加L来声明这是一个long类型的数据!
-
float 单精度浮点型;double 双精度浮点型
和int一样默认为double类型,如果要保存到float类型,要在末尾显示的加上F
基本数据类型(小数/浮点数)
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
- 浮点型数值采用科学计数法表示:
- 2E3 等价于 2 * 10^3(结果:2000.0)
- 3E5 等价于 3* 10^5 (结果: 300000.0)
基本数据类型(布尔)
boolean 1字节 取值范围:true/false ,仅可描述“真”或者“假”
- 可直接赋值true /false
- 也可赋值一个结果为true / false 的表达式
基本数据类型(字符-1)
前置知识:
ASCII(American Standard Code for Information Interchange)美国信息交换标准代码
基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其它西欧语言。
ASCII是最通用的信息交换标准,为英文字符设定了统一并且唯一的二进制编码。
基本数据类型(字符-2)
前置知识:
Unicode(万国码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。
它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本交换、处理的要求,(其中包含了ASCII编码)。
基本数据类型(字符-3)
char 2字节 0~65535 Unicode字符集(万国码)
-
Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。
字符赋值:char c1 = ‘A’ ; (通过 ’ ’ 描述为字符赋值) 基本的赋值方式,常用
整数赋值:char c2 =65 ; (通过十进制数65在字符集中对应的字符赋值)
进制赋值:char c3 =’ \u0041’ ;(通过十六进制数41在字符集中所对应的字符赋值)
转义字符(1)
-
如果需要在程序中输出一个单引号字符,该如何完成?
-
为了解决这一问题,JAVA采用了转义字符来表示单引号和一些特殊符号。
-
转义字符
\n 换行符
\t 缩进(制表位)
\ \ 反斜线
\ ’ 单引号
\ \ ‘’ 双引号
引用数据类型(字符串)
String 任何“ ”之间的字面值
-
String类型的字面取值:
String strl = “你好”;
String strl2 =“Hello”;
String strl3 =“分布式架构师”;
String strl4 =“Java Enginner”;
运算符
/ 求商; % 求余;
&& 与(并且) ;两个操作数,同时为真,结果为真
|| 或(或者) ;两个操作数,有一个为真,结果为真
! 非(取反) ;意为“不是”,真即是假,假即是真
-
三元运算符:将判断后的结果赋值给变量
? : 布尔表达式?结果1:结果2 当表达式结果为真,获得结果1
当表达式结果为假,获得结果2
int javaScore = 100;
String result = javaScore == 100 ? "恭喜" : "加油";
System.out.println(result);
自动类型提升
进行算数运算时:
-
两个操作数有一个为double,计算结果提升为double。
-
如果操作数中没有double,有一个为float,计算结果提升为float。
-
如果操作数中没有float,有一个为long,计算结果提升为long。
-
如果操作数中没有long,有一个为int, 计算结果提升为int。
-
特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。
String str = "hello";
int i5 = 123;
String str2 = str+i5;
System.out.println(str2);
控制台输入
-
程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。
-
导包语法: import 包名.类名;//将外部class文件的功能引入到自身文件中。
-
使用顺序:
导入 java.util.Scanner; //引入外部文件
声明 Scanner 类型的变量
import java.util.Scanner; public class Test1{ public static void main(String[] args){ Scanner str = new Scanner(System.in); System.out.println("请输入一个整数!") int i= str.nextInt(); System.out.println("您输入的值为"+i) } }
-
使用Scanner类中对应的方法(区分类型):
.nextInt(); //获得整数
.nextDouble(); //获取小数
.next(); //获取字符串
.next().charAt(0); //接收字符(接收一个完整的字符串,获取其中的第一个字符)