Java基础知识整理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java知识点总结

1环境搭建与开发

1.1 环境变量

JA V A_HOME:Java的安装目录;

CLASSPATH:指定一个路径列表,用于搜索Java在编译或运行时需要用到的类(.class文件);

PATH:指定一个路径列表,用于搜索可执行文件。

1.2 Java SDK应用

编译:Javac 类名.class;

运行:Java 类名;

打包:jar cf test.jar test (把当前目录下的test目录下的所有文件压缩到test.jar文件中)。

2变量与常量

Java中的常量用保留字final来实现。

变量:局部变量(local variable)、实例变量(instance variable)、类变量(class variable);任何变量在使用前都必须初始化,局部变量必须显示初始化,实例变量在类的构造方法被调用时初始化(分配默认值),类变量在类被加载时被初始化。

3标识符

3.1 命名

在Java语言中,标识符的定义规则是以字母、下划线、美元符开始,后面可以跟字母、下划线、美元符、数字。

因为Java语言使用Unicode字符集,所以对字母不仅限于英文,还可以是日文、韩文、阿拉伯文、中文等。

区分大小写,没有字数限制。

3.2 关键字

3.2.1static

static方法中不能有this和super关键字(static方法不是“面向对象”的,而是“面向类”的)。

static方法中只能访问所属类的static方法和变量。

static数据成员的初始化:在第一次生成该类的对象时初始化。

3.2.2final

1)final数据

a)static final

●更加典型的定义方式是public static final;

●占用一段不能改变的存储空间;

●代表编译时常量,即在编译器就能知道其值(如果只声明为final或

者static,是在运行时才知道值)。

●全部用大写字母命名,单词之间用下划线隔开。

b)final数据与final引用

●final数据的值不能被改变;

●final引用是指无法将其指向一个新的对象(数组也是一种引用),对

象本身的值是可以改变的。

c)空白final(声明为final却未赋初始值)

●可以做到根据对象有所不同,又保持恒定不变的特性;

●必须保证使用前已经初始化:在定义处赋值或者在构造器中赋值。

2)final参数

●无法在方法中更改引用所指向的对象。

3)final方法

●禁止覆盖,防止任何继承类修改它的定义;

●private方法都是final的,因此private方法无法覆盖。

4)final类

●不允许继承该类;

●final类中的所有方法都隐式指定为final的。

3.2.3transient

主要作用:防止对象的敏感信息被序列化,保证安全性。

transient用于在一个特定对象的一个域上关闭序列化,当该对象被序列化时,transient型变量不包含在序列化表示中。

原因:对于某些敏感信息(如密码),一经序列化处理,便可以通过读取文件或者拦截网络传输的方式访问到。

4运算符

4.1 算术运算符

4.1.1“/”运算符

如果被除数和除数都是整数,那么商也是整数;

如果被除数和除数中有一个是浮点数,商是浮点数;

当被除数是整数类型时,零不能作为除数(运行时报错);当被除数是浮点型时,除数为0,结果为Infinity。

4.1.2“%”运算符

既可以对整型数据取模,也可以对实型数据取模;

任何整数都不能对0取模;

不管是整型还是实型的取模运算,余数的符号与被除数的符号相同(若a%b,结果的符号与a相同)。

4.2 位运算符

<<:左移

>>:带符号右移(最高位为0则补0,为1则补1)

>>>:无符号右移(补0)

如果对char、byte、short类型的数据进行移位处理,那么在移位进行之前,它们会被转换为int类型,并且得到的结果也是一个int类型的值。

对char、byte、short进行运算时,都会得到一个int结果,必须将其显示地类型转换回原来的类型,在窄化转换的过程中可能会造成信息的丢失。

4.3 赋值运算符

如果赋值运算符两边的数据类型不相同,则需要进行类型转换,即“向左看齐”;

如果这种转换是由小向大的转换,系统将自动进行,如果是由大向小的转换,则需强制类型转换。

5数据类型

new将对象存储在堆里,故用new来创建一个小的对象,特别是小的简单的变量,往往不是很有效,因此,java不用new来创建对象,而是创建一个并非是引用的自动变量,这个变量直接存储值,并置于堆栈中,因此更加高效。

5.1 整型变量

在进行带有byte、short、int三种类型并存的表达式运算时,系统都会将short和byte 都先提升为int类型。

5.2 浮点型变量

●单精度浮点型float:32位;

●双精度浮点型double:64位。

5.3 字符型数据

●反斜杠(\)开头的字符;

●\u后接4位十六进制数字。

6数组

6.1 初始化

Java在声明数组时并不为其分配存储空间,因此在声明数组时不能指定数组的长度。

7字符串

String对象是不可变的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容,而最初的String对象则丝毫未动。

当把String对象作为方法的参数时,实际上是复制了一份引用。

String:字符串常量

StringBuilder:字符串变量(非线程安全)

StringBuffer:字符串变量(线程安全)

7.1 String

String str = new String(“good”); ——在内存的堆中创建一个”good”字符串对象

String str = “good”; ——在String pool中创建”good”字符串对象

7.2 StringBuffer

String与StringBuffer有什么区别?

String的长度是不可变的,String对象中存放的字符串对象不可修改;StringBuffer 的长度是可变的。因此如果经常需要增加、删除或者修改字符串中的某些字符,用String 就不方便,为了提高效率节省空间,应该使用StringBuffer。

相关文档
最新文档