java数据类型

java数据类型

一、数据类型前言

1、标识符

    可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等。我们选择的名称就称为标识符,标识符不能完全随意定义,并且遵循以下规则:

  • 标识符可以由英文字母组成,数字,下划线,美元符号组成,其实也可以由中文组成,但是不建议,并且一定不能包含@,%空格等其他的特殊字符
  • 不能以数字开头
  • 标识符严格区分大小写 HELLO hello(HELLO 和hello是2个不同的标识符)
  • 命名时,最好能做到见名知意
  • 标识符不能是java中的关键字或者是保留字,但是名字中可以包含关键字public publics
2、关键字

在java语言中已经被赋予特定意义的一些单词(其实就是被官方占用的名字)。
一共有53个关键字。其中有两个保留字:const和goto。

123456
abstractbooleanbreakbytecasecatch
charclasscontinuedefaultdodouble
elseextendsfalsefinalfinallyfloat
forifimplementsimportinstanceofint
interfacelongnativenewnullpackage
privateprotectedpublicreturnshortstatic
superswitchsynchronizedthisthrowthrows
transienttruetryvoidvolatilewhile
  • 01)用于定义数据类型的关键字: class interface byte short int long float double char boolean void
  • 02)用于定义数据类型值的关键字: true false null
  • 03)用于定义流程控制的关键字: if else switch case default while do for break continue return
  • 04)用于定义访问权限修饰符的关键字: private protected public
  • 05)用于定义类,函数,变量修饰符的关键字: abstract final static synchronized
  • 06)用于定义类与类之间关系的关键字: extends implements
  • 07)用于创建对象及引用对象和判断对象的关键字: new this super instanceof
  • 08)用于处理异常的关键字: try catch finally throw throws
  • 09)用于包的关键字: package import
  • 10)其他修饰符关键字: native strictfp translent volatile assert
3、注释

    Java代码的解释说明。不影响程序的运行,用于辅助读程。
    // 单行注释 (适用于内容较短的注释)
    /* 多行注释 / (适用于内容较长的大段注释)
    /
* 文档注释 */ (通常是标记在类或类的成员上,用于生成javadoc文档)

package com.tedu.zhushi;
/**
 * 这个是专门讲解注释的文档
 */
public class TestZhuShiDemo {
	//单行注释:适用于注释较短的内容,也可以用来注释代码
	//选中要注释的内容,按ctrl+/,取消注释,再按crtl+/
	/*
	 * 多行注释:适用于注释内容较多的时候
	 * 选中要注释的内容,按crtl+shift+/
	 */
	 public static void main(String[] args) {
	  
	 }
}
4、变量
4.1、什么是变量

    在JAVA中,有的数据值是不固定的,总在变,我们还需要记录这些值,我们可以把这些值理解为变量。
    变量是指在内存中开辟的一块存储空间,用于存放运算过程中需要用到的数据
在这里插入图片描述

4.2、如何声明/定义变量1)

方式一:先声明,后赋值
格式:变量类型 变量名; 例如:

//方式1:先声明,后赋值,先准备标签,然后再塞东西
//变量类型 变量名
int age;//表示声明了一个int类型的变量叫做age
age=18;//为age变量赋值,值为18
//准备声明三个整数类型int的变量
int age1,age2,age3;//表示声明了三个int类型的变量叫做age1,age2,age3
age1=19;
age2=20;
age3=30;

方式二:声明变量的同时为变量赋值
格式:变量类型 变量名 = 变量值; 例如:

//方式2:声明变量同时赋值
//变量类型 变量名 = 变量值
int age4=34;//表示声明了一个整数age4,值为34
int age5=50,age6=60,age7=70;
4.3、变量的注意事项

注意事项1: 未经声明的变量不能使用

//注意事项1:未经声明的变量不能使用
age=18;//报红线,因为变量没有声明
int age=19;
System.out.println(age);//输出age变量名中所包含的值
System.out.println(score);//报红线,因为变量没有声明

注意事项2: 变量的命名要符合标识符语法要求(参考标识符)

//注意事项2:变量的命名要尽可能符合标识符语法的要求
//尽量的见名知意,还要遵循驼峰命名法
//一个名字由多个单词组成时,要首字母大写
//类名第一个单词的首字母也要大写TestVariableZhuYi
//变量名是第一个单词的首字母要小写studentParentName
//中文可以作为变量名,但是不建议使用
int 年龄=18;
System.out.println(年龄);
  • 除此之外,变量的命名应尽量做到见名知义,而且要遵循驼峰命名法。
    驼峰命名:即如果变量的名字由多个单词组成,除第一个单词外,其他单词的首字母大写,其余的字母小写。
  • 中文可以作为变量名,但不建议这样做

