博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习基础(四):变量和常量
阅读量:2256 次
发布时间:2019-05-09

本文共 3691 字,大约阅读时间需要 12 分钟。

1、程序概述

从今天开始进入Java语法的正式学习。首先先明白软件是什么?

软件就是用来处理数据的程序。可以把软件分为两个部分,一个部分是“数据”;另一个部分是“数据处理的逻辑”。

程序 = 数据 + 逻辑

什么是数据?举个简单的例子,你简历的个人基本信息就是数据,包括你qq、微信和支付宝上的各种信息;而逻辑就是做一件事的先后顺序,先做什么,再做什么以及如何去做。

2、数据类型

数据是有类的,例如人的姓名是字符串类型,人的年龄是正整数类型。在Java中数据也是有类型的(任0何数据必然会有类型)。

Java数据类型分为基本数据类型和引用数据类型。

基本数据类型包括:整数、浮点数、字符和布尔类型。

引用数据类型:数组、类、接口和自定义的类型。

3、常量

Java中的数据量分为常量和变量,首先来学习常量。

常量就是不变的数据量,例如100就是常量,任何数据量都有其类型,100就是一个整数常量。

常量的类型有以下几种:

1、整数类型:正常的整数。如0、-1、1、2.。。。。

2、小数类型:如1.0、-2.3、4.5.。。。

3、字符类型,例如 'a' 、‘b’、'c'。。。

4、布尔类型:true和false

5、字符串类型,如 “我爱Java”、“this is my test”等。字符串类型必须用 "" 双引号,注意和字符类型的区分,它是由1个到N个字符组成。

举个简单的demo

