- 浏览: 370180 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
jiangli19192:
...
自己写的一个启动JBoss服务器的bat批处理 -
56553655:
最好这样:java -Xms3700M -Xmx3700M - ...
测试本机JVM支持的最大内存 -
lizhiy05:
学习一哈……
Web Services体系结构及相关概念 -
ghy200692162:
System.out.println("开始注册Js ...
基于OSGi的JSF Web组件开发问题求解 -
xiao888lin:
你的头像看起来很像我们宿舍老四。。。
测试本机JVM支持的最大内存
2. 面向对象编程的三个原则?
3. 怎样定义一个标识符?
4. java的关键字有哪些?NULL属于java的关键字吗?
关键字列表
abstract boolean break byte case
catch char class continue default
do double else extends false
final finally float for if
implements import instanceof int interface
long native new null package
private protected public return short
static super switch synchronized this
throw throws transient true try
void volatile while
const,goto
5. java的数据类型有哪些?分别说明一下?byte,short ,int ,long ,char ,float , double , boolean 分别是多少位?
类型 描述 取值范围
Boolean 布尔型 只有两个值true、false
Char 字符型
Byte 8位带符号整数 -128到127之间的任意整数
Short 16位无符号整数 -32768~32767之间的任意整数
Int 32位带符号整数 -231到231-1之间的任意整数
Long 64位带符号整数 -263到263-1之间的任意整数
Float 32位单精度浮点数 根据IEEE754-1985标准
Double 64位双精度浮点数 根据IEEE754-1985标准
6. 列举一下常见的转义字符?
\' \\ \r \n \f \t \b \ddd \uxxxx
例如:\071是ASCII码为八进制数71(十进制数57)的字符。
\u0041是Unicode码为十六进制数41(十进制数65)的字符。
7. 怎样定义java的数组类型?
8. 列举出常见的算术运算符?并说明++a和a++的区别?
9. 列举出常见的位运算符?
11. 列举出常见的布尔逻辑运算符?
12. 请写出一个三元运算符的例子?
13. 列举出运算符的优先级?
a>b && b>c && c>a 可以用括号写为 ((a>b) && (b>c)) && (c>a) 这样即清晰易懂,也不易出错
14. 试着列举出java中程序控制语句的关键字?各给出一个例子?
15. 怎样定义一个类?
16. 一个类继承另外一个类?怎样调用构造函数的?
public A(Object obj){
//do coding here
}
}
public B(Object obj){
this.super(obj);
}
}
17. 关于一个类的静态方法如何访问?
18. 怎样继承一个类?
19. 怎样定义一个接口?
//coding here !
}
public interface A extends B{
//coding here !
}
public C(){
}
}
public D(){
super();
}
}
//coding here !
}
abstract class C implements A{
public C(){
}
}
//coding here !
}
public interface A extends B{
//coding here !
}
abstract class C implements A{
public C(){
}
}
public D(){
super();
}
}
20. 接口和抽象类定义有什么区别?
21. 有关垃圾回收的概念,你能描述一下java是怎样进行垃圾收集的吗?
22. 关于finalize()方法的调用?
gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。
在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用程序则注重整体效率。理解了应用程序的工作负荷和jvm支持的垃圾收集算法,便可以进行优化配置垃圾收集器。
垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。
1.1.引用计数
引用计数存储对特定对象的所有引用数,也就是说,当应用程序创建引用以及引用超出范围时,jvm必须适当增减引用数。当某对象的引用数为0时,便可以进行垃圾收集。
1.2.对象引用遍历
早期的jvm使用引用计数,现在大多数jvm采用对象引用遍历。对象引用遍历从一组对象开始,沿着整个对象图上的每条链接,递归确定可到达(reachable)的对象。如果某对象不能从这些根对象的一个(至少一个)到达,则将它作为垃圾收集。在对象遍历阶段,gc必须记住哪些对象可以到达,以便删除不可到达的对象,这称为标记(marking)对象。
下一步,gc要删除不可到达的对象。删除时,有些gc只是简单的扫描堆栈,删除未标记的未标记的对象,并释放它们的内存以生成新的对象,这叫做清除(sweeping)。这种方法的问题在于内存会分成好多小段,而它们不足以用于新的对象,但是组合起来却很大。因此,许多gc可以重新组织内存中的对象,并进行压缩(compact),形成可利用的空间。
为此,gc需要停止其他的活动活动。这种方法意味着所有与应用程序相关的工作停止,只有gc运行。结果,在响应期间增减了许多混杂请求。另外,更复杂的gc不断增加或同时运行以减少或者清除应用程序的中断。有的gc使用单线程完成这项工作,有的则采用多线程以增加效率。
2.几种垃圾回收机制
2.1.标记-清除收集器
这种收集器首先遍历对象图并标记可到达的对象,然后扫描堆栈以寻找未标记对象并释放它们的内存。这种收集器一般使用单线程工作并停止其他操作。
2.2.标记-压缩收集器
有时也叫标记-清除-压缩收集器,与标记-清除收集器有相同的标记阶段。在第二阶段,则把标记对象复制到堆栈的新域中以便压缩堆栈。这种收集器也停止其他操作。
2.3.复制收集器
这种收集器将堆栈分为两个域,常称为半空间。每次仅使用一半的空间,jvm生成的新对象则放在另一半空间中。gc运行时,它把可到达对象复制到另一半空间,从而压缩了堆栈。这种方法适用于短生存期的对象,持续复制长生存期的对象则导致效率降低。
2.4.增量收集器
增量收集器把堆栈分为多个域,每次仅从一个域收集垃圾。这会造成较小的应用程序中断。
2.5.分代收集器
这种收集器把堆栈分为两个或多个域,用以存放不同寿命的对象。jvm生成的新对象一般放在其中的某个域中。过一段时间,继续存在的对象将获得使用期并转入更长寿命的域中。分代收集器对不同的域使用不同的算法以优化性能。
2.6.并发收集器
并发收集器与应用程序同时运行。这些收集器在某点上(比如压缩时)一般都不得不停止其他操作以完成特定的任务,但是因为其他应用程序可进行其他的后台操作,所以中断其他处理的实际时间大大降低。
2.7.并行收集器
并行收集器使用某种传统的算法并使用多线程并行的执行它们的工作。在多cpu机器上使用多线程技术可以显著的提高java应用程序的可扩展性。
3.Sun HotSpot 1.4.1 JVM堆大小的调整
Sun HotSpot 1.4.1使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。Jvm生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便获得使用期并进入旧域。在永久域中jvm则存储class和method对象。就配置而言,永久域是一个独立域并且不认为是堆的一部分。
下面介绍如何控制这些域的大小。可使用-Xms和-Xmx 控制整个堆的原始大小或最大值。
下面的命令是把初始大小设置为128M:
java –Xms128m
–Xmx256m为控制新域的大小,可使用-XX:NewRatio设置新域在堆中所占的比例。
下面的命令把整个堆设置成128m,新域比率设置成3,即新域与旧域比例为1:3,新域为堆的1/4或32M:
java –Xms128m –Xmx128m
–XX:NewRatio =3可使用-XX:NewSize和-XX:MaxNewsize设置新域的初始值和最大值。
下面的命令把新域的初始值和最大值设置成64m:
java –Xms256m –Xmx256m –Xmn64m
永久域默认大小为4m。运行程序时,jvm会调整永久域的大小以满足需要。每次调整时,jvm会对堆进行一次完全的垃圾收集。
使用-XX:MaxPerSize标志来增加永久域搭大小。在WebLogic Server应用程序加载较多类时,经常需要增加永久域的最大值。当jvm加载类时,永久域中的对象急剧增加,从而使jvm不断调整永久域大小。为了避免调整,可使用-XXerSize标志设置初始值。
下面把永久域初始值设置成32m,最大值设置成64m。
java -Xms512m -Xmx512m -Xmn128m -XXermSize=32m -XX:MaxPermSize=64m
默认状态下,HotSpot在新域中使用复制收集器。该域一般分为三个部分。第一部分为Eden,用于生成新的对象。另两部分称为救助空间,当Eden充满时,收集器停止应用程序,把所有可到达对象复制到当前的from救助空间,一旦当前的from救助空间充满,收集器则把可到达对象复制到当前的to救助空间。From和to救助空间互换角色。维持活动的对象将在救助空间不断复制,直到它们获得使用期并转入旧域。使用-XX:SurvivorRatio可控制新域子空间的大小。
同NewRation一样,SurvivorRation规定某救助域与Eden空间的比值。比如,以下命令把新域设置成64m,Eden占32m,每个救助域各占16m:
java -Xms256m -Xmx256m -Xmn64m -XX:SurvivorRation =2
如前所述,默认状态下HotSpot对新域使用复制收集器,对旧域使用标记-清除-压缩收集器。在新域中使用复制收集器有很多意义,因为应用程序生成的大部分对象是短寿命的。理想状态下,所有过渡对象在移出Eden空间时将被收集。如果能够这样的话,并且移出Eden空间的对象是长寿命的,那么理论上可以立即把它们移进旧域,避免在救助空间反复复制。但是,应用程序不能适合这种理想状态,因为它们有一小部分中长寿命的对象。最好是保持这些中长寿命的对象并放在新域中,因为复制小部分的对象总比压缩旧域廉价。为控制新域中对象的复制,可用-XX:TargetSurvivorRatio控制救助空间的比例(该值是设置救助空间的使用比例。如救助空间位1M,该值50表示可用500K)。该值是一个百分比,默认值是50。当较大的堆栈使用较低的sruvivorratio时,应增加该值到80至90,以更好利用救助空间。用-XX:maxtenuring threshold可控制上限。
为放置所有的复制全部发生以及希望对象从eden扩展到旧域,可以把MaxTenuring Threshold设置成0。设置完成后,实际上就不再使用救助空间了,因此应把SurvivorRatio设成最大值以最大化Eden空间,设置如下:
java … -XX:MaxTenuringThreshold=0 –XX:SurvivorRatio=50000 …
4.BEA JRockit JVM的使用
Bea WebLogic 8.1使用的新的JVM用于Intel平台。在Bea安装完毕的目录下可以看到有一个类似于jrockit81sp1_141_03的文件夹。这就是Bea新JVM所在目录。不同于HotSpot把Java字节码编译成本地码,它预先编译成类。JRockit还提供了更细致的功能用以观察JVM的运行状态,主要是独立的GUI控制台(只能适用于使用Jrockit才能使用jrockit81sp1_141_03自带的console监控一些cpu及memory参数)或者WebLogic Server控制台。
Bea JRockit JVM支持4种垃圾收集器:
4.1.1.分代复制收集器
它与默认的分代收集器工作策略类似。对象在新域中分配,即JRockit文档中的nursery。这种收集器最适合单cpu机上小型堆操作。
4.1.2.单空间并发收集器
该收集器使用完整堆,并与背景线程共同工作。尽管这种收集器可以消除中断,但是收集器需花费较长的时间寻找死对象,而且处理应用程序时收集器经常运行。如果处理器不能应付应用程序产生的垃圾,它会中断应用程序并关闭收集。
分代并发收集器 这种收集器在护理域使用排它复制收集器,在旧域中则使用并发收集器。由于它比单空间共同发生收集器中断频繁,因此它需要较少的内存,应用程序的运行效率也较高,注意,过小的护理域可以导致大量的临时对象被扩展到旧域中。这会造成收集器超负荷运作,甚至采用排它性工作方式完成收集。
4.1.3.并行收集器
该收集器也停止其他进程的工作,但使用多线程以加速收集进程。尽管它比其他的收集器易于引起长时间的中断,但一般能更好的利用内存,程序效率也较高。
默认状态下,JRockit使用分代并发收集器。要改变收集器,可使用-Xgc:,对应四个收集器分别为gencopy,singlecon,gencon以及parallel。可使用-Xms和-Xmx设置堆的初始大小和最大值。要设置护理域,则使用-Xns:java –jrockit –Xms512m –Xmx512m –Xgc:gencon –Xns128m…尽管JRockit支持-verbose:gc开关,但它输出的信息会因收集器的不同而异。JRockit还支持memory、load和codegen的输出。
注意 :如果 使用JRockit JVM的话还可以使用WLS自带的console(C:\bea\jrockit81sp1_141_03\bin下)来监控一些数据,如cpu,memery等。要想能构监控必须在启动服务时startWeblogic.cmd中加入-Xmanagement参数。
5.如何从JVM中获取信息来进行调整
-verbose.gc开关可显示gc的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。打开-xx:+ printgcdetails开关,可以详细了解gc中的变化。打开-XX: + PrintGCTimeStamps开关,可以了解这些垃圾收集发生的时间,自jvm启动以后以秒计量。最后,通过-xx: + PrintHeapAtGC开关了解堆的更详细的信息。为了了解新域的情况,可以通过-XX:=PrintTenuringDistribution开关了解获得使用期的对象权。
6.Pdm系统JVM调整
6.1.服务器:前提内存1G 单CPU
可通过如下参数进行调整:-server 启用服务器模式(如果CPU多,服务器机建议使用此项)
-Xms,-Xmx一般设为同样大小。 800m
-Xmn 是将NewSize与MaxNewSize设为一致。320m
-XXerSize 64m
-XX:NewSize 320m 此值设大可调大新对象区,减少Full GC次数
-XX:MaxNewSize 320m
-XX:NewRato NewSize设了可不设。4
-XX: SurvivorRatio 4
-XX:userParNewGC 可用来设置并行收集
-XXarallelGCThreads 可用来增加并行度 4
-XXUseParallelGC 设置后可以使用并行清除收集器
-XX:UseAdaptiveSizePolicy 与上面一个联合使用效果更好,利用它可以自动优化新域大小以及救助空间比值
6.2.客户机:通过在JNLP文件中设置参数来调整客户端JVM
JNLP中参数:initial-heap-size和max-heap-size
这可以在framework的RequestManager中生成JNLP文件时加入上述参数,但是这些值是要求根据客户机的硬件状态变化的(如客户机的内存大小等)。建议这两个参数值设为客户机可用内存的60%(有待测试)。为了在动态生成JNLP时以上两个参数值能够随客户机不同而不同,可靠虑获得客户机系统信息并将这些嵌到首页index.jsp中作为连接请求的参数。
在设置了上述参数后可以通过Visualgc 来观察垃圾回收的一些参数状态,再做相应的调整来改善性能。一般的标准是减少fullgc的次数,最好硬件支持使用并行垃圾回收(要求多CPU)。
★ Java内存管理特点
Java一个最大的优点就是取消了指针,由垃圾收集器来自动管理内存的回收。程序员不需要通过调用函数来释放内存。
1、Java的内存管理就是对象的分配和释放问题。
在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。
对象的释放是由GC决定和执行的。
在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法简化了程序员的工作。但也加重了JVM的工作。这也是Java程序运行速度较慢的原因之一。
GC释放空间方法:
监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等。当该对象不再被引用时,释放对象。
2、内存管理结构
Java使用有向图的方式进行内存管理,对于程序的每一个时刻,我们都有一个有向图表示JVM的内存分配情况。
将对象考虑为有向图的顶点,将引用关系考虑为图的有向边,有向边从引用者指向被引对象。另外,每个线程对象可以作为一个图的起始顶点,例如大多程序从main进程开始执行,那么该图就是以main进程顶点开始的一棵根树。在这个有向图中,根顶点可达的对象都是有效对象,GC将不回收这些对象。如果某个对象 (连通子图)与这个根顶点不可达(注意,该图为有向图),那么我们认为这个(这些)对象不再被引用,可以被GC回收。
3、使用有向图方式管理内存的优缺点
Java使用有向图的方式进行内存管理,可以消除引用循环的问题,例如有三个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以回收它们的。
这种方式的优点是管理内存的精度很高,但是效率较低。
++:
另外一种常用的内存管理技术是使用计数器,例如COM模型采用计数器方式管理构件,它与有向图相比,精度行低(很难处理循环引用的问题),但执行效率很高。
★ Java的内存泄露
Java虽然由GC来回收内存,但也是存在泄露问题的,只是比C++小一点。
1、与C++的比较
c++所有对象的分配和回收都需要由用户来管理。即需要管理点,也需要管理边。若存在不可达的点,无法在回收分配给那个点的内存,导致内存泄露。存在无用的对象引用,自然也会导致内存泄露。
Java由GC来管理内存回收,GC将回收不可达的对象占用的内存空间。所以,Java需要考虑的内存泄露问题主要是那些被引用但无用的对象——即指要管理边就可以。被引用但无用的对象,程序引用了该对象,但后续不会再使用它。它占用的内存空间就浪费了。
如果存在对象的引用,这个对象就被定义为“活动的”,同时不会被释放。
2、Java内存泄露处理
处理Java的内存泄露问题:确认该对象不再会被使用。
典型的做法——
把对象数据成员设为null
从集合中移除该对象
注意,当局部变量不需要时,不需明显的设为null,因为一个方法执行完毕时,这些引用会自动被清理。
例子:
List myList=new ArrayList();
for (int i=1;i<100; i++)
{
Object o=new Object();
myList.add(o);
o=null;
}
//此时,所有的Object对象都没有被释放,因为变量myList引用这些对象。
当myList后来不再用到,将之设为null,释放所有它引用的对象。之后GC便会回收这些对象占用的内存。
★ 对GC操作
对GC的操作并不一定能达到管理内存的效果。
GC对于程序员来说基本是透明的,不可见的。我们只有几个函数可以访问GC,例如运行GC的函数System.gc(),System.。
但是根据Java语言规范定义, System.gc()函数不保证JVM的垃圾收集器一定会执行。因为,不同的JVM实现者可能使用不同的算法管理GC。通常,GC的线程的优先级别较低。
JVM调用GC的策略有很多种,有的是内存使用到达一定程度时,GC才开始工作,也有定时执行的,有的是平缓执行GC,有的是中断式执行GC。但通常来说,我们不需要关心这些。除非在一些特定的场合,GC的执行影响应用程序的性能,例如对于基于Web的实时系统,如网络游戏等,用户不希望GC突然中断应用程序执行而进行垃圾回收,那么我们需要调整GC的参数,让GC能够通过平缓的方式释放内存,例如将垃圾回收分解为一系列的小步骤执行,Sun提供的HotSpot JVM就支持这一特性。
★ 内存泄露检测
市场上已有几种专业检查Java内存泄漏的工具,它们的基本工作原理大同小异,都是通过监测Java程序运行时,所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。开发人员将根据这些信息判断程序是否有内存泄漏问题。这些工具包括Optimizeit Profiler,JProbe Profiler,JinSight , Rational 公司的Purify等。
在运行过程中,我们可以随时观察内存的使用情况,通过这种方式,我们可以很快找到那些长期不被释放,并且不再使用的对象。我们通过检查这些对象的生存周期,确认其是否为内存泄露。
★ 软引用
特点:只有当内存不够的时候才回收这类内存,同时又保证在Java抛出OutOfMemory异常之前,被设置为null。
保证最大限度的使用内存而不引起OutOfMemory异常。
在某些时候对软引用的使用会降低应用的运行效率与性能,例如:应用软引用的对象的初始化过程较为耗时,或者对象的状态在程序的运行过程中发生了变化,都会给重新创建对象与初始化对象带来不同程度的麻烦。
用途:
可以用于实现一些常用资源的缓存,实现Cache的功能
处理一些占用内存大而且声明周期较长,但使用并不频繁的对象时应尽量应用该技术
★ java程序设计中有关内存管理的经验
1.最基本的建议是尽早释放无用对象的引用。如:
...
A a = new A();
//应用a对象
a = null; //当使用对象a之后主动将其设置为空
….
注:如果a 是方法的返回值,不要做这样的处理,否则你从该方法中得到的返回值永远为空,而且这种错误不易被发现、排除
2.尽量少用finalize函数。它会加大GC的工作量。
3.如果需要使用经常用到的图片,可以使用soft应用类型。它尽可能把图片保存在内存中
4.注意集合数据类型,包括数组、树、图、链表等数据结构,这些数据结构对GC来说,回收更为复杂。
5.尽量避免在类的默认构造器中创建、初始化大量的对象,防止在调用其自类的构造器时造成不必要的内存资源浪费
6.尽量避免强制系统做垃圾内存的回收,增长系统做垃圾回收的最终时间
7.尽量避免显式申请数组空间
8.尽量做远程方法调用类应用开发时使用瞬间值变量,除非远程调用端需要获取该瞬间值变量的值。
9.尽量在合适的场景下使用对象池技术以提高系统性能。
23. 什么叫作方法重载?
24. 完成一个类,实现将一个对象作为函数的参数传递?
25. 怎样定义一个java内部类?详细描述一下java内部类的用途,并给出一个例子?
26. 有关public ,protected, private ,默认类的区别
27. 怎样阻止一个方法被重载?
28. java中package的意义?
29. 列举出java中常见的几种异常?
30. 怎样抛出异常?试写出一个try ,catch的例子
31. 有关finally, throw ,throws 的使用,试举出例子?
32. 怎样创建一个java的多线程程序?试写出一个例子来?
33. 有关线程同步的概念?
34. 列举出常见的java.io的字节流类?试着创建一个新的file文件,并且向文件中写入字符,然后试着读出来?
35. 怎样理解instance of?
36. 怎样理解java关键字strictfp?
strictfp void f() {}
}
strictfp void f();
}
strictfp FpDemo2() {}
}
37. 关于在java中怎样使用本机方法?
38. 怎样用String方法来进行字符串处理?
39. 列举出String类中常用的方法,比如怎样创建一个字符串,怎样进行字符串连接,怎样获得一个字串,怎样从字符串中截取一个字串,怎样进行字符串比较
40. 关于equals()和==的区别?
41. 怎样获得某个字符在字符串中的索引?
42. 字符串的怎样取代某些字符,怎样trim空格?
43. 怎样用valueof方法将其他类型的数据转换为字符串?
44. StringBuffer方法与String的区别?列举出StringBuffer中的常用方法?
45. 怎样进行字符串分割,比如将字符串用,分割?
46. 列举出java.lang中类?
47. 列举出java.lang中接口?
48. 怎样获得java中内存管理的信息?
49. 怎样调用System中的方法?
50. 怎样使用clone()和cloneable方法?
51. 描述一下Class的类?
52. 列举一下常见的Math方法?
53. 怎样使用java中反射机制?
54. 描述一下Collection , List , Set ,SortedSet接口定义和使用范围?
55. 关于ArrayList类的使用?
56. 关于LinkedList类的使用?同上有什么区别?
57. 关于HashSet类的使用?
58. 关于TreeSet类的使用?
59. 怎样通过迭代函数来访问类集?试给出一个例子?
60. java中如何处理映射?
61. 关于HashMap类的使用?
62. 关于TreeMap类的使用?
63. 关于Arrays数组的sort方法的使用?
64. 关于Vector类的使用?
65. 关于Enumeration接口的使用?
66. 关于Stack类的使用?
67. 关于Hashtable类的使用?
68. 关于Dictionary类的使用?
69. 关于Properties类的使用?
70. 关于StringTokenizer类的使用?
71. 关于BitSet类的使用?
72. 关于java.util.Date类的使用?
73. 关于java.sql.Date类的使用?
74. 关于Calendar类的使用?
75. 关于GregorianCalendar类的使用?
76. 关于TimeZone类的使用?
77. 关于SimpleTimeZone类的使用?
78. 关于Local类的使用?
79. 关于Random类的使用?
80. 关于Observable类的使用?
81. 关于Timer和TimerTask类的使用?
82. 关于java.util.zip包?
83. 关于java.util.jar包?
84. 有关Serializable接口的使用?
85. 描述一下java.net包的结构?
86. 关于InetAddress类的使用?以及Inet4Address和Inet6Address?
87. 关于tcp/ip的套接字?怎样创建一个socket对象?
88. 关于URL类?
89. 关于URLConnection类的使用?
90. 关于tcp/ip的服务器套接字?
91. 关于DatagramPacket类的使用?
92. 关于Applet类的使用,试给出一个例子?
93. 关于getDocumentBase方法的使用?
94. 关于getAppletContext方法的使用?
95. 关于java小应用程序的事件处理?
96. 关于java.awt.event中主要事件类,请列举出常用的类?
97. 关于事件源的理解?
98. 关于事件监听器的接口?
99. 关于ActionListener接口的使用?
100. 关于AdjustmentListener接口的使用?
101. 关于ComponentListener接口的使用?
102. 关于FocusListener接口的使用?
103. 关于ItemListener接口的使用?
104. 关于WindowListener接口的使用
105. 描述一下Adapter类?
106. 描述一下Inner类?
107. 关于匿名内部类的理解?
108. 怎样使用AWT布局管理器?
109. 简要介绍一下java.awt.image包?
110. 怎样实现动画?
111. 列
发表评论
-
让mybatis支持管理和操作多个不同的业务数据库实例
2017-05-07 21:25 6398在微服务大行其道的今天,一个工程中同时操作多个不同的业务数 ... -
集成https方式的rest服务
2017-04-23 01:25 1907虽然REST架构是Roy Fieldin ... -
构建安全的restful服务docker
2017-04-19 00:26 849说明:本例子基于上一篇构建restful服务的文章:htt ... -
Java设计设计模式之桥接模式(Bridge)
2017-03-11 19:19 0... -
Java设计设计模式之单例模式(Singleton)
2017-03-11 19:13 735单例模式在日常应用开发过程中被大量使用到,如在计算机系统中 ... -
Java设计设计模式之组合模式(Composition)
2017-03-11 17:32 1083那王麻子自从做了肉夹馍生意后,真是风生水起,分店开的跟下饺 ... -
Java设计设计模式之外观模式(Facade)
2017-03-05 19:53 795上一篇博客我们陈述了适配器模式,这篇文章的例子接上上一个设计 ... -
Java设计设计模式之适配器模式(Adaptor)
2017-03-05 15:29 1550我的博客自从2008年以 ... -
Java JNI 编程进阶
2008-12-17 09:56 4507JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚 ... -
Inner class与匿名类相关问题汇总
2007-09-12 17:03 14451)如果存在3个类,一个是普通类A其中有个方法a(),接口B有 ... -
测试本机JVM支持的最大内存
2007-07-17 21:35 17403传说JVM是使用的最大内存一般Windows下1200-150 ... -
分析数据库版本不一致的小程序
2007-07-17 21:28 1282由于我们在开发过程中无法实时地与每个客户的数据库保持一致,因此 ... -
世界程序设计大赛优胜奖源码
2007-07-17 21:20 4212/*************16K的代码还有好听的音乐伴奏** ... -
JSP“抓”网页代码的程序
2007-07-17 13:35 1362... -
改进后的汉字截取处理程序(含测试用例)
2007-07-17 13:25 2046java 代码 package org.danl ... -
Sun HotSpot 1.4.1 JVM学习总结
2007-07-17 13:08 1623在Java 中gc是不被强制 ... -
2006-09-24
2007-07-17 13:05 963第一,谈谈final, finally, ... -
Java语言编码规范 -01
2007-07-17 13:04 1128原文出处http://java.sun.com/docs/co ... -
Java语言编码规范(2)
2007-07-17 13:03 10966.3 布局(Placement) 只在代码块的开始处声明变 ... -
JAVA面试题集
2007-07-17 12:52 1238JAVA面试题集 基础知 ...
相关推荐
1. **Java基础资料** Java的基础资料涵盖了许多主题,包括语法、类和对象、数据类型、控制流(如if语句、for循环、while循环)、方法、数组、异常处理等。例如,`Java.doc`可能包含了这些基础概念的详细介绍,帮助...
《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...
本篇文章将深入解析50道JAVA基础编程练习题中的几道典型题目,包括打印杨辉三角形、兔子问题(斐波那契数列)、素数判断以及水仙花数的查找。 1. **杨辉三角形**: 杨辉三角形是数学中的一个重要概念,它在组合...
"java基础代码实例_1"这个压缩包文件显然是一份专门为初学者准备的Java学习资源,旨在帮助他们快速掌握Java编程的基础。 首先,Java基础代码实例是学习过程中的关键部分。通过编写和运行实际的代码,学习者可以更好...
"Java基础练习40题"是一个很好的资源,可以帮助初学者巩固和深化对Java的理解。这份练习涵盖了从基础语法到面向对象编程的各种概念,通过40个不同难度的题目,全面检验学习者在Java编程上的技能。 首先,100-109....
张孝祥老师的"Java基础加强ppt.ppt"可能包含了以上部分或全部内容的详细讲解,通过PPT的形式,以清晰的结构和实例演示帮助学习者深入理解每一个知识点,并且针对面试常见问题进行解析和解答,以提高求职者的竞争力。...
在学习Java基础时,可能还会涉及到IO流、线程、集合框架等内容。IO流用于读写文件、网络通信等操作,线程则使得程序可以同时执行多个任务。集合框架(如ArrayList, LinkedList, HashMap等)提供了一组接口和类,用于...
以下是一些常见的Java基础面试题及其详细解答: 1. **Java是什么?** Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(后被Oracle收购)开发。它的“一次编写,到处运行”(Write Once, Run ...
总的来说,《JAVA编程习题与解答(全美经典学习指导系列)中文版》是一本全面而深入的Java学习资源,通过实践性的习题,可以帮助读者巩固理论知识,提升编程技巧,为成为专业的Java开发者打下坚实基础。无论你是初学者...
Java笔试题大全主要涵盖了几大核心领域,包括Java基础知识、EJB、代码与编程实践、线程编程以及针对各大公司的具体面试题目。这些文件旨在帮助准备Java相关职位的求职者全面复习并提升自己的技能。 首先,Java基础...
标题 "150道java基础选择题" 暗示这是一个关于Java编程语言基础知识的测试题集合,可能涵盖了变量、数据类型、运算符、流程控制、类与对象、接口、异常处理、多线程、集合框架等多个核心概念。这些题目旨在帮助学习...
java程序设计基础第3版课后习题解答第四章.pdf 本资源是 Java 程序设计基础第 3 版课后习题解答第四章的解决方案,共包括五个 Java 程序设计习题的解决方案,涵盖了 Java 基础编程知识点、输入输出流、switch 语句...
本压缩包包含了一系列关于Java基础语法的源代码示例,旨在帮助初学者深入理解和掌握Java编程的核心概念。以下将针对每个章节的可能内容进行详细阐述: 1. **Chapter 1:基础语法** - 变量声明与初始化:包括基本...
"Java经典基础试题"这个资源正适合那些希望巩固Java基础的人。这份资料可能包含了各种类型的题目,涵盖了从基本语法到面向对象编程的关键概念。 1. **Java基本语法**:Java的基础语法包括变量声明、数据类型(如...
Java作为一门广泛使用的编程语言,其基础知识是每个开发者必须掌握的。这份“Java基础笔试题加答案...对于这份“Java基础笔试题”,你可以期待涵盖这些知识点的题目,以及对应的解答,帮助你在Java学习之路上更进一步。
【标题】"my1(java基础+页面设计)"涵盖了两个主要的知识领域:Java基础和页面设计。这是一套学习资源,包括课件、实例、练习、答案以及开发工具的使用指南,旨在帮助初学者掌握Java编程语言的基础知识以及如何在实际...
【Java基础入门】Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。Java以其"一次编写,到处运行"的特性,跨平台兼容性以及强大的功能而受到全球开发者的青睐。本...