Java复习整理

Java复习整理,第1张

Java复习整理

《Java面向对象程序设计》考试大纲

单元1 Java语言基础
1.1 Java语言的发展历程(了解)
计算机语言:主要由一些指令组成,包括数字、符号和语法等内容。
分为①机器语言、汇编语言、高级语言
计算机能识别的语言只有机器语言,由二进制0、1组成
目前通用的语言是汇编语言和高级语言
汇编语言采用了英文缩写的标识符。
高级语言采用接近人类的自然语言-----绝大多数编程者的选择

JavaSE 为开发普通桌面和商务应用程序提供的解决方案。 包括了Java最核心的类库。
JavaEE 为开发企业级应用程序提供了解决方案。
JavaME 为开发电子消费产品和嵌入式设备提供了解决方案。

1.2 Java语言的主要特点(了解)
①简单易用
②安全可靠
③跨平台(java编译器编译好的字节码文件再其他JVM上都可以运行,JVM是跨平台的)
④面向对象
⑤支持多线程
⑥垃圾回收机制
1.3 Java的工作原理
Java程序运行时,必须经过编译和运行两个步骤,首先将扩展名为 .java 的源文件进行编译,生成扩展名为 .class的字节码文件。然后Java虚拟机将字节码文件进行编译,并将结果显示出来。

Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载
Java程序是由Java虚拟机负责解释执行的,并非 *** 作系统。不同的 *** 作系统需要使用不同的虚拟机。
Java程序通过Java虚拟机可以实现跨平台特性,但Java虚拟机并不是跨平台的。
1.4 Java运行环境的搭建
sun公司提供了一套Java开发环境,简称JDK,他是整个Java的核心。包括Java编译器,Java运行工具,Java文档生成工具,Java打包工具。
还提供了一种JRE工具,它是Java运行环境,是提供给普通用户使用的。,只包含Java运行工具,不包含Java编译工具。

JDK安装目录下的子目录:
①bin目录:存放一些可执行的程序,例如:javac.exe(Java编译器),java.exe(Java运行工具),jar.exe(打包工具),javadoc.exe(文档生成工具);
②db目录:一个小型的数据库。
③include目录:用于存放一些头文件
④jre目录:是Java运行环境的根目录,包括虚拟机、运行时的类包、Java应用启动器和一个bin目录,但不包含开发环境中的开发工具。
⑤lib目录:Java类库或库文件,是卡法工具的归档包文件。

javac.exe是Java编译器工具,可以将写好的Java文件编译成Java字节码文件,Java源文件扩展名为java,编译后生成对应的字节码文件,扩展名为.class。 要完整的文件名。
java.exe是Java运行工具,会启动一个Java虚拟机进程,Java虚拟机相当于一个虚拟的 *** 作系统,专门负责运行由Java编译生成的字节码文件(.class)。

JDK安装好之后运行需要配置环境变量。
通常需要配置两个
(1)PATH ---- 用于告知 *** 作系统到指定的路径去寻找JDK-------%JAVA_HOME%bin; (%表示读取其中的内容)
(2)CLASSPATH — 用于告知JDK到指定的路径查找类文件(.class)。
PATH 保存系统的一系列的路径。; 隔开
JAVA_HOME :JDK的安装目录
当虚拟机运行一个类时i,会先在CLASSPATH环境变量定义的路径下寻找需要的class文件和类包 ,配置时必须在配置路径前添加一个(.)来识别当前目录下的Java类。CLASSPATH环境变量
JDK5开始,如果没有配置CLASSPATH 虚拟机会自动搜索当前路径下的类文件,并自动加载dt.jar和tools.jar文件中的Java类。
CLASSPATH:“.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar”

Java的核心类主要放在Java包及其子包下,Java扩展的大部分类都在javax包及其子包下。
java.applet包是为applet提供执行需要的所有类,主要访问applet内容的通信类。
transaction包属于javax,提供事务处理所需要的包。

