java专项练习总结2

static关键字:
针对多个对象共有的成员变量值时所提出的。
特点:1、随着类的加载而加载; 2、优先于对象存在; 3、被类的所有对象共享; 4、可以通过类名直接调用。
注意事项:1.在静态方法中是没有this关键字的; 2.静态方法只能访问静态的成员变量和静态的成员方法。
非(static)静态方法只能通过实例对象来调用,不能直接通过类名调用。静态方法(static)才能通过类名直接调用.

堆栈和队列
堆栈(Stack) : 如子弹入弹夹一样 先进后出
队列(Queue):如排队过隧道 先进先出

java.io.Reader是一个读取字符流的抽象类,通过继承Reader类,可以很方便的读取字符流,比如,我们可以将一个字符串读取为一串串(字符)流,还可以读取一个文件里的内容为一串串的流。
Java(1.6.x)里提供了几种Reader(父类)的直接继承类,具体的有:(子类)BufferedReader, CharArrayReader, FileReader, InputStreamReader, PipedReader, StringReader等,子类须实现的方法只有 read(char[], int, int) 和 close()。

Interger的范围[-128,127],在这个范围内比较大小,相等为true,超过范围为false

初始化父类的普通成员变量和代码块,执行 C c = new C(); 输出C方法的内容
super(“B”); 表示调用父类的构造方法,不调用父类的无参构造函数,输出B

Integer i = 42;
Long l = 42l;
–l.equals(42L)

包装类的“==”运算在不遇到算术运算的情况下不会自动拆箱
包装类的equals()方法不处理数据转型

序列化的是对象,不是类,类变量不会被序列化

(错:default String s)
java的访问权限有public、protected、private和default的,default不能修饰变量
(错:abstract double d)
普通变量不能用abstract修饰,abstract一般修饰方法和类

for (m = 0, n = -1; n = 0; m++, n++)
n++;

for 循环的结束判定条件 是 boolean型 n = 0 是 int 类型 会有编译异常

JVM 内存可简单分为三个区:
1、堆区(heap):用于存放所有对象,是线程共享的(注:数组也属于对象)
2、栈区(stack):用于存放基本数据类型的数据和对象的引用,是线程私有的(分为:虚拟机栈和本地方法栈)
3、方法区(method):用于存放类信息、常量、静态变量、编译后的字节码等,是线程共享的(也被称为非堆,即 None-Heap)
Java 的垃圾回收器(GC)主要针对堆区

线程的状态:
在这里插入图片描述

Java有5种方式来创建对象:
1、使用 new 关键字(最常用): ObjectName obj = new ObjectName();

2、使用反射的Class类的newInstance()方法: ObjectName obj = ObjectName.class.newInstance();

3、使用反射的Constructor类的newInstance()方法: ObjectName obj = ObjectName.class.getConstructor.newInstance();

4、使用对象克隆clone()方法: ObjectName obj = obj.clone();

5、使用反序列化(ObjectInputStream)的readObject()方法: try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME))) { ObjectName obj = ois.readObject(); }**

猜你喜欢

转载自blog.csdn.net/qq_41072487/article/details/104504232
今日推荐