1、基类就是父类。成员还包括静态成员。
2、for循环,三个表达式都为空也是可以的。
我们使用while就是为了它的循环次数是不定的,而for循环一般限定了循环次数。但实质上,while循环能够实现的操作,for循环也能实现。
3、
在Java中,静态变量只能在类主体中定义,不能在方法中定义,静态变量属于类所有而不属于方法。
局部变量不能添加public等各种访问权限修饰符,但是可以用final修饰。
4、java中只有左移右移和无符号右移(>>>),没有无符号左移(<<<)。
5、哪个类可以改变字符集类型 ,用于处理Unicode
6、算法包括0个或多个输入,一个或多个输出,中间有穷个处理过程。
7、i=i++;i是中间变量,合并到下一行的处理中。
8、各种排序方法在各种情况下的算法复杂度。
10、AWT的基本组件:
TextField:表示文本框;
Menu:表示下拉菜单
Label:表示标签;
List:列表框;
11、
floor:意为地板,指向下取整,返回值不大于它的最大整数;
ceil:天花板,指向上取整,返回值不小于它的最小整数。
round:四舍五入,注意负数还有小数等于0.5的情况。
12、ArrayList list=new ArrayList();
这是默认创建大小为10的数组,每次扩容大小为1.5倍;
ArrayList list=new ArrayList(20);
这个使用的是ArrayList的有参构造函数,这是种指定数组大小的创建,创建时之间分配其大小,没有扩充。
13、布尔值可以是一个表达式的值,但必须是一个true或者false值。比如:boolean b=3>5;b的值为false;
java中在初始化数据时,必须按照标准的数据格式,比如float数据的后缀必须是f;这是初始化时的条件,但是在下面的表达式赋值运算时可以自动转型。
14、java编译成的是字节码,再被各系统的jvm翻译成本系统可以识别的机器码,这就是java一次编程多平台应用的跨平台性;
java源文件生成的是class文件,与系统无关;
注意字节码和机器码不是一回事,Java程序在运行时字节码才会被jvm翻译成机器码 ,所以说Java是解释型语言;
java编译出来的目标文件,要注意jvm的版本,并不是任意的jvm都可以运行。
15、Servlet的生命周期
16、javac的作用是将源程序编译成字节码。
17、
编译时异常必须显示处理,运行时异常交给虚拟机。
运行时异常可以不处理。当出现这样的异常时,总是由虚拟机接管。比如我们从来没有去处理过Null Pointer Exception异常,他就是运行时异常。休闲运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主线程抛出的异常,整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被catch块处理的,只不过往往不对它处理罢了。也就是说,如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
捕获到的异常不仅可以在当前方法中处理,还可以将异常抛给调用它的上一级方法来处理。
18、web程序中
当前用户上下文信息:session;
application:当前应用;
pageContext:当前页面;
request:当前请求。
19、子类重写父类的方法后,调用的方法都是子类重写后的方法,除非特意用super.方法名。
20、声明非静态内部类对象的方法:外部类名.内部类名 对象名=new 外部类名().new 内部类名();
(注意:此时等号后边需要创建外部类对象,所以有new 外部类名().new 内部类名())
声明静态内部类对象的方法:外部类名.内部类名 对象名=new外部类.内部类名();
(注意:此时等号右边不需要创建外部类对象,所以有new 外部类.内部类名()即可)
21、byte数据范围[-127,128],如果越界,观察符号位,如果为1,则表示负数,负数用补码表示。想要知道原码,用补码-1再取反。
22、RandomAccessFile 可以通过seek(long pos)方法去移动文件指针进行追加更新写入。
outstream是一个抽象类,不能实例化去写入;
23、实现多线程的三种方式:
继承Thread类,因为java是单继承,所以如果使用这个方式就不能再继承其他类了,同样,如果一个类已经继承了某个类,那么它就不能再继承thread实现多线程了。
实现Runnable接口,重写run方法;
实现Callable接口,线程结束后有返回值。