单元2 Java程序开发的基础语法(重点)
2.1 标识符、保留字和分隔符
(1)标识符:由任意顺序的大小写字母、数字、下划线和$组成,但是不能以数字开头,也不能是Java关键字。
①包名所有字母一律小写
②类名和接口名每个单词的首字母都要大写
③常量名所有字母大写,单词之间用_链接
④变量名和方法名的第一个单词首字母小写,从第二个的单词开始每个单词首字母大写。----驼峰法
⑤见名知意

2.2 数据类型
(1)基本数据类型:①数值型:a.整数类型(byte,int,short,long)、b.浮点类型(float,double)。
②字符型(一个字符占2个字节);③布尔型
(2)引用数据类型:类、接口、数组、枚举、注解、String。


byte、short、char类型的变量在运算期间类型会自动提升为int,然后进行运算。
进制的运算
2.3 运算符和表达式
加减乘除模
/的左右都是整数时 结果也是整数
%结果的正负取决于左边的数 例如:(-5)%3的结果是-2.
在赋值过程中,运算顺序从右向左。
在使用+=、-=、*=、/=、%=运算符进行赋值时,强制类型转换会自动完成。
逻辑运算符 &两边都执行
&&短路与
|同上。
位运算符
&
|
~ 取反 *** 作
^ 异或
<< 向左移动指定位数,空位补0
>>向右,整数补1,负数补0。
>>>无符号向右移。

补充
负数在计算机中以补码的形式存放,如何计算补码?
该数的绝对值饿二进制取反+1;第一个代表符号位

三目运算符 ?:

2.4 基本的输入/输出方法
输入:
Scanner sc=new Scanner();
sc.next();-----获取字符串
System.in.read();-------从键盘输入一个字符
输出:
System.out.println();
2.5 Java语言的流程控制语句
if、if。。。。else。。、while、do。。。while;、switch 。。case…
break 结束循环
continue 结束当前循环
break;
continue;
case后面只能跟常量
2.6 方法
方法的三要素:方法名、参数列表、返回值类型
2.7 数组
一维数组 --定义:
①数组类型[] 数组名=new 数组类型[数组长度];
②数组类型[] 数组名=new 数组类型[]{数组元素0,。。。。。};
③数组类型[] 数组名={数组元素0,数组元素1.。。};
数组名实际上是个地址常量,存放在栈的一个单元里,数组元素存放在堆内存中
二维数组

① int[][] arr=new int[3][4];
②int[][] arr=new int[3][];----分配存储空间未完成,只有这一句之后,不能访问a[0][0]。
③int[][] arr={{1,1},{3,4,7}}-----可以定义成不规则数组,例如:{{1,2},{1,2,3,4}}
④int[] a[]=new int[][]
⑤int a[][]=new int[]{}

单元3 Java面向对象编程(重点)栈内存:基本类型的变量和对象的引用变量;堆内存:new 创建的对象和数组。
3.1 类与对象

静态代码块只在第一次类加载时才会被加载,且只会加载一次。

成员内部类:成员类里面定义的类;局部内部类:在方法中定义的类;静态内部类:成员内部类多个static;匿名内部类:如果方法的参数是一个接口,直接在参数上写成一个类实现

lambda表达式(参数列表,->,表达式主体):参数类型可以省略,如果只有一个参数,括号也可以省略
(参数类型 参数1,参数类型 参数2…)–>{表达式主体};
3.2 构造方法—初始化成员变量
3.3 类成员-----static修饰的
3.4 Java实现面向对象的三大特征:封装、继承、多态
只能在构造方法中使用this调用构造方,且必须是第一条语句。只能出现一次, 不能在一个类的两个构造方法中使用this互相调用
成员变量能被static修饰,局部变量不可以
super,调用父类构造方法要在子类构造方法的第一行。如果父类有带参数构造方法,子类一定要super
继承时如果没有super啥的(系统默认添加了),而且父类子类都有构造函数,运行时先执行父类的构造函数
多态由类的继承、方法重写、父类引用指向子类对象体现的
编译时的多态是 方法重载
运行时的多态是方法重写
instanceof—判断对象的类型
3.5 抽象类与接口
都不能被实例化,
接口可以继承多个接口
3.6 包
① java.util:包含大量的工具类、集合类等,如Arrays,List,Set等
② java.net:包含网络编程相关的类和接口
③java.io:包含Java输入、输出相关的类和接口
④java.awt:包含用于构建图形界面的相关类和接口
⑤用于数据库编程的 java.sql
⑥编写GUI的 javax.swing

