这里写自定义目录标题
第4章 java程序设计基础
01 变量和常量
- 变量相当于一个盒子,它的里面可以存放数据。这个数据叫做变量的值。每个变量都有自己的名字,叫做变量名。每个变量都有一个类型,只能存放这种类型的数据,声明一个变量,计算机会为其划分内存的一块存储区域。并且以变量名作为标识。
- 常量
- 变量的值在程序运行中是可以变化的,常量的值在程序运行中不会发生变化。
- java语言使用final关键字来声明一个常量。
02 赋值运算符和标识符
- 赋值运算符和表达式求值
- 赋值运算符会计算=号右边的表达式的值,并净结果拷贝到=号左边的变量中。
- 标识符,关键字,保留字,特殊值
- 标识符
变量,类,方法,接口的名字称为标识符。
标识符可以由字母,数字,下划线芯,$组成,不能以数字开头。
不可以使用关键字和保留字,但是可以包含关键字和保留字。
java中严格区分大小写,长度无限制。标识符不能包含空格。
标识符的命名规范:做到见名知意,变量名以小写字母开头,并且遵循驼峰命名法。 - 关键字
在java中被赋予特定含义的单词。
如:
int float char boolean
if else
class
new
package
import - 保留字
在java中注册了,但是还未(fii)使用。
goto const - 特殊值
true false null
03 数据类型的引用类型
变量的数据类型
java是一种强类型的语言
强类型的语言在声明变量时必须指定变量类型,变量类型是表示它可以存放什么类型的数据。
数据类型分为两种:基本类型,引用类型
- 基本类型有8种:
整型:byte,short,int,long
浮点型(小数型): float(单精度),double(双精度)
字符型(可以存放一个字符):char
布尔型: boolean(只有两个值,true和false)
- 引用类型
String - 基本类型和引用类型的区别
04 基本类型和引用类型
二进制,bit和字节
我们通常使用的数是十进数,逢十进位,数字有0123456789.
计算机中使用的是二进制,逢2进位,数字有0,1
0 = 00000000
1 = 00000001
2 = 00000010
3 = 00000011
4 = 00000100
5 = 00000101
6 = 00000110
7 = 00000111
8 = 00001000
9 = 00001001
10= 00001010
bit是二进制的一位,只有两个状态0,1;
上面的例子中每个二进制数都有8个bit.
8个bit称为1个字节,字节就是byte.
数字有正负,计算机不能存储符号,
所以计算机使用二进制数的第一位来表示正负:0代表正数,1代表负数。上
上面的例子都是正数。
10表示为00001010
-10表示为10001010
整型
类型 | 存储需求 | 取值范围 |
---|---|---|
byte | 1个字节 | -128~127 |
short | 2个字节 | -32768~32767 |
int | 4个字节 | -2147483648~2147483647(20亿) |
long | 8个字节 | -9223372036854775808~9223372036854775807 |
一个整数的默认类型是int,如果想要表示某个整数的值是long类型,需要在值的后面加L或l
System.out.println(2147483647 + 1); //超出取值范围
System.out.println(2147483647L + 1);
浮点型
类型 | 存储需求 | 精度范围 |
---|---|---|
float | 4个字节 | 1.4E-45~3.4028235E38 |
double | 8个字节 | 4.9E-324~1.7976931348623157E308 |
一个小数的默认类型是double,如果想表示某一个小数是float类型,需要加F或f
如: float f = 5.0; //编译错误
float f = 5.0f; //编译正确
字符型
两个字符,可以存储一个字符。
字符型的值必须是单引号。
由于计算机只能存放二进制数字,字符必须要进行编码转换为数字来存储。
例如字符’A’将被编码为65,而字符’a’将被编码为数字97。
编码方式描述了字符和数字的对应规则。
ASCII码
ASCII编码是美国标准,不能处理中文和其他国家的字符。
俄罗斯使用KOI-8,西欧使用ISO-8859-1,中国使用GB2312、GBK。
unicode编码
一份文档如果只有一种语言,那么不会出现问题,但是如果既有俄(wtrt)文又有中文。
Unicode编码涵盖了目前人类使用的所有字符,并为每个字符进行了统一编码。
Unicode只是定义了一个庞大的,全球通用的字符集,并为每个字符规定了唯一的编号。
具体存储称为什么样的字节,取决于编码方案。
目前最为流行的编码方案是UTF-8.
引用数据类型
类,String
接口
数组
05 数据类型转换
例1:
int a = 3;
long b = a;
System.out.println(b); //3
double c = b;
System.out.println(c); //3.0
例2:
boolean不与其他任意数据类型转换。
int a = 1;
boolean b = true;
System.out.println( a + b ); //报编译错误
例3:
任何数据类型与String之间使用+运算符,都将自动连接String类型。
int num = 10;
String a = "我";
String b = "岁";
System.out.println(a + num + b);//我10岁
System.out.println(a + num + 1 + b);//我101岁
System.out.println(a + (num + 1)+ b); //我11岁
强制类型转换
大容量转小容量,需要使用强制符()
如果存储数据需要的字节大于变量占用的字节,就会发生数据丢失。
long number1 = 1689;
int number2 = (int)number1; //强制类型转换
System.out.println(number2);
//int x = 35.5; 编译错误
int x = (int)35.5;
System.out.println(x);//强制类型转换,去掉小数部分。
//00000000000000000000000000000000
int bigValue = 280;
byte small = (byte)bigValue;
System.out.println(small);
//24,看我保留低八位。 把280转成二进制数,看它的低八位数是什么。
//280(十进制) = 100011000(二进制) 11000(二进制) = 24(十进制)
//float avg = 36.01f;
float avg = (float)36.01;
//强制类型转换慎用,尽量避免数据丢失。
//homework 将MB转换为字节,将字节转换为MB
task:
将MB转换为字节,将字节转换为MB 用 + - * /
16MB = byte
//计算MB有多少字节
//1mb = 1024kb
//1kb = 1024byte
int mb = 16;
int b = mb * 1024 * 1024;
System.out.println(b);
//计算字节是多少mb
int c = 16777216;
//int d = c / 1024 /1024;
int d = c / (1024 * 1024);
System.out.println(d);