数据类型
1.什么是注释?注释的作用?注释的分类以及具体表现形式是什么?
注释----解释说明编写的Java代码是什么意思。
作用----为了以后能够知道自己当时写的Java代码的含义或者功能
同时方便他人能够看懂自己所写的Java代码
提高代码的可阅读性
注释分为:
(1)单行注释 一次注释一行代码
(2)多行注释 注释多行内容
(3)文档注释 实际上是一种多行注释,但是可以通过javadoc命令转换成独立于程序以外的一个注释文件
通常出现在被注释代码的上面
通过javadoc命令转换成独立于程序以外的一个注释文件[通常不操作]
2.标识符是什么?标识符的具体规则?
标识符--编写java代码时给java中的元素起名字的字符串。
标识符规则:
可以用数字,字母,_ ,$ 组成,但是数字不能开头。
不能有空格
区分大小写
不能是关键字
3.什么是关键字?Java中常用的关键字?
关键字----Java中为一些单词赋予了特殊含义,这些被赋予特殊含义的单词就是关键字。标识符不能用关键字
Java中的关键字大概50个左右
4.什么是变量?变量的作用?变量的组成?
变量----在程序运行的时候随时可能发生变化的数据就是变量。
变量的作用:保存具体的数据值,限制了数据值在内存中的位置和大小。
Java中变量的组成部分:
(1)数据类型---决定内存空间
(2)变量名称---自定义的,只要符合标识符的规则
(3)初始值---默认值
(4)作用域---有效范围
变量定义格式:
数据类型 变量名称;
例如:int a;
变量的赋值:
变量名称 = 数据值;
例如:a = 100;
变量定义+变量赋值:
数据类型 变量名称 = 数据值;
例如:int a=100;
可以一次性声明/定义多个变量
例如:int a,b,c;
例如:int my1=110,my2=120,my3=119;
5.Java中的基本数据类型有几种?如何表示,取值范围,注意事项?
基本数据类型分为4大类8种:
1.整数类
1.1 byte----字节型 1字节 8位 2进制 -128--127 (-2^7)---(2^7-1)默认值是 0,超过取值范围就会出错。
1.2 short----短整型 2字节 16位 2进制 -32768--32767 (-2^15)---(2^15-1) 默认值是0,超过取值范围就会出错。
1.3 int-----整型 4个字节 32位 2进制 -2147483648--2147483647 (-2^31)---(2^31-1) 默认值是0,超过取值范围就会出错。
1.4 long----长整型 8个字节 64位 2进制 -9223372036854775808--9223372036854775807 (-2^63)---(2^63-1) 默认值 是0,超过取值范围就会出错;在赋值的时候需要添加一个“l””L”后缀,否则以int型对待;如果保存比长整型更大的数据 是采用科学计数法【9.2233719446210545171150474578945e+42】。
2.浮点类—小数
2.1 float----单精度浮点型 4个字节 精度7--8位的有效数字,在赋值的时候需要“f”/”F”作为后缀,否则以双精度浮点型对待。
2.2 double----双精度浮点型 8个字节 精度15--16位的有效数字,在赋值的时候可以有“d”/”d”作为后缀,也可以不同加,不带 后缀的小数都是double 。
3.字符类—表示单个字符
char----字符型 2个字节 【0--65535】 单个字符需要单引号包围
4.布尔类
boolean----布尔型1个字节 true/false
6.基本数据类型之间的转换?注意事项?
在基本数据类型转换中boolean布尔型是不参与的;剩下的7个基本数据类型的精度排序【数据类型转换以此为基础】
byte short char int long float double
----------------------->低精度的数据类型转成高精度的数据类型
<--------------------- 高精度的数据类型转成低精度的数据类型
低精度转高精度【隐式数据类型转换】:
执行这个隐式数据类型转换的过程中,不用修改程序代码,直接赋值完成就可以了,java系统会自动完成数据类型转 换。因为高精度的数据类型所占的内存空间,完全可以包含低精度的数据类型所占的内存空间。
byte bytevalue=100; // 100---byte---1个字节
int intvalue=bytevalue; //隐式数据类型转换 intvalue--100--int---4个字节
long longvalue=100L; // 100L--long--8字节
float floatvalue=longvalue;//隐式数据类型转换 100.0--float--4个字节
高精度转成低精度【显式数据类型转换/强制类型转换】:
显式数据类型转换又叫强制类型转换,那么就是说我们在进行数据类型转换的时候,需要修改程序代码,以体现出此处进行了数据类型转换。因为低精度的数据类型所占的内存空间,不可以包含高精度的数据类型所占的内存空间,所以如果一定要低精度的数据类型所占的内存空间能购包含高精度的数据类型所占的内存空间,那么就需要强制型要求高精度的数据类型折损精度。
格式:
低精度的数据类型 变量名称= (低精度的数据类型)高精度数据类型的变量/数据值
int intvalue=100; //100--int--4个字节
byte bytevalue=(byte)intvalue; //显式数据类型转换
System.out.println("bytevalue=="+bytevalue); //100--byte--1个字节
double doublevalue=12.5;
//小数数据转换成整数数据,是直接去掉小数点以后所有数据值
//这里并不会执行四舍五入操作。
byte bytevalue1=(byte)doublevalue;
System.out.println("bytevalue1=="+bytevalue1);
7.什么是数组?如何定义?如何创建?如何赋值?如何取值?有那些属性?
同一数据类型的一组数据按照顺序排列的复合数据类型---数组。(1.同一数据类型 【进入数组的数据的类型必须相同】2.按照顺序排列 3.复合数据类型)
定义格式: 1. 数据类型 数组名称[]; 2.数据类型 []数组名称;
int arr1[]; char []arr2;
创建格式【为数组开辟保存数据的内存空间】:数组名称 = new 数据类型[空间大小];
arr1=new int[4]; arr2=new char[5];
可以将定义数组与创建数组合并成一句话表示:
1. 数据类型 数组名称[] = new 数据类型[空间大小];
2.数据类型 []数组名称 = new 数据类型[空间大小];
例如:
double arr3[]=new double[4];
byte []arr4=new byte[5];
赋值:
1.逐个赋值 【需要数组下标,从0开始】
格式:数组名称[下标] = 数据值/变量;
arr2[0]='h';
arr2[1]='e';
arr2[2]='l';
arr2[3]='l';
arr2[4]='o';
超过数组空间大小以后会出错“java.lang.ArrayIndexOutOfBoundsException”
2.直接赋值【就是在创建数组的时候赋值】
char chararray[]={'h','e','l','l','o'};
char []chararray={'h','e','l','l','o'};
char []chararray=new char[]{'h','e','l','l','o'};
char chararray[]={'h','e','l','l','o'};
char chararray[]=new char[]{'h','e','l','l','o'};
char []chararray=new char[]{'h','e','l','l','o'};
8.Arrays类【数组的帮助类】
Arrays是java.util包下的一个工具类,提供了许多对数组操作的静态方法,包括数组的排序,对比,转化等方法。
数组转字符串 ----Arrays.toString
数组排序【从小到大排序】----Arrays.sort
数组比较【比较一维数组】----Arrays.equals
数组比较【比较多维数组】----Arrays.deepEquals
数组和ArrayList互转 ----toArray / Arrays.asList
数组填充 ----Arrays.fill
数组拷贝 ----Arrays.copyOf
9.基本数据类型与复合数据类型的区别
基本数据类型:
1.整形:byte,short,intlong;
2.浮点型:float,double;
3.逻辑型:boolean;
4.字符型:float;
复合数据类型:
类,接口,数组等。
基本数据类型存储在栈中,复合数据类型存储在堆中。
基本数据类型内存分配:
内存的栈区空间,不操作堆区空间。
复合数据类型内存分配:
在栈区和堆区都开辟存储空间。
基本数据类型的运算速度比复合数据类型的运算速度快。
10.Scanner类的用法
输入方法:
String next()---接收字符串数据
String nextLine()---接收一行字符串数据
byte nextByte()----接收字节数据
short nextShort()----接收端整型数据
int nextInt()----接收整型数据
long nextLong()----接收长整型数据
float nextFloat()----接收单精度浮点型数据
double nextDouble()----接收双精度浮点型数据
boolean nextBoolean()----接收布尔型数据
例:
import java.util.Scanner;
public class ScannerDemo{
public static void main(String args[]){
//创建Scanner类的对象
Scanner read=new Scanner(System.in);
System.out.println("请输入姓名:");
//对象调用方法,完成某一个功能。
String name=read.next(); //接收字符串数据
System.out.println("请输入年龄:");
int age=read.nextInt(); //接收整型数据
System.out.println("请输入地址:");
String address=read.next(); //接收字符串数据
System.out.println("请输入身高:");
double height=read.nextDouble(); //接收双精度浮点型数据
System.out.println("姓名="+name+",年龄="+age+",地址="+address+",身高="+height);
}
}