[Java 基础] 第二课:数据类型

一:基本概念

1、标识符:标识符可以简单的理解为一个名字,我们需要表示程序代码的很多元素,例如 包、类、方法、代码段、变量等。我们选择的名字就成为标识符。标识符有下面这四个原则:

  • 标识符是由字母、数字、下划线、$符组成。但不能包含@、%、空格等。
  • 标识符可以由数字组成,但是数字不能作为开头。
  • Java的标识符是严格区分大小写的。
  • 再选择标识符时,要具有意义。

面试题可能包含。

2、关键字:在java语言中已经被赋予特定意义的一些单词。一共有53个关键字。其中有两个保留字:const和goto。注意关键字不能被用作标识符!!

注意:const 和goto可能会当做面试题。

3、注释:Java代码的解释说明。不影响程序的运行,用于辅助读程。Java的注释分为下面三种类型。

  • 单行注释       //  注释内容
  • 多行注释          /*  注释内容  */
  • 文档注释        /**  注释内容   */

这里的文档注释可以用作对代码段进行注释,一般解释方法的用法、功能等。在Eclipse里只要将鼠标光标放在方法、关键字等上,就可以查看它的文档注释,第一行是存放的地址,后面是相应的解释。

了解就行

4、变量:在Java中,有些数据值是不固定的,我们还要记录这些值,我们可以把这些值理解成变量。通过三个元素描述变量,变量类型、变量名、变量值。

例:int age=18;

       int  age;           //有时我们不能确定变量的值,可以先不定义。

5、常量:在Java运行过程中一直不会变的量。

二:数据类型

Java中数据类型分为量大类:一类是基本类型,另一种是引用类型。 

1、基本类型

练习1:输出最大最小值

package cn.tedu.basic;

//测试基本类型的取值范围

public class Test1_Scope {
	public static void main(String[] args) {
		//测试整数类型byte、short、int、long
		//定义变量来记录最大最小值
		byte max=Byte.MAX_VALUE;
		byte min=Byte.MIN_VALUE;
		System.out.println("关于byte:  最大值:"+max+"   最小值:"+min);
		//定义变量来记录最大最小值
		short maxSho=Short.MAX_VALUE;
		short minSho=Short.MIN_VALUE;
		System.out.println("关于short:  最大值:"+maxSho+"   最小值:"+minSho);
		//定义变量来记录最大最小值
		int maxIn=Integer.MAX_VALUE;
		int minIn=Integer.MIN_VALUE;
		System.out.println("关于int:  最大值:"+maxIn+"   最小值:"+minIn);
		//定义变量来记录最大最小值
		long maxLon=Long.MAX_VALUE;
		long minLon=Long.MIN_VALUE;
		System.out.println("关于long:  最大值:"+maxLon+"   最小值:"+minLon);
		//定义变量来记录最大最小值
		float minFlo=Float.MIN_VALUE;
		float maxFlo=Float.MAX_VALUE;
		System.out.println("关于float:  最大值:"+maxFlo+"   最小值:"+minFlo);
		//定义变量来记录最大最小值
		double minDou=Double.MIN_VALUE;
		double maxDou=Double.MAX_VALUE;
		System.out.println("关于double:  最大值:"+maxDou+"   最小值:"+minDou);
	}

}

练习2:字符串拼接,输出姓名

package cn.tedu.basic;

import java.util.Scanner;

//通过+完成字符串的拼接
public class Test2_Inof {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//输出:大家好,我叫XXX
		System.out.println("请输入您的姓名:");
		//创建Scanner对象
		Scanner scanner=new Scanner(System.in);
		
		if(scanner.hasNext()) {
			String name=scanner.next();
			System.out.println("大家好,我叫"+name+",很高兴见到大家!");
		}
		scanner.close();

	}

}

练习3:计算圆形面积

package cn.tedu.basic;

import java.util.Scanner;
public class Test3_Round {
	public static void main(String[] args) {
		//计算圆形的面积
		
		System.out.println("请输入圆形半径:");
		Double area=new Scanner(System.in).nextDouble();
		System.out.println("圆形的面积为:"+3.14*area*area);
	}
	

}

练习4:变量值交换

package cn.tedu.basic;

import java.util.Scanner;

public class Test4_Exchange {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//用户输入a和b的值,将a和b的值进行交换
		System.out.println("请输入a的值:");
		int a=new Scanner(System.in).nextInt();
		System.out.println("请输入b的值:");
		int b=new Scanner(System.in).nextInt();
		
		int c=a;
		a=b;
		b=c;
		System.out.println("交换后a="+a+",b="+b);
		
	}

}

这里由于double是非精准的,是由于在内存存储的方式造成的,所以会造成结果不准确。

2、引用类型

引用类型是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组等。

三:基本类型的字面值

  • 整数的字面值是int

int a = 999999999;//错,右侧是int类型,但是超出范围

  • byte,short,char三种在范围内值可以直接赋值

byte b=127;//对

byte b=128;//错,右面已经超过byte范围是int类型的数据

  • 浮点数的字面值是double

double  a=3.14;//对

float a=3.14;//错,右面是double,float是四字节double是八字节存不下

  • 通过加后缀的方式

L –long   如:long a = 99999999999;//错,超出范围,解决方案加L 例:long g=10000000000L;

F –float   如:float a = 3.14;//错,右面是double类型,解决方案加F  例:float s=5.5f;

D –double  如:double a=3;//错,右面是int,解决方案加D或者改成3.0(不加也没影响)   

  • 进制前缀

0b  - 2进制

0x   - 16进制

0    - 8进制

\u   - char类型,16进制  \u0000char类型的默认值

四:基本类型的类型转换

  • 大到小(隐式转换)

  • 小到大(显示转换)

需要进行强制类型转换。

例如:int i=365;
                  byte b=(byte) i;  //如果不转换就会报错

五:运算规则

  • 计算结果的数据类型会和式子中的最大数据类型保持一致。

3/2   得1 ,而不是1.5,结果是int类型

3d/2  得1.5,相当于double/int,结果是double类型

  • byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a=3;

byte b=4;

byte c=a+b;//错,运行时,byte会先自动转成int再运算,int+int还是int

  • 整数运算溢出

整数运算,类似于一个中标,转到最大时,再转会回到最小。

计算:光速运行一年的长度是多少米

System.out.println(300000000*60*60*24*365);

System.out.println(300000000l*60*60*24*365);

  • 浮点数运算不精确

System.out.println(1-0.8);

System.out.println(4.35*100);

  • 浮点数的特殊值

Infinity 无穷大  3.14/0 

Nan  not a number  0/0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值