一、Java 基本数据类型
Java 的两大数据类型:
基本数据类型
引用数据类型
1.基本数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型
整形:
byte: 位数数据为 8,默认值为 0,可表示的数据范围为 -128 ~128
例如:请输出byte类型的最值
byte byte_min = Byte.MIN_VALUE; //获取byte类型的最小值
byte byte_max =Byte.MAX_VALUE;//获取byte类型的最大值
System.out.println("byte类型的最小值是:"+byte_min)
System.out.println("byte类型的最大值是:"+byte_max)
输出结果为:byte类型的最小值是:-128
输出结果为:byte类型的最大值是:127
short:位数数据为 16,默认值为 0 ,可表示的数据范围为 -32768~32767
例如:请输出short类型的最值
short short_min = Short.MIN_VALUE; //获取short类型的最小值
short short_max =Short.MAX_VALUE;//获取short类型的最大值
System.out.println("short类型的最小值是:"+short_min)
System.out.println("short类型的最大值是:"+short_max)
输出结果为:short类型的最小值是: -32768
输出结果为:short类型的最大值是:32767
int:位数数据为 32,默认值为 0,可表示数据范围为-2141483648~2141483647
例如:请输出int类型的最值
int int_min = Int.MIN_VALUE; //获取int类型的最小值
int int_max =Int.MAX_VALUE;//获取int类型的最大值
System.out.println("int类型的最小值是:"+int_min)
System.out.println("int类型的最大值是:"+int_max)
输出结果为:int类型的最小值是: -2141483648
输出结果为:int类型的最大值是:2141483647
long:位数数据为 64,默认值为 0,可表示数据范围-9223372036854775808~9223372036854775807
例如:请输出int类型的最值
long long_min = Long.MIN_VALUE; //获取long类型的最小值
long long_max =Long.MAX_VALUE;//获取long类型的最大值
System.out.println("long类型的最小值是:"+long_min)
System.out.println("long类型的最大值是:"+long_max)
输出结果为:long类型的最小值是:-9223372036854775808
输出结果为:long类型的最大值是:9223372036854775807
浮点型
float: 位数数据为 32 ,默认值为 0.0,可表示的数据范围 1.4E-45~3.4028235E38
例如:请输出float类型的最值
float float_min = Float.MIN_VALUE; //获取float类型的最小值
float float_max =Float.MAX_VALUE;//获取float类型的最大值
System.out.println("float类型的最小值是:"+float_min)
System.out.println("float类型的最大值是:"+float_max)
输出结果为:float类型的最小值是:1.4E-45
输出结果为:float类型的最大值是:3.4028235E38
double:位数数据 64 ,默认值为 0.0 ,可表示的数据范围 4.9E-324~1.7976931348623157E308
例如:请输出double类型的最值
double double_min = Double.MIN_VALUE; //获取double类型的最小值
double double_max =Double.MAX_VALUE;//获取double类型的最大值
System.out.println("double类型的最小值是:"+double_min)
System.out.println("double类型的最大值是:"+double_max)
输出结果为:double类型的最小值是: 4.9E-324
输出结果为:double类型的最大值是:1.7976931348623157E308
字符型
char:位数数据 16,默认值 ‘\u0000’ , 可表示的数据范围 0~65535
在ASCII码中,大写字母的ASCII码值的范围是65 ~ 90,小写字母的范围是97~122,可以发现,对应的大小写字母ASCII码值相差32,就此可以轻松的转换大小写字母。
例如:输出a的ASCII码的值,并将字母a转换为大写。
char x = 'a';
int y = x;
//将字符型赋值给整型
System.out.println(y);
输出字母a的ASCII码值 97
//将字母a转换成A,在ASCII码中相差32,(char)表示将int类型强制转换为char类型
System.out.println((char)(y-32));
输出结果为 97
A
布尔型
Boolean:位数数据 1 ,默认值 false ,可表示数据范围 true 或者false
例如:输出Boolean数据类型
boolean t =true;
System.out.println("t="+t);
输出结果:t = true
字符串
String:是引用数据类型,是一个类(所以首字母大写),对String类型的变量使用“+”,则表示要执行字符串的连接操作。
例如:输出字符串类型
String s1 = "我爱学";
String s2 ="Java!!";
删除线格式
System.out.println(s1+s2);
//输出结果:我爱学Java!!
数据类型的转换
1.自动类型转换
规则:byte→short(char)→int→long→float→double;
从左往右可自动转换类型
2.强制类型转换
规则与自动类型转换相反*
语法:(转换到的类型)需要转换的值;
例如:
double d = 3.10;
int n = (int)d;
二、变量与常量
1.常量:就是固定不变的量,一旦被定义,它的值就不能再被更改。声明常量的语法为:
final 数据类型 常量名称 = 值;
常量名称通常使用大写字母,例如PI、YEAR等,但这并不是硬性要求,而只是一个习惯。常量标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)等组成,不能以数字开头,也不能是 java中的保留字和关键字。
当常量用于一个类的成员变量时,必须给常量赋值,否则会出现编译错误。
例如:
final double PI=3.14159265;
System.out.println("圆周率π约等于:"+PI);
输出结果:圆周率π约等于3.14159265;
2.变量:变量代表程序的状态,程序通过改变变量的值来改变整个程序的状态。为了方便使用变量的值,在程序中需要给变量设定一个名字,这就是变量名。
Java是一种强类型的语言,所以变量在使用之前必须首先声明数据类型,语法如下
数据类型 变量名称;
int a;
也可在声明变量时设定改变量的值
int a =5;
在程序中,可以给变量重新赋值
int m =10;
m=100;
例如:请输出变量x的值
int x = 10;
x=20;
System.out.println("x="+x);
输出结果:x=20;
变量的作用域
在java中,变量的作用域分为四个级别:类级、对象实例级、方法级、快级。
类级变量又称全局变量或静态变量,需要使用关键字 static修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。
对象实例级变量又称为成员变量,实例化后才会分配内存空间,也才能访问。
方法级变量就是在方法内部定义的变量,又称局部变量。
例如:
public class Test{
public static String name = "世界你好";
public int i;
public void test(){
int j =3;
if(j==3){ //块可以访问方法级变量,j为test方法中的变量
int k =5;
System.out.println("k="+k);
}
// System.out.println("k="+k); //块中的变量不能被外部调用,这样写会报错
System.out.println("name="+name+",i="+i+",j="+j);
}
public static void main(String[] args){
System.out.println(Test.name);
Test t =new Test();
t.test();
}
}
运行结果:世界你好
k=5;
name=世界你好,i=0,j=3
通过这个例子可以看出,变量在不同的地方起作用的范围也是不同的。块中定义的变量是局部变量,不能被外部调用。
三、字符串
String类的本质
String类的本质是字符数组,String类是Java中的文本数据类型。字符串是由字母、数字、汉字和下划线组成的一串字符。字符串常量是用双引号括起来的内容。java程序中所有字符串字面值(如“abc”)都作为此类的实例实现。字符串是常量,他们的值在创建之后不能更改,但是可以使用其他变量重新赋值的方式进行更改。
1.直接创建
直接使用双引号为字符串赋值,语法如下:
String 字符串名 = “字符串”;
- 字符串名:一个合法的标识符
- 字符串:由字符组成
2.使用 new 关键字创建
在java.lang的包的String类中有多重重载的构造方法,可以通过new关键字调用String类的构造方法创建字符串。
(1)public String()方法
该方法初始化一个新创建的String类对象,使其表示一个空字符序列。由于String是不可变化的,此构造方法几乎不用。具体代码如下:
String s =new String();
注意:使用String声明的空字符串,它的值不是null,而是"",它是实例化的字符串对象,它不包含任何字符。
(2)public String(String original)方法
该方法初始化一个新创建的String 类对象,使其表示一个与参数相同的字符序列,即新创建的字符串是该参数字符串的副本。具体代码如下:
String s = new String("hello word");
(3)public String(char[] value)方法
该方法分配一个新的String类对象,使其表示字符数组参数中当前包含的字符序列。该字符数组的内容已经被复制,后续对字符数组的修改不会影响新创建的字符串。具体代码如下:
char[] c = {'j','a','v','a'};
String s = new String(c);
(4)public String(char[] value,int offset,int count)方法
该方法分配一个新的String类对象,它包含取自字符数组参数一个子数组的字符。offset参数是子数组第一个字符的索引,count参数指定子数组的长度。具体代码如下:
char[] c = {'h','e','l','l','o','j','a','v','a'};
String s = new String(c,3,5);
实例:使用String类创建字符串实例
public class Test{
public static void main(String[] args){
//创建一个空字符串
String str1 = new String();
//创建一个内容为hello的字符串
String str2 = new String("hello");
//创建一个内容为字符数组的字符串
char[] c = new char[] {'a','b','c'};
String str3 = new String(c);
System.out.println("a"+str1+"b");
System.out.println(str2);
System.out.println(str3);
}
}
输出结果:ab
hello
abc