3.7 Java中的访问控制符

3.8 异常处理

Error:Java运行时产生的系统内部错误或资源耗尽的错误
Exception:表示程序本身可以处理的错误;特殊的是RuntimeException 类,该类以及其子类用于表示运行时异常。
异常处理:
try。。。。catch-------catch可以有多个且是有顺序的,也可以没有 finally 一定会执行的!!
throws----方法首部
throw-----方法内部

所有异常的父类是Throwable
用户自定义的异常必须继承自Exception!!

垃圾回收制

①System.gc();
②Runtime.getRuntime().gc();

当一个对象在内存中被释放时,它的finalize()方法会被自动调用,原型时  protected void  finalize() throws  Throwable{}
只有当程序认为需要更多的额外内存时,垃圾回收器才会自动进行垃圾回收

单元4 Java常用的类
4.1 Math类
ceil()大于参数的最小整数。。。。
4.2 集合类

https://blog.csdn.net/zhangqunshuai/article/details/80660974?ops_request_misc=&request_id=&biz_id=102&utm_term=Java%E4%B8%AD%E7%9A%84%E9%9B%86%E5%90%88&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-80660974.nonecase&spm=1018.2226.3001.4187

4.3 String类和StringBuffer类
String 类是final类型的!!
new String时会先在堆中开辟空间,再查看常量池中是否有,若有就指向它的地址。
String变量 一旦定义不可更改,但可以重新赋值改变指向,原来的内容就成为废弃的了,当调用方法,在方法中进行重新赋值的时候是不会改变的!!
比较常用的方法
char[] toCharArray() -----将字符串转换为一个字符数组
int indexOf(‘c’)----字符出现的第一次的下标
String valueOf(int i)----返回int参数的字符串表现形式
String toLowerCase()
String toUpperCase()
replace(a,b);-----a替换成b
contains(" ")
substring(m,n)----从下标为m的字符开始截取,截取个数是(n-m)
String[] split(String regex)-----根据参数把字符串截取成若干个子字符串

StringBuffer相当于一个缓冲区,可以更改。
常用方法:
StringBuffer append(char c)----追加
replace(int start,int end ,String s)----指定范围的字符或字符串用新的字符串s进行替换
setCharAt(int index,char ch)----修改指定位置的字符
reverse() 反转形式(可以做回文时候用)

str.toUpperCase();

==判断内存地址
equals判断内容一样

4.4 包装类(Integer)8种
Integer
Character
自动装箱:将基本数据类型的变量赋值给对应的包装类变量;
拆箱:包装类对象直接赋值给对应的基本数据类型变量
通过8种包装类的静态方法parseXxx()可以将变量内容匹配的字符串转换为对应的基本数据类型。
包装类都重写了 toString方法

Calendar calendar=Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
是一个抽象类不可以被实例化;
Calendar.MONTH是从0开始的

DateFormat专门用于将日期格式转化为字符串或者特定格式显示日期字符串转换成一个Date对象;还提供了一个parse(String source) 方法,能够将一个字符串解析成Date对象,但是它要求字符串必须符合日期/时间的格式要求,否则会抛出异常。
SimpleDateFormat 是DateFormat的子类,可以使用new关键字创建对象,,它的构造方法需要接收一个表示日期格式模板的字符串参数。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5695632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存