java基本数据_Java基本数据学习

Java基本数据类型

Java数据类型

Java中的数据类型分为两类,分别是基本数据类型和 引用数据类型,这里先介绍基本数据类型

基本数据类型分类

Java中的基本数据类型分为三类,数值型,布尔型和字符型

数值型数据分为两类,分别是整数类型和浮点数类型

整数类型的默认值为0

浮点数类型的默认值是0.0

布尔型数据的默认值是false

字符型数据的默认值是'\u0000'

整数类型包含四种数据类型,按数据储存范围从小到大依次为byte,short,int,和long

浮点类型包含两种数据类型,按数据储存范围从小到大依次为是float和double

int型的保存范围为-2147483648~2147483647

boolean型的保存范围为true和false

如何给一个变量赋值

数据类型 变量名称 = 内容 ;

例子

int num = 10 ;

boolean flag = true ;

double number = 10.1 ;

char c = '葱' ;

String str = "葱头哥" ;

整数类型

整数类型的默认类型为int型

数据溢出现象与解决方法

观察数据溢出现象

public class JavaDemo {

public static void main ( String args [] ) {

int max = 2147483647 ;// 把int类型的最大数值赋值给变量max

int min = -2147483648 ;// 把int类型的最小数值赋值给变量min

System.out.println( max + 1 ) ;

System.out.println( min - 1 ) ;

}

}

/* 以下为代码执行后输出的内容

* -2147483648max + 1 的结果

* 2147483647min - 1 的结果

*/

观察后可发现,int类型的最大数值加一,结果为int类型的最小数值

int类型的最小数值减一,结果为int类型的最大数值

这种现象就是数据溢出

数据溢出解决方法

方法一将int型常量转换成long型常量,在数字后加"L"或者"l"即可,建议加"L",因为"l"和数字"1"容易混淆

方法二将int型变量转换成long型变量,使用"(long) 变量名称"即可

方法一代码如下所示

public class JavaDemo {

public static void main ( String args [] ) {

int max = 2147483647 ;

int min = -2147483648 ;

System.out.println( max + 1L ) ;

System.out.println( min - 1l ) ;

}

}

/* 以下为代码的输出结果

* 可以观察到在常量1后加上"L"或者"l"后

* 输出的结果就是正确结果

* 2147483648

* -2147483649

*/

方法二代码如下所示

public class JavaDemo {

public static void main ( String args [] ) {

long max = 2147483647 ;

long min = -2147483648 ;

System.out.println( max + 1 ) ;

System.out.println( min - 1 ) ;

}

}

/* 以下为代码执行后输出的结果

* 2147483648

* -2147483649

* 观察后发现本次计算的结果正确

*/

浮点类型

Java中任意一个小数常量对应的类型为double,所以在定义浮点型常量的时候尽量定义为double

如果想要定义一个float变量,必须进行强制转换,否则程序将会报错

public class JavaDemo {

public static void main ( String args [] ) {

float x = 10.1 ;

System.out.println( x ) ;

}

}

程序执行后报错:

JavaDemo.java:3: 错误: 不兼容的类型: 从double转换到float可能会有损失

float x = 10.1 ;

^

1 个错误

正确的定义float型变量的操作如下

public class JavaDemo {

public static void main ( String args [] ) {

float x = (float) 10.1 ;

float y = 111.2F ;

System.out.println( x ) ;

System.out.println( y ) ;

}

}

执行结果:

10.1

111.2

整型数据不能整除时,使用int型数据输出的结果会抹去小数位,想要得到准确数据,需要把两个中至少一个强制转换为浮点型,则输出的结果为浮点型数据

public class JavaDemo {

public static void main ( String args [] ) {

int x = 10 ;

int y = 3 ;

System.out.println( x/y ) ;

}

}

执行结果:

3

结果为整形数据,并非准确计算结果

public class JavaDemo {

public static void main ( String args [] ) {

int x = 10 ;

int y = 3 ;

System.out.println( (double) x/y ) ;

System.out.println( x/ (float) y ) ;

}

}

执行结果:

3.3333333333333335

3.3333333

