复习Java基础的总结随笔

Java的基本类型有8种,整型4种:byte, short, int, long; 浮点型2种:float, double(其中小数默认为double,要用float需在数后加f);

字符型1种:char; 布尔型1种:boolean.

所有的基本类型都有其对应的类类型,同种之间可以自动装、拆箱,不同种之间不行。

异常分三类:错误(Error),运行时异常(RuntimeException),可查异常。

错误指的是系统级别的异常,通常是OutOfMemoryError,不要求强制捕捉

运行时异常不是必须进行try catch,常见的有ArthmeticException, ArrayIndexOutOfBoundsException, NullPointerException

可查异常即必须进行处理的异常,要么try catch,要么throws,不处理编译器则不通过

Vector是线程安全的类,ArrayList非线程安全;

StringBuffer是线程安全的类,StringBuilder非线程安全;

String是类类型,是用final修饰的,是immutable的,即一旦创建好,则不可改变,而String的+拼接,底层是用StringBuilder来实现的。

Collection是List和Set等这些接口的父接口

Collections则是工具类,提供了reverse, shuffle, sort, swap, rotate等方法

逻辑操作符:

1. &&这样长的叫短路与,&这样短的叫长路与(区别是短路与只要前面判断成功,就不会进行后面的运算;长路则即使前面判断成功也进行后面运算)

2.例子:int i = 1; (i++ == 3)&(i ++ == 2)最后i = 3。int i = 1; (i++ == 3)&&(i++ == 2)最后i = 2。

3. &叫与,只要有一边为false时则为false。|叫或,只要有一边为true,则为true。

4. ^叫异或,只有一边为true一边为false的时候才为true,两边都是false或两边都是true,则为false(如上图所示)。

final, finally, finalize的区别

1. final是修饰符,修饰类(表示该类不可继承),方法(表示该方法不能被重写),基本类型变量(表示该变量只能被赋值一次,也就是不可变的变量,则变为常量),引用(表示该引用只有一次指向对象的机会)(引用与对象的区别:Hero h = new Hero(),h为引用,new Hero()为对象)。

2. finally是try catch块最后的finally{}块,无论是否抛出异常都会最后执行finally块。

3. finallize是Object类的方法,所有的类都继承了该方法,当一个对象满足垃圾回收的条件并且被回收的时候,就会调用finalize()方法。

 1 public void attack() {
 2         System.out.println(name + " 进行了一次攻击 ,但是不确定打中谁了");
 3     }
 4
 5     public void attack(Hero h1) {
 6         System.out.println(name + "对" + h1.name + "进行了一次攻击 ");
 7     }
 8
 9     public void attack(Hero h1, Hero h2) {
10         System.out.println(name + "同时对" + h1.name + "和" + h2.name + "进行了攻击 ");
11     }

重载与重写的区别:

1. 重载指的是方法名字一样,但是参数的类型或者数量并不一样。事实上,重载的方法除了同名之外还可以返回类型不一样,因为重载其实本质上是完全不同的方法,只不过名字一样而已(如上图)。

2. 重写指的是子类继承了父类,并把父类提供的某方法重写了一遍,进行了不同的实现

抽象类(Abstract class)与接口(Interface)的区别

1. 抽象类只能通过继承被使用,抽象类本身是不可以实例化的。抽象类不仅可以提供实现抽象方法(即没有实现内容的方法)如public abstract void creep(); 还可以提供正常的实现方法。

2. 接口其实可看做一套标准,里面规定了一系列方法,供其实现类来实现这些方法。接口里的方法默认是抽象的,但Java8之后可以提供正常实现方法了,不过前面要加个default修饰符。

所以其实抽象类和接口的区别正在变得越来越小了。

Firstly written on Sept. 26th, 2019

原文地址:https://www.cnblogs.com/LittleMike/p/11594163.html

时间: 2024-08-30 00:03:03

复习Java基础的总结随笔的相关文章