public class Const {	public static void main(String[] args) {		//整数类型//10进制		System.out.println(100);		System.out.println(12345);		System.out.println( 10 );		//2进制		System.out.println( 0b1010 );		//8进制		System.out.println( 012 );		//16进制		System.out.println(0xA);		//小数类型		System.out.println(3.15);		//字符类型		System.out.println('a');		System.out.println('A');		System.out.println('0');		System.out.println('家');		//布尔类型		System.out.println(true);		System.out.println(false);		//字符串类型		System.out.println("我爱Java");		System.out.println("0123");	}}

4、变量

在Java中变量的应用比常量的应用要多很多。所以变量也是尤为重要的知识点。

什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;你家里的大衣柜是容器,用来装载衣裤;饭盒是容器,用来装载饭菜。那么变量是装载什么的呢?答案是数据!结论:变量是内存中装载数据的容器,你只能用它来存数据和取数据。

4.1 计算机的存储单元

计算机存储设备的最小信息单元叫“位(bit),我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。

除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:

1B(字节) = 8bit 、1KB = 1024B、1MB = 1024KB、1GB = 1024MB、1TB = 1024GB和1PB = 1024TB。

 

 

4.2 基本类型之4类8种

Java中基本类型一共4类,把这4类展开后共8种基本类型。我们今后编写程序时使用的是这8种基本类型而不是4类,这8种基本类型指定了范围。

 

 

4.3 常量与类型

前面我们说过100是整数常量,但它是byte、short、int、long中的哪一种呢?下面我们来聊聊这一常量类型的问题。

整数常量可以根据所在范围来确定类型,例如100在-128~127之间,所以他是byte类型;500在-32768~32767之间,所以它是short类型;100000在-2147483648~2147483648之间,所以它是int类型。java中默认的整数类型是int类型

你可能会认为12345678901在-263~263-1之间,所以它是long类型。注意了,这是错误的!!!在Java中整数常量如果不在-2147483648~2147483648之间就必须添加“L”后缀(小写的也可以,但建议使用大写),在-2147483648~2147483648之间的也可以添加“L”后缀。也就是说12345678901不在-2147483648~2147483648之间,所以它在Java中是错误的常量,你必须这样写:12345678901L,这才是正确的常量。所以添加了“L”后缀的整数常量都是long类型的,例如:100L、12345678901L都是long类型的常量。

浮点类型的常量也可使用后缀,在Java中所有没有后缀以及使用“D”后缀(小写也可以,但建议使用大写)的小数都是double类型;float类型常量必须添加“F”后缀(小写也可以,但建议使用大写)java中默认的浮点类型是double类型

3.14没有后缀,所以它是double类型;

5.28D为double类型;

1.26F为float类型。

4.4 定义变量

定义变量的语法格式:

数据类型  变量名  =  数据值;int         a    =  100;

其中int是数据类型,指定了变量只能存储整数,而且指定了存储范围为-2147483648~2147483648。

其中a表示变量名,变量名是标识符,这说明只要是合法的标识符都可以用来做变量名。在程序中可以通过变量名来操作变量。

其中“=100”是给变量赋值,即向a变量中写入100。注意,给变量赋的值一定要与类型符合,也就是说int类型只能存储整数,而且必须是在-2147483648~2147483648范围内的整数。100满足了这两个条件,所以是正确的。

4.5 变量使用的注意事项

变量使用的注意事项

1、变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

public static void main(String[] args) {int x;x = 20; //为x赋值20System.out.println(x);//读取x变量中的值,再打印}

2、变量使用时有作用域的限制。

public static void main(String[] args) {int x = 20;{    int y = 20;}System.out.println(x);//读取x变量中的值,再打印System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量}

3、变量不可以重复定义。

public static void main(String[] args){      int x = 10;      double x = 5.5;//编译失败,变量重复定义}

4.6 强制类型转换

不同类型的变量是否可以在一起运算呢?答案是可以的,但要先进行类型转换再运算。下面我们来学习一下类型转换。其实,我们所学习的数据,它的表示方式是可以灵活多变的,比如把小数转换成整数的操作

转换的过程中,数据遵循一个原则:

范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);

范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)

那么,大家还记得每种类型表示数据的范围吗?忘记了不要紧,我来告诉大家,将各种数据类型按照数据范围从小到大依次列出:

byte -> short -> int -> long -> float -> double

关于数据类型转换有两种方式,我们来学习一下:

1、自动类型转换:表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换

自动类型转换格式: 范围大的数据类型 变量 = 范围小的数据类型值;

如:

double d = 1000;

int i = 100;    double d2 = i;

 

2、强制类型转换

表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换

强制类型转换格式:范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

如:

int  i = (int)6.718;   //i的值为6

double  d = 3.14;int  i2 = (int)d;     //i2的值为3

 

转载地址:http://vgrdb.baihongyu.com/

你可能感兴趣的文章
在Java中哪里可以获得“UTF-8”字符串文字?
查看>>
如何让Git克隆到当前目录
查看>>
从Java 8中的java.util.stream.Stream检索列表
查看>>
如果我针对大小而不是速度进行优化,为什么GCC会生成15-20%的更快代码?
查看>>
在Java中使用分隔符(拆分的对立面)连接数组元素的快速简便方法
查看>>
如何使用CSS更改SVG图像的颜色(jQuery SVG图像替换)?
查看>>
JQuery .each()向后
查看>>
如何从Java中打印XML?
查看>>
Amazon SNS和Amazon SQS有什么区别?
查看>>
在MySQL中的特定列之后添加多个列
查看>>
如何禁用请求库中的日志消息?
查看>>
如何使用composer从Laravel中删除包?
查看>>
如何为某些HTML标记存储任意数据
查看>>
同步等待异步操作,为什么Wait()在这里冻结程序
查看>>
存储库访问被拒绝。通过部署密钥进行访问是只读的
查看>>
“ u”到底是做什么的? “ git push -u原始主机”与“ git push原始主机”
查看>>
如何使用RecyclerView构建Horizontal ListView?
查看>>
Java ResultSet如何检查是否有任何结果
查看>>
如何将OutputStream转换为InputStream?
查看>>
将ArrayList保存到SharedPreferences
查看>>