java基本类型address_Java基础系列--01_基础类型

本文介绍了Java的基础知识,包括J2SE、J2ME、J2EE的区别,JDK、JRE、JVM的关系,以及环境变量的理解。接着详细讲解了Java的标识符规则、关键字、命名规范,并阐述了数据类型,特别是基本类型和引用类型的区别。此外,文章还讨论了数据类型的转换规则,强调了在转换过程中的注意事项,如布尔类型不参与转换,整数默认为int类型,浮点数默认为double类型。最后,文章通过实例展示了数据类型转换的具体应用及其可能的精度损失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

J2SE、J2ME、J2EE分别指什么?

J2SE 基础版,桌面应用。

J2ME 微型版,手机开发。(android,ios)

J2EE 企业版,所有浏览器访问的应用程序。

注意:JDK5以后改名

JavaSE,JavaME,JavaEE,J2SE是学习其他两门的基础。

JDK,JRE,JVM的作用及关系

JDK:用于开发java程序

JRE:用于保证java代码的执行

JVM:保证java语言跨平台(相当于是翻译官,但JVM本身是不跨平台的)

包含关系:JDK(JRE(JVM))

path,JAVA_HOME,ClassPath的理解

path:保证JDK目录下bin文件的.exe文件可以在任意的目录下打开,编译Java的源代码

JAVA_HOME:方便修改jdk的版本,而不需要重新修改path下的路径,防止意外修改的错误

ClassPath:让指定的class文件在任意目录都可以被访问。

在最左边配置一个.; ,这样做的好处就是能够先在当前目录下查找并执行。具体的配置,可以自己去百度看看

关键字:

const,goto是Java的保留字,未使用。

标识符:

(1)对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

由26个英文字母大小写,数字:0-9 符号:_ 和$ 组成

(2)组成规则

A:标识符由字母、下划线“_” 、美元符“$”或数字组成。

B:标识符应以字母、下划线 、美元符开头,不能以数字开头。

C:不能和关键字重名。

D:名字不能使用空格隔开。

E:Java中严格区分大小写

(3)常见的命名规则:

包:用于把同名的文件放到不同的目录下,全部小写,多级包用.分开

举例:java.nio.file(Files类所在的包)

类和接口:(驼峰命名)

每个单词的首字母大写

举例:类:InputStream(输入流) 接口:AutoStream(输入流实现的接口)

方法和变量:首字母小写,第二个单词的首字母大写

举例:方法:main(),toString() 变量:args,studentName

常量:全部大写,多个单词使用_隔开

举例:STUDENT_MAX_AGE

注释:

多行注释:/*注释内容*/

单行注释://注释内容

注释的作用:对程序进行解释说明,还可以用于调试程序;或者可以提醒此处应当注意的问题

//固定格式,main方法是程序的入口

public static voidmain(String[] args){

//经典输出语句

System.out.println("helloWorld");

}

数据类型

基本类型:存储于栈中

引用类型:变量名存储与栈中,地址值存储于堆中(方法存储于方法区中)

Java的8种基本类型

类型

字节

默认值

表示范围

byte

1

0

-28 ~ 28-1

short

2

0

-216 ~ 216-1

int

4

0

-232 ~ 232-1

long

8

0l

-264 ~ 264-1

float

4

0f

double

8

0

char

2

u0000

0~65535(ASCII)

bollean

false

注意:

整数默认是int类型。long类型需要加L或者l后缀。

浮点数默认是double类型。float类型需要加F或者f后缀。

官方声明“boolean类型的变量所占的字节并不确定。

boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.

布尔类型:布尔数据类型只有两个可能的值:真和假。使用此数据类型为跟踪真/假条件的简单标记。这种数据类型就表示这一点信息,但是它的“大小”并不是精确定义的。

数据类型转换

(1)boolean类型不参与转换

(2)默认转换

A:从小到大

B:byte,short,char -- int -- long -- float -- double

C:byte,short,char之间不相互转换,直接转成int类型参与运算。

(3)强制转换

A:从大到小

B:可能会有精度的损失,一般不建议这样使用。

C:格式:

目标数据类型 变量名 = (目标数据类型) (被转换的数据);

(4)注意事项:

A:float的表示

float f1 = 12.345f;

float f2 = (float)12.345;  //自身到自身,无区别

B:下面的程序的问题

1 byte b1 = 3;2 byte b2 = 4;3 //byte b3 = b1 + b2;//Type mismatch: cannot convert from int to byte(无法将int转换为byte)4 //byte b3 = (byte)b1 + b2;//Type mismatch: cannot convert from int to byte(无法将int转换为byte)

5 byte b4 = 3 + 4;6 /*解释:b1 + b2在参与运算的时候,首先会自动转换成int类型。

在这个时候,b1和b2其实都被提升了类型。

所以,他们的计算结果也应该是int类型。

最终,就相当于直接把int类型赋值给byte类型,所以,会有精度的损失。

如果参与运算的是常量,编译器会先计算值,在看该值是否是左边能够表示的范围。

如果是,就不报错。

*/

C:下面的操作结果是什么?

1 byte b0 = 127;2 byte b1 = 130; //Type mismatch: cannot convert from int to byte

3 byte b2 = (byte)130;4 byte b3 = (byte)300;

//计算机的运算都是通过数据的补码运算的,这一点很重要5 System.out.println(b2);  //?6 System.out.println(b3);  //?

程序解释:

byte b2 = (byte)130;

数据:130默认是int类型(4字节,32位)的十进制数据。

第一步:十进制的130转换成二进制数据。

130 = 128 + 2

128 64 32 16 8 4 2 1

1 0 0 0 0 0 1 0

第二步:130在内存中的表示形式,做了截取(byte:1字节,8位)

00000000 00000000 00000000 10000010

截取后的结果是:10000010

第三步:二进制数据是10000010

通过观察,我们发现这是一个负数。

原码:1 0000010

反码:1 1111101

补码:1 1111110

最终的结果是:十进制的(-126)

1 1111110

第二个:

byte b3 = (byte)300;[256+32+8+4]

二进制:

00000000 00000000 00000001 00101100

截取后:十进制的(44)

00101100

D:字符参与运算

将字符转换为ASCII所对应的值

如:'a'--97 'A'--65 '0'--48

键盘:0-9,A-Z,a-z   对应   ASCII:48-57 65-90 95-122

E:字符串参与运算:字符串前面与后面的+,表示字符串的连接

1 System.out.println('a'); //a

2 System.out.println('a' + 1);//98

3 System.out.println("hello"+'a'+1); //helloa1

4 System.out.println('a'+1+"hello"); //98hello

5 System.out.println("5+5="+5+5); //5+5=55

6 System.out.println(5+5+"=5+5"); //10=5+5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值