电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

准备SCJP的时候做的一些笔记


发布日期:2020/6/5
 

里面有些术语有可能比较怪些不过大家应该还是能够理解的

初始化类变量自动初始化为或者null局部变量使用前一定要初始化

主类型过载类型匹配顺序按照byte>short>char>int>long>float>double顺序匹配一种主类型只能匹配参数范围不小于其本身和其本身范围最接近的函数即有int i;f(short s);f(long l);i只能适用于第个f函数如果是常数则编译器作为int处理

主类型计算结果的类型和最大范围计算子的类型一致但是最小也要是int即byte+byte结果为int型

short型和char型不能互相赋值(因为short有符号char无符号)

package一定要放在java文件第一行(除注释空行外)

import只能放在第一行或者package下面

多个import的package里面如果有同名class使用时必须指定package

interface中只能有方法宣言和定数

class实现interface必须实现全部方法

同一java文件中class和interface只能有一个public

为了宣言定数在变量前加final修饰子变量不可改变但是object的 属性可以改变(有点忘记了请确认))

配列不能在宣言的时候用char arr[]形式指定必须要用new指定大小指定完毕后自动初期化也可以new的时候用{}形式指定

如果一个object为null使用其属性或者方法产生NullPointerException

如果使用一个越界index访问配列产生ArrayOfBoundsException

配列长用配列名length

constructor如果有返回值编译器作为一般方法看待

constructor里面如果要用super()和this()必须放在第一行而且只能用一次

如果没有显式调用super和this编译器自动在第一行插入super();要求超类必须存在无参数的constructor

如果没有显式声明constructor编译器自动生成默认无参数constructor一旦声明则无默认constructor

修饰子(访问范围大小顺序)public 完全公开protected 同一package或者子类中 无 同一package private本class

override的方法不能使访问范围缩小即父类中public方法不能被protected override

static方法不能被override?确认

constructor不能被继承

抽象class不能同时被static修饰子修饰

native方法被java以外其它语言实现

interface里面方法默认为public abstract修饰变量默认为public static final修饰

abstract和finalabstract和staticabstract和private不能同时指定

&&||为短路条件运算符 &|为不短路条件运算符

switch()只能判断byteshortintchar(longfloatdouble不行)

Exception包括可check Exception和Runtime Exception可check Exception可以被编译器检查Runtime Exception不被编译器检查但是可以被catch捕捉

try{}catch{}catch{}多个catch语句按照声明顺序检查一旦被捕捉以后catch就直接跳过超类Exception可以捕捉子类Exception

try中即使有returnfinally段也会被执行

method声明用throws抛出Exception用throw

强制垃圾回收systemgc()促使垃圾回收但不是马上回收

finalize()在垃圾回收的时候自动调用建议显式调用superfinalize()

main方法的args[]是第一个参数例如java Test a b cargs[]是a

类中static段中不能throw异常constructor里面不能throw异常

对于除零整数运算抛出ArithmeticException 实数运算不抛出异常返回Infinity或者Infinity

instanceof运算子is的意思例如betty instanceof girl返回true

override和overload的区别 很简单不多写了

inner class(内部类重点注意)

nest classclass内部定义的class

包括(member class作为class的member定义的class

local class作为method局部变量定义的class

anonymous class用new生成的没有名字的class)

inner class除了static member class以外的所有nest class总称

inner class中不能定义static段

inner class里面不能定义没有final修饰子修饰的static变量

inner class不能定义interface?(记不清了自己确认一下)

member class的使用方法mberClass

static宣言的member class的生成方法

TopClass的instancenew memberClass()或者

new mberClass();

local class不能显式被修饰子修饰

local class只能存取被final修饰子修饰的上级变量(注意)

anonymous class instance生成方法

new SuperClass名(){}或者

new Interface名(){}

anonymous class

不能定义sub class(因为自己没有名字)

不能定义为abstract class

不能定义constructor(注意)

Thread生成方法

继承javalangThread

实现javalangRunnable interface然后用new Thread(实现Runnable接口 的class)来生成Thread instance Thread的join方法等待Thread结束 Object的wait()方法和notify()notifyAll()方法(线程同期化自己好好 看看)

同期化保留字:synchronized(有可能要求拼写)

如果用synchronized修饰static方法static写在前头

String和StringBuffer区别String初始化后不可改变StringBuffer可以改变

String s=hello;String s=hello;

if (s==s){Systemoutprintln(OK);}

执行结果是打印出OK

>>运算符是高位填充符号位是为算术移位 >>>运算符高位填是为逻辑移位其余有关swtutilIO之类的东东基本上都是死记硬背的这里就不多说了

上一篇:判断鼠标双击

下一篇:运用JNA保护你的遗留代码(一)