Java基础方面: 1、作用域public,private,protected,以及不写时的区别
* h7 q" C1 @) D% X/ B
* R% S! P0 q7 @$ n 答:区别如下:4 \" \& q( p6 V! U7 E+ Q/ i8 ~# `
作用域 当前类 同一package 子孙类 其他package
; v: }+ B9 H7 J% w- E9 x D public √ √ √ √
, u3 _) v# C' A protected √ √ √ ×
. [# _8 O2 d; b9 t0 u6 p6 ^. e friendly √ √ × ×# T) f8 l% m5 ` ]
private √ × × ×
* ~1 j# Q/ u' v 不写时默认为friendly
8 O' m$ L' e( z+ A7 V0 j: A 2、ArrayList和Vector的区别,HashMap和Hashtable的区别0 H& s' h A3 ?4 [
- X+ T" [! d5 S0 G! b( ?! ^ N& ?
答:就ArrayList与Vector主要从二方面来说.1 `* H7 o7 Q" B; k" Q/ I
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的# y& r6 h1 j# ]8 o8 }
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半5 }- {5 E0 V% v
就HashMap与HashTable主要从三方面来说。
6 P/ o: g2 [+ M 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现3 h, S9 t5 \! L) y& Y& s. E
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的4 m+ F+ S. V1 C
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value# |* o( t. N+ v. {" Q H9 W! K' V
3、char型变量中能不能存贮一个中文汉字?为什么?
/ }7 q: ` v b3 X9 {- k# f- J' n: @; a s
答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的
1 B! E' I. ]" x0 h 4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
1 S+ k8 r: N, B" C
6 O+ L3 i3 e; J) ]4 B$ b 答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口- { m9 B1 g- f" L& l0 }" |& y+ I. I
同步的实现方面有两种,分别是synchronized,wait与notify- L9 y: z5 g0 Y/ r2 d- }/ b1 j) ~
7 ]% i3 |" [7 q
5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
|. ?9 y: g) l3 T, F! R* p n7 a- b! l: L1 ~: w
答:父类:
: o1 ?! A% N2 r, {) c package test;
]5 o$ h! i- o j+ n! y public class FatherClass
2 l! g c( h9 l4 I+ |$ B' `0 D; o {: w2 P, h% E1 Z
public FatherClass()
0 E- a$ N+ N w2 l% E/ k {! i' \, h7 _6 `* n3 ^, K* s, l
System.out.println("FatherClass Create");
' b3 S9 f8 E! {* u6 i }. k: |: X4 v* {1 r4 X. G! D F* g
}
; E* R5 l! g. S1 r9 f' i- E) P2 \( j* v 子类:) {' ?. `% w- I. }6 e. B
package test;
% Q% H8 U# b7 S" i' E" X import test.FatherClass;9 ?) }- F. D6 g o7 C& _; ]: B
public class ChildClass extends FatherClass
8 ?! P7 E' ]3 M, \4 G& T7 D {
' {! `! p& f6 k' U0 z7 k m public ChildClass()
( {2 c6 t) A, ?5 S {
/ v4 h' K Y* w6 [' K3 a; B: n System.out.println("ChildClass Create");
- T: A" L. t+ W1 U5 _9 W* E }) {+ I' q* }, D% \- c1 N
public static void main(String[] args)
) z6 p+ l$ h' b {' O6 }, S4 t3 B* q7 c
FatherClass fc = new FatherClass();- s( z* T$ F! A+ p. P) w# G; O- s
ChildClass cc = new ChildClass();- A# S6 _( a& W- B* O- h
}. E2 y6 R4 k* M, h9 Y3 R1 E4 t: S
}, W: f4 q! {5 M, {; c
输出结果:
+ E* w5 a, j* Z9 r C:\>java test.ChildClass
! r; ]! B8 I: v$ y' L3 f2 k FatherClass Create5 N0 \! ^& D& C. B' @
FatherClass Create
. H" I% }0 b/ R; f" X, L# \* X9 h# d0 q ChildClass Create |