结果为double型数据和float型数据,我们发现计算结果同Python一样存在不确定尾数

var关键字的使用

Java为静态语言,为了迎合市场需求,JDK1.10后Java出现动态语言支持

例子

public class JavaDemo {

public static void main ( String args [] ) {

var x = 10 ;

var y = 3.14 ;

System.out.println( x ) ;

System.out.println( y ) ;

}

}

字符类型

字符型变量的定义

char 变量名称 = '字符' ;

public class JavaDemo {

public static void main ( String args [] ) {

char c = '吴' ;

System.out.println( c ) ;

}

}

英文字母和阿拉伯数字的Unicode编码范围

Java中的所有字符都使用的十六进制的Unicode编码,此类编码可以表示所有字符,包括中文字符

大写字母 65('A')~90('Z')

小写字母 97('a')~122('z')

数字 48('0')~57('9')

char与int的相互转换

char与int型常量的强制转换,可利用此特点进行大小写字母的转换

public class JavaDemo {

public static void main ( String args [] ) {

int num = (int) 'a' ;

char c = (char) 65 ;

char C = (char) (65 + 32) ;

char Z = (char) ((int) 'z' +32) ;

System.out.println( num ) ;

System.out.println( c ) ;

System.out.println( C ) ;

}

}

执行结果:

97

A

a

定义中文字符的乱码问题解决方法

定义中文字符编译时会出现如下错误,可以在Javac 后跟上 -encoding UTF-8即可解决

C:\Users\86131\Desktop>javac JavaDemo.java

JavaDemo.java:3: 错误: 编码 GBK 的不可映射字符 (0xB4)

char c = '鍚?' ;

^

JavaDemo.java:3: 错误: 未结束的字符文字

char c = '鍚?' ;

^

JavaDemo.java:3: 错误: 未结束的字符文字

char c = '鍚?' ;

^

3 个错误

C:\Users\86131\Desktop>javac -encoding UTF-8 JavaDemo.java

C:\Users\86131\Desktop>java JavaDemo

注意字符与字符串的区别

C:\Users\86131\Desktop>javac -encoding UTF-8 JavaDemo.java

JavaDemo.java:3: 错误: 未结束的字符文字

char c = '吴安师大' ;

^

JavaDemo.java:3: 错误: 未结束的字符文字

char c = '吴安师大' ;

^

JavaDemo.java:3: 错误: 不是语句

char c = '吴安师大' ;

^

3 个错误

布尔类型

布尔型是一种逻辑结果,主要储存两类数据:true和false

例子

public class JavaDemo {

public static void main ( String args [] ) {

boolean flag = true ;

if ( flag ) {

System.out.println("判断结果为true时执行此语句") ;

}

}

}

执行结果:

判断结果为true时执行此语句

字符串

字符串的定义

String 变量名称 = "字符串" ;

例子

public class JavaDemo {

public static void main ( String args [] ) {

String str = "这是一个字符串" ;

System.out.println(str) ;

}

}

执行结果:

这是一个字符串

字符串的连接

public class JavaDemo {

public static void main ( String args [] ) {

int x = 10 ;

int y = 11 ;

boolean flag = true ;

String str = "结果为" + x + y ;

String str1 = "结果为" + (x + y) ;

String str2 = "结果为:" + x * y ;

String str3 = "结果为" + flag ;

String str4 = "结果为" + flag + x ;

System.out.println( str ) ;

System.out.println( str1 ) ;

System.out.println( str2 ) ;

System.out.println( str3 ) ;

System.out.println( str4 ) ;

}

}

执行结果:

结果为1011

结果为21

结果为:110

结果为true

结果为true10

java中没有把字符串*N次等于把字符串赋值N遍的操作,这样操作在Java中会报错

对于上面代码执行结果的分析

字符串与整数或者浮点数进行加法运算,输出结果为字符串

若整数之间用括号先进行数值运算,则数值运算后的结果与原字符串相加产生新字符串

若表达式中存在乘法运算,则按四则运算顺序,先进行乘法运算,而后进行字符串连接运算

字符串与布尔型数据相加,结果为字符串

布尔型数据不可与整型或者浮点型数据进行运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值