Java基础信息入门笔记

一、定义类

如果一个类声明为public,则要求文件名和类名必须一致。

二、虚拟机的工作流程

编写源文件(*.java)

通过编译器javac,将源文件编译成*.class字节码文件

类加载器

在执行一个类之前,读取类的过程称为类加载

先加载启动类库、再加载扩展类库,最后加载用户自定义类库。

正常的类加载顺序可以避免一些非法代码的执行,并可以提高代码执行的安全性

字节码校验器

安全性原因之一,字节码校验器校验不通过,产生异常

解释器

将*.class解释为不同的操作系统所识别的代码,跨平台。

操作系统

三、变量

变量及三要素

定义:是命名的一块内存空间,空间中的数据可以根据需要发生变化。通过使用新数据替换老数据,达到内存空间的重复利用

合并声明

对多个同类型的变量声明,可以在一个声明语句中完成;

声明可以和初始化合并完成;

1、数据类型

数据类型

关键字

文字描述

内存占用(字节)

取值范围

数值型

整数类型

byte

字节型

1

-128~127

(-2的7到2的7次方-1)

short

短整型

2

-32768~32767

(-2的15到2的15次方-1)

int

整型

4

-2147483648~2147483647

(-2的31到2的31次方-1)

long

长整型

8

(-2的63到2的63次方-1)

浮点类型

float

单精度浮点型

4

精度为6~7位

double

双精度浮点型

8

精度为15~16位

字符型

char

以整型方式存放

2

ASCⅡ码:‘A’==65 'a'==97

字符型采用Unicode编码,一个字符型变量可以存放中文字。

char x=‘d’;单引号中只能存放一个字符

布尔型

boolean

通常用于判断

1

true(真)false(假)

2、变量名

3、变量值

字节换算

8比特--->1字节

1kb---->1024字节

1M---->1024kb

1G---->1024M

1T---->1024G

【基本数据类型】

     基本数据类型:声明时直接在栈内存中开辟空间,并直接在当前内存中存放数据,赋值时传递的是变量中的值,总的来说,基本数据类型是传值的。 

【引用数据类型】

   声明引用数据类型(数组或对象),会将实际的数据存放在堆内存中,同时,在栈内存中声明一个数组名或对象名,存放着在堆内存中的首地址;

   所以,当使用数组名赋值时,传递的是地址。总的来说,引用数据类型是传地址的。

静态区: 保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在整个程序的生命周期内都存在,由编译器在编译的时候分配。

堆区:  一般由程序员分配释放,由 malloc 系列函数或 new 操作符分配的内存,其生命周期由 free 或 delete 决定。在没有释放之前一直存在,直到程序结束,由OS释放。其特点是使用灵活,空间比较大,但容易出错

栈区: 由编译器自动分配释放,保存局部变量,栈上的内容只在方法的范围内存在,当方法运行结束,这些内容也会自动被销毁,其特点是效率高,但空间大小有限

文字常量区: 常量字符串就是放在这里的。程序结束后由系统释放。

四、数据类型的转换

1、自动类型转换

当小类型和大类型运算时,自动将小类型转换为大类型。

float>long)float类型既包含整数部分,也包含小数部分,而long只包含整数部分。

2、强制类型转换

一般发生在大类型转小类型时,可能会损失精度。

浮点常量默认为double,所以float变量赋值时;float f=4.5f;float f1=(float)4.5;

3、基本数据类型优先级:byte<short<int<long<float<double

4、整数和整数运算,结果至少是int。

示例: byte B1=2;

byte b2=9;

byte b3=b1+b2;

编译错误。b1+b2结果为int,不能直接赋值给byte变量。

5、局部变量使用前,必须初始化。否则编译错误。

6、数据类型转换的应用:

*转string:待转换的数据.ToString();

int转double:隐式转换(自动转换)

double转int:显示转换(强制转换),有可能丢失数据

string转int:int.Parse(待转换的字符串);

string转double:double.parse(待转换的字符串);

五、注释

定义:使用一些描述语句,让你的代码便于阅读和理解,注释内容,没有任何实质功能,不能参阅编译,只存在源代码中。

单行注释 //

多行注释 /* */

文档注释 /** */

用于类、方法、全局变量。可以使用javadoc.exe产生帮助文档

六、常量

定义:常量也是一块命名的内存空间,但在运行期间,空间的内容不能发生变化

定义常量使用 final 关键字,常量名一般使用全大写字符。

语法:final 常量名 = 值;

 

 

 

意义: 1、可以引入业务上的名字

            2、可以做到一改全改

七、标识符

凡是可以命名的地方都叫标识符。通常使用标识符命名类、方法、变量

用户标识符

硬性要求

1、数字、字母、下划线及$组成

2、不得以数字开头

3、名称不能与关键字相同

4、同一函数中变量名不得相同

软性要求

1、变量名要望文知意

2、方法名/变量名首字母小写

3、类名以大写字符开始

4、常量全部由大写字母构成

5、驼峰命名法(例:myName 第二个单词首字母大写)

方法名/变量名:第一个单词的首字母小写,其后单词的首字母大写

类名:每个单词首字母大写

系统标识符(关键字)

猜你喜欢

转载自blog.csdn.net/qq_42080073/article/details/99173255