注意事项3: 变量的访问是指对变量值的访问,可以获取变量值,也可以为变量重新赋值

//注意事项3:可以对变量重新赋值
int a=100;
a=a+100;//先引用变量a,和100相加,变为200,然后重新给a赋值,此时a是200
System.out.println(a);
4.4、常量

    在程序运行过程中一致不会改变的量成为常量。

二、数据类型之基本类型(八种)

1、前言:二进制、bit(位)、byte(字节)简介
  • 十进制: 0 1 2 3 4 5 6 7 8 9
  • 二进制: 0 1
    用八位二进制数组成一组,表示一个数据例如:11001100,这样八位二进制的单位称之为Byte(字节),其中每个进制为成为bit(比特,位)
    1Byte=8bit
    1KB=1024B
    1MB=1024KB
    1GB=1024MB
    1TB=1024GB
    ……
2、基本类型介绍

    Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

类型名称字节空间范围
整数型byte1-27 ~ 27-1或者-128 ~ 127
short2-215 ~ 215-1或者-32768 ~ 32767
int4-231 ~ 231-1
long8-263 ~ 263-1
浮点型float4单精度,对小数部分的精度不高,能精确到7位小数
double8双精度,对小数部分的精度高,能精确到15位小数
字符型char20~65535(就算值是汉字也是数字类型)
布尔型boolean1真 true 假 false
注:char字符型,底层是unicode编码格式,所以能存中文。
2.1 int
  • byte、short、int、long中,int是最常用的整数类型
  • 一个int类型的变量占用4个字节(32位),最大表示范围为:-2^31 ~ 2^31-1,即 -2147483648 ~ 2147483647。
2.2 long
  • 在表示整数时,如果int类型的范围不够,可以使用long型
  • 一个long型的变量占用8个字节(64位),最大表示范围为:-2^63 ~ 2^63-1,即 -9223372036854775808 ~ 9223372036854775807
2.3 float/double
  • 浮点数,就是小数,包括:float和double,即单精度浮点数和双精度浮点数。
  • double精度高,有效数字15位,float精度低,精度7位,可见double类型的精度值是float类型的两倍,这正是其名称(双精度)的来由。
  • 浮点数虽然表示小数,但是只能尽量精确,不是绝对精确,所以浮点数不能用来表示精确地值,如货币
2.4 boolean
  • boolean类型适用于逻辑运算,表示某个条件是否成立,一般用于程序的流程控制。(后面会讲解流程控制)
  • boolean类型只允许取值true或false,true表示条件成立,而false表示条件不成立。
  • boolean型变量经常用于存储关系运算的结果,所谓关系运算就是比较两个变量的大小、相等等关系。
2.5 char
  • 字符就是可以看到的都可以是字符
  • char类型的范围是0~65535
  • Java中有字符类型(char) 和 字符串类型(String)
//char类型
char c1='字';//声明了一个char类型的变量c1,存储了字
char c2='a';
char c3='1';
char c4=123;
System.out.println(c4);
//7.String类型--不是八大基本类型 
String s1="字";//声明一个String类型的变量s1,存储了字
String s4="今天的天气真的太好了,可是我看不到";
String s2="a";
String s3="1";

 

三、案列

1、输入个人信息

    java.util.Scanner in = new java.util.Scanner(System.in); //带包名写法
    Scanner in = new Scanner(System.in); //在上面导过包了,这里就不用加包名了
    先记住这个写法,这里是声明了一个扫描器(其实是一个管道,流),可以接收用户在控制台输入的数据
    1、运行程序,在Eclipse的控制台(console窗口)中提示用户录入个人信息
    2、用户根据提示,依次在提示内容的后面输入相应的信息
    3、最后在控制台输出用户输入的内容

package com.tedu.demo;
//导包,导了java.util.Scanner这个包
import java.util.Scanner;

/**
 * 输入个人信息
 */
public class TestInputInfo {
	public static void main(String[] args) {
		//1.在控制台输入内容,然后可以通过程序接收到你所输入的内容
		//声明一个扫描器
		Scanner sc=new Scanner(System.in);
		//提示信息
		System.out.println("请输入个人信息");
		System.out.println("请输入姓名:");
		//命令扫描器接受在控制台输入的内容
		String name=sc.nextLine();//可以接受用户输入的内容作为字符串
		System.out.println("请输入性别:");
		String gender=sc.nextLine();
		System.out.println("请输入年龄");
		int age=sc.nextInt();//接受用户输入的内容为整数
		//String age=sc.nextLine();
		/*
		 * println 输出内容并换行
		 * print 输出内容不换行
		 */
//		System.out.print(name);
//		System.out.print(",");
//		System.out.print(gender);
//		System.out.print(",");
//		System.out.print(age);
		System.out.println(name+","+gender+","+age);
	}
}
2、圆形面积

    假设 半径r = 50;
    S(圆的面积) = π * r^2
    C(圆的周长) = 2 * π * r

