Java基础1
本文为个人Java基础学习笔记,参考资料为《Java从入门到精通》第四版,清华大学出版社
Java版本,分为Java SE、Java EE、Java ME。
- Java SE是Java的标准版,主要用于桌面应用程序的开发,同时也是Java的基础,包括Java语言基础、JDBC、IO、网络通信、多线程等。
- Java EE是Java企业版,用于开发企业级分布式网络程序,核心为EJB。
- Java ME是Java在嵌入式系统开发领域的应用。
JVM<JRE<JDK
JVM是Java虚拟机的简称,用于运行class文件。Java跨平台(即一次编写,到处运行)的基础
JRE是Java运行时环境,包括JVM和一些Java基本类库。
JDK是Java开发工具包,集成了JRE和一些开发工具,如:javac.exe、java.exe,jar.exe
Java的特性
- 简单:相对于C,语法和C++类似,但进行了简化和提高,使用接口取代多重继承,取消了指针,增加了垃圾回收机制,丰富的类库和项目资源。
- 面向对象:Java中一切皆对象,不能在类外定义数据和函数。
- 分布性:操作分布和数据分布,操作分布在不同主机上,数据存放在不同主机上。通过URL进行访问。
- 可移植性:Java程序与体系结构无关,便于移植到不同计算机中,类库中还有不同平台的接口。
- 解释性:任何移植了Java解释器的设备都可以通过字节码运行Java程序。
- 安全性:删除了指针等直接内存操作,避免非法操作内存。
- 健壮性:编译和运行时可以检查并消灭错误。
- 多线程:并行计算和任务执行
- 高性能:直接解释字节码
- 动态:动态调整库中方法和增加变量。
Java基本数据类型
Java中包含两种数据类型,分别为基本数据类型和引用数据类型
基本数据类型有:
数值型:整数(byte、short、int、long)、浮点(float、double)
字符型:char
布尔型:boolean
基本数据类型变量不需要使用new创建,不在堆上创建,直接在栈内存中存储,更高效。
基本数据类型包装类:Byte,Short,Integer,Long,Float,Double,Character,Boolean
自动装箱: 就是将基本数据类型自动转换成对应的包装类。
自动拆箱:就是将包装类自动转换成对应的基本数据类型。
整数的三种表达形式:十进制;八进制(0开头);十六进制(0x或0X开头)
内存大小:1 long = 2 int = 4 short = 8byte = 64 bit
注意取值范围,long型值需要在数字后加L或l
1 double = 2 float = 64 bit
float型值需要在数字后加f
字符以单引号表示,字符串以双引号表示,使用显式类型转换可以转换字符为0~65535之间的整数。
boolean只能为true、false,不能与整数转换
变量与常量
标识符由字母、下划线、$和数字组成,首字符不能为数字。标识符不能为关键字。
Java中的关键字
- 保留字(2):goto、const;无意义
- 访问修饰符(3):public、private、protected;作用:用来修饰类(接口、抽象类)、方法、属性、构造方法、常量、主函数
- 类、接口、抽象类(9):
- class、interface、abstract——定义
- extends——继承类、implements——实现接口
- new——新建一个对象、super——调用父类方法、this——指代当前对象
- instanceof——通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
- 数据类型(10)
- void——没有返回值
- byte、short、int、long——整型数据
- float、double——浮点型数据
- char——字符型数据
- boolean——判断型数据
- enum——枚举
- 线程(2)
- synchronized——线程同步(修饰方法、代码块,方法、代码块的同步)
- volatile——线程同步(修饰属性,属性的同步)
- 异常(5):
- throw——抛出方法代码中的异常给方法自身。使用位置:方法中间
- throws——抛出方法中的异常给调用者。使用位置:方法外部
- try——捕获{}中代码是否有发生异常
- catch——处理try捕获的异常
- finally——不管有没有异常发生都会执行的代码块
- 循环、条件、返回(11):if、else、switch、case、break、default、continue、while、do、for、return
- 包(2):package、import
- 瞬时的,不序列化(1):transient
- 断言(1):assert
- 调用底层代码(C\C++)(1):native
- 不可变的——final(1):
- 修饰属性、常量、局部变量、参数——作用:数据是不可改变的
- 修饰类——作用:修饰的类不能被继承
- 修饰普通方法——作用:修饰的方法不能被重写
- 静态的——static(1):
- 修饰属性、常量
- 修饰内部类
- 修饰普通方法
- 作用:所有使用static关键字修饰的内容会最先执行。static修饰的内容在内存中只有唯一的一份(存储在静态内存空间中)。
- 格式规范——strictfp(1):修饰类、接口或方法。
- 修饰方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。
- 修饰类或接口时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。
严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。
常量
final 数据类型 常量名称[=值]
final double PI = 3.1415926D
*常量也被称为final变量,当它属于“成员变量”时必须赋予初值。
成员变量,区别于局部变量。
成员变量和局部变量
根据变量所属代码块确定变量有效范围。在类体中定义的变量为成员变量。根据static关键字,成员变量分为静态变量和实例变量。静态变量数据存放于全局区(静态区),静态变量有效范围可跨类,通过类名.静态变量调用。

浙公网安备 33010602011771号