21.在Java中长度为0的数组是合法的。这种数组可以用于下面的情况:编写了一个方法去计算数组的结果,计算结果碰巧为。 可以按照下面的语法创建长度为 0的数组:
new elementTye[0]
要注意,长度为0的数组与null是不同的。
22.拷贝数组
可以把一个数组变量拷贝给另一个,这时,两个变量都指向相同的数组:
int [] luckyNumbers=smallPrimes;
如果实际上只想一个数组中的值拷贝给另一个变量,那么需要使用system类中的
arraycopy方法。其语法如下:
System.arraycopy(from,fromIndex,to,toIndex,count);
23.Java数组与C++数组在堆栈上很不相同。它在本质上其实相当于指向C++分配在堆中的数组指针。
即:int []a=new int[100];//java
并不等同于 int a[100];//c++
而是相当于 int * a=new int[100];//c++
24.Java中其实并没有多维数组,它只有一维数组。多维数组其实就是"数组的数组"。数组的各行可以被独立访问,实际上可以堆对他们进行交换。如下代码:
double [] temp =balance[i];
balance[i]=balance[i+1];
balance[i+balmp;
我们也可以创建不同行不同列的不规则数组。如下代码
int [][]odds=new int[NMAX+1][];
for(n=0;n<NMAX;n++)
odds[n]=new int[n+1];
在Java中声明new double[10][6]时,这个循环是自动执行的。不过当需要使用不规则数组时,需要单独分配行数组。
25.String 类中equals和Compareto 的区别
equals是任意对象都有的方法,而compareto只是string类的一个方法。
26.在Java中if语句中的条件必须是布尔类型的值。即其条件可以用逻辑运算产生,也可以用布尔类型的变量产生。
27.在Java中必须使用clone方法来实现一个对象的完全拷贝.
28.构造器和其他方法的一个重要不同在于:构造器只能和new运算符一起被调用。不能把构造器用于一个已存在的对象以重新设置其实例字段。
29. 在System类中有一个setOut方法可以把System.out设置为另外一个流。
疑问:System.out方法被标记为final 怎么能能够被setout 方法改变呢?
解答:setout方法是一个本地方法,并不是在Java程序设计语言中实现的。本的方法可以绕过Java语言的访问控制机制。(摘抄)
疑问:什么叫本地方法,如何设置本地方法?
解答:本地方法是不需要Java的虚拟机去解释直接在本地编译执行。和Java没有关系。
30. 静态方法可以被对象调用也可以被类名调用。但一般情况下建议用类名调用。
31.Java中静态字段和方法与C++的静态字段和方法的区别与联系。
Java中静态字段和方法与C++的静态字段和方法是相同的。不过在语法上略有不同。C++使用::运算符访问自身作用域之外的静态字段或方法,不能够通过对象访问。
32.什么叫工厂方法?试举一个例子。问题提出参考:Java2核心技术 卷1:基础知识第111页。
解答:暂时不需要理解。
33.关于main方法。
main方法并不对任何对象施加操作。事实上,程序开始执行时还不存在任何对象。静态main方法执行并构造程序所需要的对象。每个类都可以有一个main方法。这在对类进行单元测试时是一个很方便的。
34.Java程序调用函数时,方法参数是如何传递的?什么出售传值调用",什么时候是"传引用调用"?
当方法传递参数时如果是基本数据类型的数据,这函数传递的是值并不是地址。
当方法传递参数时如果的类的对象时,函数传递的是对象的地址。
因为对象的创建都是用new创建的,都是创建的堆中的,在栈中只有对象的地址。
35.在类中用final修饰的字段,在构造函数中必须被初始化。
36.默认字段初始化:
如果构造器中没有显示地对 某个字段赋值,那么它会被自动赋为默认值:数字变量为0,布尔变量为false,如果是对象引用,那么是null。
37.如果一个类提供了至少一个构造器,但没有提供默认构造器,那么构造没有构造参数的对象是非法的
只有类中没有其他构造器时,系统才会提供默认构造器。
38. 在一个构造器中调用令一个构造器。
如果构造器的第一个语句具有this(....),那么这个构造器将调用同一类中的其他构造器。如下典型的例子:
public Employee(double s){
//调用Employee(String ,double)
this("Employee #"+nextId,s);
nextId++;
}
39.在Java中有一种初始化变量的方法叫初始化块。类中声明中可以包含任意多的代码。只要构造了类的对象,这些代码块就会被执行。不管用那个构造器构造对象,初始化块都首先被运行,然后才是构造器的主体部分被执行。
40.静态初始化块与一般初始化块的区别?
41.数据字段在调用构造器后详细的执行过程。
1)初始化所有数据字段为默认值
2)按照在类声明中出现的次序依次执行所有字段初始化代码和初始化块。
3)如果构造器的第一行代码调用了另一个构造器,则执行被调用的构造器主体。
4)执行构造器主体
42.Java中不支持析构器,但我们可以把finalize方法添加到任何类中。finalize方法会在垃圾收集器清除对象之前被调用。但在实际的操作中,不要依赖finalize方法回收任何短缺资源---我们很难知道这个方法什么时候才被调用。有一个叫做System.runFinalizeersOnExit(true)的方法可以确保finalize方法在Java关闭前被调用。不过这种方法并不安全,也不鼓励使用。另一种替代的方法是使用Runtime.addShutdownHook子".
43.如何打包?
解答:在类的源文件开始出增加package 包名
然后在命令提示符窗口中输入javac -d . 文件名
44.如何把包打在C盘的根目录下?
解答:先看一下打包的命令:javac -d . 文件名
其中的"."代表了什么,是当前路径。现在这个问题就很明了了,要把包打在C盘的跟目 录下,就可以这么写:javac -d c:// 文件名
45.假设我已经把包打到C盘目录下了,但我在D盘中写了一个程序,现要用C盘目录下的包,请问应该怎么办?(要求不能拷贝)
解答:
46.编译器定位比虚拟机更为复杂。如果引用了类,而没有指定其所在的包,那么编译器就需要找到包含这个类的包。它会询问所以的import指示,查看其中是否包含了要找的类。它会查找每一个import给的路径给出的类,如果有多个匹配,就会产生编译时错误。(import 语名的顺序并不重要)。
编译器的还会去查看源文件观察源文件是否比类文件新。如果是这样的话,源文件就会被自动编译。
在一个源文件中只能引入其他包中的共有类。由于每个源文件只能包含一个共有类,文件名还必须和共有类的名字匹配。编译器从而可以很容易地为共有类定位源文件。当然,我们也可以引入当前包的非共有类。定义这些类的文件,文件名可能会与类名不同。如果引入了当前包中的类,编译器就需要查找当前包中所有的源文件以便确定是在哪个源文件中定义了这个类。
47.javac编译器总是在当前目录中查找文件,而java解释器只有在类路径中包含了"."目录的情况下才会查找当前目录。如果类路径没有设置,并不会产生什么问题---默认类路径中包含"."目录,但如果设置了类路径,却没有包含"."目录的话,就会产生问题---程序编译时不会出错,却无法运行。
48.如何设置类路径?
设置环境变量的classpath;
49.在类中如果一个变量没有标记为public或priavte,那么部件(类,方法或变量)可以被同一个包中的所有方法访问。
50.虚拟机定位类的方法?
分享到:
相关推荐
### JAVA自学之路大总结 #### 一、学会选择——洞察行业需求 在IT行业,特别是对于初学者而言,选择合适的技术方向至关重要。很多人在选择学习方向时,可能会盲目跟随潮流,选择诸如Java、.NET、手机开发、嵌入式...
### Java自学总结94点知识点详解 #### 一、标识符与关键字 1. **标识符**: 在Java中,标识符用于命名类名、变量名、方法名等。标识符可以由字母、数字、下划线`_`及美元符号`$`组成,但不能以数字开头。 - 示例:`...
### Java自学之路:选择与路线图详解 #### 一、选择的重要性 在开始Java学习之旅之前,最重要的是明确自己的目标并做出明智的选择。这不仅包括选择适合自己的学习资源,还包括根据个人兴趣和发展方向来确定具体的...
Java自学之路初学者宝典 在信息时代的浪潮中,掌握编程技能已成为提升个人竞争力的重要手段,而Java作为一门应用广泛的编程语言,吸引了无数编程爱好者投入自学的行列。本文旨在为初学者提供一份详尽的Java自学指南...
### Java自学方法总结 #### 一、教材与学习方法的重要性 在Java自学的过程中,选择合适的教材至关重要。良好的教材不仅能够帮助学习者系统地掌握基础知识,还能引导他们如何深入理解和运用这些知识。根据杭州汇文...
java语言详细教程学习 java自学攻略总结.docx Java语言教程:打造你的第一款五子棋游戏 游戏简介 五子棋,又称连珠,是一种两人对弈的棋类游戏。五子棋的规则简单易懂,变化多端,非常有趣味性。棋盘为15×15或19×...
### Java自学计划安排 在IT领域中,Java作为一门经典的编程语言,因其强大的功能、广泛的应用范围以及良好的跨平台性而备受青睐。对于初学者来说,制定一个合理的自学计划至关重要,这不仅能帮助大家系统地掌握Java...
Java基础总结大全涵盖了Java编程语言的核心概念,从JVM、JRE和JDK的区别,到环境变量的设置,再到变量的定义和类型转换,深入浅出地讲解了Java的基础知识。 1. JVM、JRE和JDK: - JVM(Java Virtual Machine)是...
这篇《Java自学手册》既是一盏指路明灯,也是一份详实的入门指南。本文将基于手册内容,对Java初学者提出一系列的学习建议和路径规划,帮助他们制定出明确的学习目标,提高学习效率,并最终实现快速就业。 首先,...
此外,《Java编程思想》和《JAVA 2核心技术 卷 I/II》是深入理解Java的优秀参考书,它们分别由Bruce Eckel和Cay S. Horstmann撰写,帮助读者理解"Java为什么要这样用"和"Java怎么用"。James Gosling的《JAVA程序设计...
总结来说,自学Java的路途并不是一条平坦大道,但《Java自学之路》提供的指导和建议,无疑让这条道路变得更加清晰可见。学习者需要明确自己的学习目标,结合市场需求来规划自己的学习路径,同时注重基础知识和核心...
在“JAVA自学之路”这个主题下,我们探讨的是如何通过自我学习...总结来说,“JAVA自学之路”是一段充满挑战但又充满机遇的旅程。只要你保持热情,勤奋学习,不断实践,你一定能够在Java的世界里找到属于自己的天地。
### Java自学如何成功 在IT领域,Java作为一门强大的编程语言,因其跨平台性、安全性以及丰富的类库支持而备受青睐。对于想要进入这一领域的学习者来说,掌握正确的自学方法至关重要。本文将从多个角度出发,探讨...
JAVA基础,自学JAVA面向对象送达特性总结
### 总结 以上介绍了几种常见的数据编码和加密技术,包括Base64、MD5、DES和RSA。这些技术在数据的安全传输和处理中发挥着重要作用。理解它们的工作原理和应用场景对于从事IT行业的人员来说是非常重要的。
很详细,自己自学总结出来的,涵盖了java几乎所有的基础知识
### Java自学之路——超详细含练习项目及源码 #### Java知识体系最强总结 本篇文章旨在根据提供的文件信息,深入解读Java自学之路的关键知识点,并针对其中提到的学习资源进行详细的解析,帮助初学者更好地掌握...
**Java Web自学编程手册概述** Java Web是一种使用Java技术构建Web应用程序的方法,它结合了Java语言的强类型、面向对象的特性与Web的交互性。本手册针对初学者,旨在帮助你快速掌握Java Web开发的基础知识,从而...
《Java项目开发实例自学手册》是一本面向Java初学者及进阶者的实践指南,旨在通过实际项目的案例,帮助读者深入理解和掌握Java编程语言在实际开发中的应用。这本手册不仅涵盖了基础的Java语法,还涉及到了项目构建、...