package com.tedu.demo;

import java.util.Scanner;

/**
 * 来求圆的面积和周长
 */
public class TestCircle {
	public static void main(String[] args) {
		System.out.println("请输入圆的半径");
		Double r=new Scanner(System.in).nextDouble();//接受在控制台输入的浮点数
		System.out.println("半径为:"+r);
		//输出圆的面积 π*r*r
		System.out.println("圆的面积:"+3.14*r*r);
		//输出圆的周长 π*2*r
		System.out.println("圆的周长:"+2*3.14*r);
	}
}
3、变量交换

在这里插入图片描述
接收用户输入的值a和b。
假设a=1,b=2将a和b的值做交换。
在这里插入图片描述
声明int变量a和int变量b如下:
int a = 1, b=2;
现在要求交换a、b变量的值(不能直接 a=2,b=1);

package com.tedu.typechange;
/**
 * 实现变量交换案例
 */
public class TestChange {
	public static void main(String[] args) {
		int a=1;
		int b=2;
		//交换a,b两个变量的值,a=2,b=1
		//新建一个第三方的变量c,然后让c接收a的值
		int c=a;//c=1
		//将b的值赋予a
		a=b;//a=2
		//将c的值赋予b
		b=c;//b=1
		System.out.println(a);
		System.out.println(b);
	}
}

四、基本类型的字面值规则

    所谓的字面值也叫做字面量、直接量,是指在Java中直接写出来的数据。例如:

int a=100;//100就是变量a的字面值
double b=3.14;//3.14就是b的字面值
1、规则1:整数字面值是int类型

    也就是说,在Java程序中直接写出来的整数,默认是int类型。例如:

//规则1:整数字面值是int类型
int a=100;//声明了一个int类型的变量a,字面值是100
System.out.println(100);//正确的
//System.out.println(12300000000);//编译错误,因为12300000000默认是int类型
System.out.println(12300000000L);//L表示12300000000是long类型
2、规则2:浮点数的字面值是double类型

    也就是说,在Java程序中直接写出来的小数,默认是double类型。例如:

//规则2:浮点数的字面值是double类型
double x=3.14;//正确的
//float y=3.14;//编译错误,3.14默认是double类型,double占8个字节,float占4个字节
float y=3.14f;//f表示3.,14是float类型
float y1=3.14F;//f表示3.,14是float类型
3、规则3: 在不超范围的前提下, 可以使用int字面值为byte、short、char类型赋值,系统会自动按对应的类型处理

    列如:

//规则3: 在不超范围的前提下, 可以使用int字面值为byte、short、char类型赋值,
//系统会自动按对应的类型处理
byte a1=127;//127默认是int类型,但是自动按照byte类型处理了
//byte a2=128;//因为128超过了byte类型的范围
short b1=32767;
char c1=65535;
//另外,在不超过范围的前提下,int类型的值也可以直接赋值给long类型的变量
long d1=1000;//正确,1000默认是int类型,但是自动转换了
//long d2=20000000000000;
4、规则4:字面值后缀LFD
  1. 整数后跟大写L或小写l – 表示该数值是long类型
  2. 小数后面跟大写F或小写f – 表示该数值是float类型
  3. 小数后面跟大小D或者小写d – 表示该数值是double类型
double d=3D;//3默认是int类型,加上D就是double
double d2=3;
System.out.println(d2);
5、规则5:进制前缀
什么也不写默认是十进制
0x 16进制 0x0001
0 8进制 023
0b 2进制 0b0101
\u char类型 16进制 默认值是\u0000
System.out.println(0x0123);//16进制的291
System.out.println(023);//8进制的19
System.out.println(0b0101);//2进制的5

五、扩展(生成模板)

1、点击windowPreferencesJavaEditorTemplatesNew…

在这里插入图片描述

2、然后填写如下内容

    目的是输出nextLine,就可以快速生成Pattern的内容

String ${cursor} = new Scanner(System.in).nextLine();${:import(java.util.Scanner)}

在这里插入图片描述

    然后点击OK即可

3、测试

    然后在eclipse中,输入nextLine,然后快速生成代码即为成功!!!
    以此同理,可以自行创建nextInt,nextDouble,nextLong等模板

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值