复习java基础第二天(异常处理)

一.常见的异常类型: public class TestException { public static void main(String[] args) { int i = 10; //数学异常: java.lang.ArithmeticException int j = i / 0; System.out.println(j); int [] scores = new int[]{1, 2, 4, 5}; //数组下标越界异常: java.lang.ArrayIndexOutOfBound

复习java基础第一天

一:static static: 静态的.   1. 若需要一个类的多个对象共享一个变量,则该变量需要使用 static 修饰.   2. 因为 static 修饰的变量为类的所有的实例所共享,所以 static 成员不属于某个类的实例, 而属于整个类.     所以在访问权限允许的情况下,可以使用 "类名." 直接访问静态成员(成员包括属性和方法).  3. 注意: 在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员.     这是因为,对

复习java基础第七天(反射)

一:目标 Ø理解 Class 类 Ø理解 Java 的类加载机制 Ø学会使用 ClassLoader 进行类加载 Ø理解反射的机制 Ø掌握 Constructor.Method.Field 类的用法 Ø理解并掌握动态代理 1.Class类 –对象照镜子后可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现了哪些接口. 对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象. 一个 Class 对象包含了特定某个类的有关信息. –  Class 对象只能由系统建立对象.

复习java基础第六天(IO)

一:File 类 • 输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中. • 输出:将程序(内存)数据输出到磁盘.光盘等存储设备中 • Java 的 IO 流主要包括输入.输出两种 IO 流,每种输入.输出流有可分为字节流和字符流两大类: – 字节流以字节为单位来处理输入.输出操作 – 字符流以字符为单位来处理输入.输出操作 注意:输入.输出是以程序为参照. • File 类代表与平台无关的文件和目录. • File  能新建.删除.重命名文件和目录,但 File 不能访问文件内

复习java基础第三天(集合)

一.Collection常用的方法: Java 集合可分为 Set.List 和 Map 三种体系: Set:无序.不可重复的集合. List:有序,可重复的集合. Map:具有映射关系的集合. Collection 接口是 List.Set 和 Queue 接口的父接口, 该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合: import java.util.ArrayList; import java.util.Collection; import j

复习java基础第四天(集合)

List 代表一个元素有序.且可重复的集合,集合中的每个元素都有其对应的顺序索引 List 允许使用重复元素,可以通过索引来访问指定位置的集合元素. List 默认按元素的添加顺序设置元素的索引. List 集合里添加了一些根据索引来操作集合元素的方法: 另外: List 额外提供了一个 listIterator() 方法,该方法返回一个 ListIterator 对象, ListIterator 接口继承了 Iterator 接口,提供了专门操作 List 的方法: boolean hasPr

复习Java基础

1. switch语句格式: switch(表达式){ case 值1:   语句体1:   break://break可以省略,但会出现case穿透现象,建议不省略 case 值2:   语句体2:   break: ... default://对不正确的情况给出提示,可以省略,建议不省略,可以在任意位置,但建议在最后   语句体n+1:   break: } 表达式可以是byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以可以是String.

【Java基础】序列化与反序列化深入分析

一.前言 复习Java基础知识点的序列化与反序列化过程,整理了如下学习笔记. 二.为什么需要序列化与反序列化 程序运行时,只要需要,对象可以一直存在,并且我们可以随时访问对象的一些状态信息,如果程序终止,那么对象是肯定不会存在的,但是有时候,我们需要再程序终止时保存对象的状态信息,之后程序再次运行时可以重新恢复到之前的状态,如,玩家玩游戏退出时,需要保存玩家的状态信息(如等级.装备等等),之后玩家再此登入时,必须要恢复这些状态信息.我们可以通过数据库手段来达到这个保存状态的目的,在Java中,我

java基础知识文章汇总

将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序的深入解析 java基础(五) String性质深入解析 java基础(六) switch语句的深入解析 java基础(七) java四种访问权限 java基础(八) 深入解析常量池与装拆箱机制 java