Java基础知识

目录

 ⛳️IDE(集成开发环境)

 ⛳️注释

 ⛳️关键字

 ⛳️保留字 

 ⛳️标识符

 ⛳️java变量

 ⛳️Java 数据类型

 ⛳️Java基本数据类型

1.整数类型

2.浮点型

3.布尔型(boolean 逻辑型)

4.字符型(char)

 ⛳️基本数据类型转换

强制转换可能会带来的问题


⛳️IDE(集成开发环境)

1.概念:用于提供开发环境的应用程序,一般包括编辑器、编译器、调试器和图形用户界面。

2.常用的Java开发工具有:

①IntelliJ IDEA

②Eclipse

⛳️注释

1.概念:对代码功能进行说明,使用特定符号进行标注。

2.注释的类型:

①单行注释(//,快捷键:ctrl+/):对某一行代码进行说明。

②多行注释(/* */,快捷键:ctrl+shift+/):注释多行代码。

③文档注释(/*** */):对类、方法(函数)、属性的功能进行说明,可在调用时提

示。

附加作用:调试代码

⛳️关键字

1.定义:被Java语言赋予特定含义的字符串(单词),主要用来修饰包、类、变量、方法。

2.特点:关键字都是小写的。

Java基础知识_第1张图片

 Java基础知识_第2张图片

 ⛳️保留字 

1.定义:现有Java版本尚未使用的关键字,后期可能会用。

2.命名标记符时避免使用这些保留字: goto 、const

⛳️标识符

1.概念:对包、类、变量、方法等进行命名的字符序列(通俗的讲就是我们可以自己命名的名称)。

2.语法强制:

①由大小写字母、数字、下划线、或$组成,数字不能开头。

②不能是关键字和保留字,但可以包含关键字和保留字。

③严格区分大小写,长度无限制。

④不能包含空格。

3.约定俗成:

①见名知意:int age = 10; String name = "zhangsan";

②驼峰表示:userName、user_name

③包名:所有字母都小写:huawei、baidu、alibaba

④类名、接口名:首字母大写(为了和变量,方法区分):UserName

⑤变量名、方法名:userName、playGame()

⑥常量名:所有字母都大写,驼峰失效,多个单词时每个单词用下划线连接: USER_NAME

⛳️java变量

1.定义:程序中基本存储单位,运行时值可变。

2.本质:内存中的一块区域,使用变量名来访问这块区域。

3.使用:先声明,后赋值,必须进行赋值才能使用。

4.声明语法(Java是强类型语言):

[修饰符] 数据类型 变量名 = 值;

有以下几种声明类型:

int a;
a=21;

或者

int a = 21;

或者

int a,b,c;
a=12;
b=21;
c=20;

或者

int a=12,b=21,c=2000;

⛳️Java 数据类型

1.意义:对每一种数据都定义了具体的数据类型,在内存中分配了不同大小的内存空间,可以指导程序中的数据如何存储,以及如何计算。

2.分类

a.基本类型(8种):byte,short,int,long;float,double;char;boolean

①数值型:

整数类型:byte,short,int,long;

浮点类型:float,double;

②字符型:char

③布尔型:boolean

b.引用类型:

①类:例如:String,class;

②接口:interface

③数组:[]

String是核心类库中定义好的一个类,所以首字母大写,表示字符串类型。

⛳️Java基本数据类型

1.整数类型:

整形又分为byte(占用1个字节也就是8个比特位,-128 ~ 127 )、short(2字节)、int(4字节)、long(8字节)。

注意:Java语言的整型字面量默认为int型,声明long型常量可以加L(大写L和小写l都可以,但是为了与数字区分,一般用大写L)。

例如:

long a=1221L;

注: Java 各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。

查看表数范围(int中存储最大值的类为Integer,其余的为其本身的单词,只不过首字母大写):

System.out.println(Integer.MAX_VALUE);
System.out.println(Short.MAX_VALUE);
System.out.println(Long.MAX_VALUE);
System.out.println(Byte.MAX_VALUE);

整数其他进制表示方式:

二进制表示:整形字面值前加0b

byte a=0b11;//输出为十进制的3

八进制表示:整形字面值前加0

int a=011;//输出为十进制的9

十六进制表示:整形字面值前加0x

int a=0x11;//输出为十进制的17

2.浮点型:

浮点型分为float(四字节)、double(八字节),表示小数。

float为单精度,double为双精度,双精度的精度比单精度高。

注意:Java 浮点型常量默认为 double 型,如要声明一个常量为 float 型,则需在数字后面加 f 或 F。

例如:

float a = 10.0001f;

注:与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平

台影响。

浮点型有两种表示形式:

①十进制表示

②科学计数法表示

3.布尔型(boolean 逻辑型):

boolean 类型适于逻辑运算,一般用于程序流程控制 。

java语言中boolean 类型数据只允许取值 true 或 false 。

注意:不可以0或非 0 的整数替代false和true,这点和C语言不同。

4.字符型(char):

可以表示一个字符,占两个字节的内存。

char类型可以参与算术运算,因为char类型存储时存储的不是字符,而是字符在Unicode编码表中的编码,运算时使用的是编码表中十进制对应的值。

例如:

char a = 'a';
System.out.println(a+0);
//输出为97

Unicode:一种编码,主要是存储对照字符,编号范围从0x000000 到 0x10FFFF (十六进制),有 110 多万,每个字符都有一个唯一的 Unicode 编号,这个编号一般写成 16 进制,在前面加上U+。

例如:

“马”的 Unicode 是U+9A6C

Java中的字符使用的是Unicode编码表,Unicode编码表可以表示世界上所有的语言。

UTF-8:Unicode 编码的一种具体实现,它规定了字符转换到二进制编码的一系列规则。

特点:它是一种可变(长度可变)的编码方式,可以使用 1~4个字 节表示一个符号,根据不同的符号而变化字节长度。

如:英文字符少,0-256,一个字节就可以存储,所以一个英文字母在UTF-8字符集中只占一个字节;而中文多,一个字节表示不了,UTF-8中一个中文占三个字节。

⛳️基本数据类型转换

除boolean类型以外,java中其他7种基本数据类型之间可以相互转换。

分类:分为默认转换和强制转换 。

容量大小排序:byte short char ---->int---->long---->float---->double

byte,short,char之间不分大小,不会相互转换,在计算时首先会转换为int类型,强制转换 。

1.默认转换(隐式转换):由容量小的基本类型转换为容量大的基本数据类型。

例如:

byte a = 127;
short b = a;
int c = i;//8字节
float f = c;//4字节

思考: float在内存中占4个字节的空间,而long型占用的是8个字节的空间,为什么4个字节的float型的最大值会大于long型的最大值呢?

long整型数,在内存中占用8个字节共64位,而 float在内存中占4个字节共32位,但是浮点数在内存中是这样的:V=(-1)^s * M * 2^E

Java基础知识_第3张图片

浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。

其中第1位,符号位,即S;接下来的8位,指数域,即E;剩下的23位,小数域,即M。

也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大。

2.强制转换:由容量大的基本数据类型转换为容量小的基本数据类型。

例如:

int x = 10;
byte y = (byte)x;//byte y = x;会报错

编译系统认为int类型是比较大的,所以它认为byte放不下int,此时就需要强制转换。

强制转换可能会带来的问题:

1.数据溢出:当数据溢出时,把超出的字节去掉,最高位为符号位。

例如:

int x = 258;
byte y = (byte)x;
System.out.println(y);//-128

2.精度降低:比如在浮点型向整形转换时,由于整形只能存储整数,所以会损失掉小数部分,就造成了精度降低。

例如:

float a = 10.35f;
long b = (long)a;
System.out.println(b);//输出10

混合运算时,小容量类型会默认自动上升为大容量类型。

你可能感兴趣的:(java,intellij-idea)