java经典面试题 (java经典游戏安装包)
本文目录导航:
java经典面试题
(4)以下代码中的两个sizeof用法有疑问吗?[C易] void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母 {for( size_t i=0; i <sizeof(str)/sizeof(str[0]); ++i )if( a <=str[i] && str[i] <=z )str[i] -= (a-A ); } char str[] = aBcDe; cout < < str字符长度为: < < sizeof(str)/sizeof(str[0]) < < endl; UpperCase( str ); cout < < str < < endl; 答案:函数内的sizeof有疑问。
依据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测灵活调配的或外部数组大小。
函数外的str是一个静态定义的数组,因此其大小为6,由于还有\0,函数内的str实践只是一个指向字符串的指针,没有任何额外的与数组关系的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此前往4。
(5)一个32位的机器,该机器的指针是多少位答案:指针是多少位只需看地址总线的位数就行了。
以后的机子都是32的数据总线。
所以指针的位数就是4个字节了。
6。
main() {int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf(%d,%d,*(a+1),*(ptr-1)); } 答案:2。
5 *(a+1)就是a[1],*(ptr-1)就是a[4],口头结果是2,5 &a+1不是首地址+1,系统会以为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int) int *ptr=(int *)(&a+1); 则ptr实践是&(a[5]),也就是a+5 要素如下: &a是数组指针,其类型为 int (*)[5]; 而指针加1要依据指针类型加上必定的值,不同类型的指针+1之后参与的大小不同 a是长度为5的int数组指针,所以要加 5*sizeof(int) 所以ptr实践是a[5] 然而prt与(&a+1)类型是不一样的(这点很关键) 所以prt-1只会减去sizeof(int*) a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,&a是对象(数组)首地址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5]. 7。
请问以下代码有什么疑问: intmain() { char a; char *str=&a; strcpy(str,hello); printf(str); return 0; } 答案:没有为str调配内存空间,将会出现意外疑问出在将一个字符串复制进一个字符变量指针所指地址。
只管可以正确输入结果,但由于越界启动外在读写而造成程序解体。
8。
char* s=AAA; printf(%s,s); s[0]=B; printf(%s,s); 有什么错?答案:AAA是字符串常量。
s是指针,指向这个字符串常量,所以申明s的时刻就有疑问。
cosnt char* s=AAA; 而后又由于是常量,所以对是s[0]的赋值操作是不合法的。
9。
写一个“规范”宏,这个宏输入两个参数并前往较小的一个。
答案:.#define Min(X, Y) ((X)>(Y)?(Y):(X))//开头没有‘;’10。
嵌入式系统中经常要用到有限循环,你怎样用C编写死循环。
答案:while(1){}或许for(;;) 11。
关键字static的作用是什么?答案:定义静态变量12。
关键字const有什么含义?答案:示意常量无法以修正的变量。
13。
关键字volatile有什么含义?并举出三个不同的例子?答案:揭示编译器对象的值或许在编译器未监测到的状况下扭转。
14。
int (*s[10])(int) 示意的是什么啊?答案:int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。
15。
有以下表白式: int a=248; b=4;int const c=21;const int *d=&a; int *const e=&b;int const *f const =&a; 请问下列表白式哪些会被编译器制止?为什么?答案:*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f; *c 这是个什么东东,制止 *d 说了是const,制止 e = &a 说了是const 制止 const *f const =&a; 制止16替换两个变量的值,不经常使用第三个变量。
即a=3,b=5,替换之后a=5,b=3; 答案:有两种解法, 一种用算术算法, 一种用^(异或) a = a + b; b = a - b; a = a - b; or a = a^b;// 只能对int,char.. b = a^b; a = a^b; or a ^= b ^= a; 17.c和c++中的struct有什么不同?答案:c和c++中struct的关键区别是c中的struct无法以含有成员函数,而c++中的struct可以。
c++中struct和class的关键区别在于自动的存取权限不同,struct默以为public,而class默以为private 18.#include <stdio.h>#include <stdlib.h>void getmemory(char *p){p=(char *) malloc(100);strcpy(p,hello world);}int main( ){char *str=NULL;getmemory(str);printf(%s/n,str);free(str);return 0;} 答案:程序解体,getmemory中的malloc 不能前往灵活内存, free()对str操作很风险 szstr[10];strcpy(szstr,);发生什么结果?为什么?答案:长度不一样,会形成合法的OS 20.罗列几种进程的同步机制,并比拟其优缺陷。
答案:原子操作信号量机制自旋锁管程,集合,散布式系统21.进程之间通讯的路径答案:共享存储系统信息传递系统管道:以文件系统为基础22.进程死锁的要素答案:资源竞争及进程推动顺序合法23.死锁的4个必要条件答案:互斥、恳求坚持、无法剥夺、环路24.死锁的解决答案:鸵鸟战略、预防战略、防止战略、检测与解除死锁25.操作系统中进程调度战略有哪几种?答案:FCFS(先来先服务),优先级,时期片轮转,多级反应26.类的静态成员和非静态成员有何区别?答案:类的静态成员每个类只要一个,非静态成员每个对象一个27.纯虚函数如何定义?经常使用时应留意什么?答案:virtual void f()=0; 是接口,子类必定要成功28.数组和链表的区别答案:数组:数据顺序存储,固定大小连表:数据可以随机存储,大小可灵活扭转的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺陷?答案:运行层示意层会话层运输层网络层物理链路层物理层 tcp /udp属于运输层 TCP 服务提供了数据传达输、牢靠性、有效流管理、全双工操作和多路复用技术等。
与 TCP 不同, UDP 并不提供对 IP 协定的牢靠机制、流管理以及失误复原配置等。
由于 UDP 比拟便捷, UDP 头蕴含很少的字节,比 TCP 负载消耗少。
tcp: 提供稳固的传输服务,有流量管理,缺陷是包头大,冗余性不好 udp: 不提供稳固的服务,包头小,开支小30:(void *)ptr 和 (*(void**))ptr的结果能否相反?其中ptr为同一个指针答案:.(void *)ptr 和 (*(void**))ptr值是相反的31:int main(){int x=3;printf(%d,x);return 1;} 问函数既然不会被其它函数调用,为什么要前往1?答案:mian中,c规范以为0示意成功,非0示意失误。
详细的值是某中详细出错信息32,要对相对地址0x赋值,咱们可以用 (unsigned int*)0x = 1234; 那么要是想让程序跳转到相对地址是0x去口头,应该怎样做?答案:*((void (*)( ))0x ) ( ); 首先要将0x强迫转换成函数指针,即: (void (*)())0x 而后再调用它: *((void (*)())0x)(); 用typedef可以看得更直观些: typedef void(*)() voidFuncPtr; *((voidFuncPtr)0x)(); 33,已知一个数组table,用一个宏定义,求出数据的元素个数答案:#define NTBL #define NTBL (sizeof(table)/sizeof(table[0])) 34。
线程与进程的区别和咨询? 线程能否具备相反的堆栈? dll能否有独立的堆栈? 答案:进程是死的,只是一些资源的集合,真正的程序口头都是线程来成功的,程序启动的时刻操作系统就帮你创立了一个主线程。
每个线程有自己的堆栈。
DLL中有没有独立的堆栈,这个疑问不好回答,或许说这个疑问自身能否有疑问。
由于DLL中的代码是被某些线程所口头,只要线程领有堆栈,假设DLL中的代码是EXE中的线程所调用,那么这个时刻是不是说这个DLL没有自己独立的堆栈?假设DLL中的代码是由DLL自己创立的线程所口头,那么是不是说DLL有独立的堆栈?以上讲的是堆栈,假设关于堆来说,每个DLL有自己的堆,所以假设是从DLL中灵活调配的内存,最好是从DLL中删除,假设你从DLL中调配内存,而后在EXE中,或许另外一个DLL中删除,很有或许造成程序解体35。
unsigned short A = 10; printf(~A = %u\n, ~A); char c=128; printf(c=%d\n,c); 输入多少?并剖析环节答案:第一题,~A =0xfffffff5,int值为-11,但输入的是uint。
所以输入 第二题,c=0x10,输入的是int,最高位为1,是正数,所以它的值就是0x00的补码就是128,所以输入-128。
这两道题都是在调查二进制向int或uint转换时的最高位解决。
(二)1. -1,2,7,28,,126请问28和126两边那个数是什么?为什么?答案:第一题的答案应该是4^3-1=63 法令是n^3-1(当n为偶数0,2,4)n^3+1(当n为奇数1,3,5) 2.用两个栈成功一个队列的配置?要求给出算法和思绪!答案:设2个栈为A,B, 一开局均为空. 入队: 将新元素push入栈A; 出队: (1)判别栈B能否为空; (2)假设不为空,则将栈A中一切元素依次pop出并push到栈B; (3)将栈B的栈顶元素pop出;这样成功的队列入队和出队的平摊复杂度都还是O(1), 比上方的几种方法要好。
3.在c言语库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?答案:函数名: atol 配置: 把字符串转换生长整型数用法: long atol(const char *nptr); 程序例: #include <stdlib.h> #include <stdio.h> int main(void) { long l; char *str = ; l = atol(lstr); printf(string = %s integer = %ld\n, str, l); return(0); } 4。
关于一个频繁经常使用的短小函数,在C言语中运行什么成功,在C++中运行什么成功? 答案:c用宏定义,c++用inline 5。
间接链接两个信令点的一组链路称作什么? 答案:PPP点到点衔接7。
软件测试都有那些种类? 答案:黑盒:针对系统配置的测试白合:测试函数配置,各函数接口8。
确定模块的配置和模块的接口是在软件设计的那个队段成功的? 答案:概要设计阶段9。
enum string{x1,x2,x3=10,x4,x5,}x;问x;答案:取值在0。
1。
10。
11。
12中的一个10。
unsigned char *p1;unsigned long *p2;p1=(unsigned char *)0x;p2=(unsigned long *)0x;请问p1+5=;p2+5=; 答案; 。
不要遗记了这个是16进制的数字,p2要加20变为16进制就是14 选用题链接到Internet用到以下那个协定?;;;;2.属于网络层协定的是;;;信息调度机制是:A.指令队列;B.指令堆栈;C.信息队列;D.信息堆栈; 答案:b,a,c 四.找错题:1.请问上方程序有什么失误?int a[60][250][1000],i,j,k;for(k=0;k <=1000;k++)for(j=0;j <250;j++)for(i=0;i <60;i++)a[i][j][k]=0; 答案:把循环语句内外换一下2。
以下是求一个数的平方的程序,请找出失误:#define SQUARE(a)((a)*(a))int a=5;int b;b=SQUARE(a++); 答案:这个没有疑问,s(a++),就是((a++)×(a++))惟一要留意的就是计算后a=7了 3。
typedef unsigned char BYTEint examply_fun(BYTE gt_len; BYTE *gt_code){BYTE *gt_buf;gt_buf=(BYTE *)MALLOC(Max_GT_Length);(gt_len>Max_GT_Length){return GT_Length_ERROR;}.......} 答案:要监禁内存问答题: Phone的原理是什么? 答案:IPV6 /IP通讯建设的环节怎样,端口有什么作用?答案:三次握手,确定是哪个运行程序经常使用该协定(三)1、部分变量能否和全局变量重名?答案:能,部分会屏蔽全局。
要用全局变量,要求经常使用:: 部分变量可以与全局变量同名,在函数内援用这个变量时,会用到同名的部分变量,而不会用到全局变量。
关于有些编译器而言,在同一个函数内可以定义多个同名的部分变量,比如在两个循环体内都定义一个同名的部分变量,而那个部分变量的作用域就在那个循环体内2、如何援用一个曾经定义过的全局变量?答案:extern 可以用援用头文件的方式,也可以用extern关键字,假设用援用头文件方式来援用某个在头文件中申明的全局变理,假设你将那个变写错了,那么在编译时期会报错,假设你用extern方式援用时,假设你犯了雷同的失误,那么在编译时期不会报错,而在衔接时期报错3、全局变量可无法以定义在可被多个.C文件蕴含的头文件中?为什么?答案:可以,在不同的C文件中以static方式来申明同名全局变量。
可以在不同的C文件中申明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时衔接不会出错4、语句for( ;1 ;)有什么疑问?它是什么意思?答案:和while(1)相反。
5、do……while和while……do有什么区别?答案:前一个循环一遍再判别,后一个判别以后再循环。
6、请写出下列代码的输入内容#include <stdio.h> main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf(b,c,d:%d,%d,%d,b,c,d); return 0; } 答案:10,12,120a=10;b=a++;//a=11 b=10c=++a;//a=12 c=12d=10*a++;//a=13 d=120 初级题1、static全局变量与个别的全局变量有什么区别?static部分变量和个别部分变量有什么区别?static函数与个别函数有什么区别?答案:全局变量(外部变量)的说明之前再冠以static 就形成了静态的全局变量。
全局变量自身就是静态存储方式,静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。
这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限度了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能经常使用它。
由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数专用,因此可以防止在其它源文件中惹起失误。
从以上剖析可以看出,把部分变量扭转为静态变量后是扭转了它的存储方式即扭转了它的生定期。
把全局变量扭转为静态变量后是扭转了它的作用域,限度了它的经常使用范畴。
static函数与个别函数作用域不同。
仅在本文件。
只在以后源文件中经常使用的函数应该说明为外部函数(static),外部函数应该在以后源文件中说明和定义。
关于可在以后源文件以外经常使用的函数,应该在一个头文件中说明,要经常使用这些函数的源文件要蕴含这个头文件 static全局变量与个别的全局变量有什么区别:static全局变量只初使化一次性,防止在其余文件单元中被援用; static部分变量和个别部分变量有什么区别:static部分变量只被初始化一次性,下一次性依据上一次性结果值; static函数与个别函数有什么区别:static函数在内存中只要一份,个别函数在每个被调用中维持一份拷贝2、程序的部分变量存在于()中,全局变量存在于()中,灵活放开数据存在于()中。
答案:栈;静态区;堆 3、设有以下说明和定义: typedef union {long i; int k[5]; char c;} DATE; struct; 5、 char* dest=NULL; 6、 int len=strlen(src); 7、 dest=(char*)malloc(len); 8、 char* d=dest; 9、 char* s=src[len]; 10、 while(len--!=0) 11、 d++=s--; 12、 printf(%s,dest); 13、 return 0; 14、} 答案:还要加上#include <stdio.h> int main(){ char* src = hello,world; int len = strlen(src); char* dest = (char*)malloc((len+1)*sizeof(char));//要为\0调配一个空间 char* d = dest; char* s = &src[len-1]; //指向最后一个字符 while( len-- != 0 ) *d++=*s--; *d = 0; //尾部要加\0 printf(%s\n,dest); free(dest);// 经常使用完,应当监禁空间,免得形成内存汇暴露 return 0; }华为口试题(3) 2006-09-29 19:41 一、判别题(对的写T,错的写F并说明要素,每小题4分,共20分)1、有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0。
(正确)2、int (*ptr) (),则ptr是一维数组的名字。
(失误int (*ptr) ();定义一个指向函数的指针变量)3、指针在任何状况下都可启动>, <,>=, <=,==运算。
(失误)4、switch(c) 语句中c可以是int ,long,char ,float ,unsigned int 类型。
(错,不能用实形)二、填空题(共30分)1、在windows下,写出运转结果,每空2分,共10分。
char str[ ]= "Hello"; char *p=str; int n=10; sizeof(str)=() sizeof(p)=() sizeof(n)=() void func(char str[100]){} sizeof(str)=()答案:6,4,4,4, 详细解释请参看我的空间里的“C/C++程序员应聘试题剖析”2、void getmemory(char **p, int num) { *p=(char *) malloc(num);} void test(void) {char *str=NULL;getmemory(&str,100);strcpy(str,"hello");printf(str); } 运转test函数有什么结果?()10分答案:输入hello,然而出现内存走漏。
3、设int arr[]={6,7,8,9,10};int *ptr=arr;*(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr)); () 10分答案:8,8。
这道标题的意义不大,由于在不同的编译器里printf的参数的方向是不一样的,在vc6.0下是从有到左,这里先*(++ptr) 后*pt,于是结果为8,8 三、编程题(第一小题20,第二小题30分)1、不经常使用库函数,编写函数int strcmp(char*source, char *dest) 相等前往0,不等前往-1;答案:一、 int strcmp(char*source, char *dest) {assert((source!=NULL)&&(dest!=NULL));int i,j;for(i=0; source[i]==dest[i]; i++){if(source[i]==\0 && dest[i]==\0)return 0;elsereturn -1;} } 答案:二、 int strcmp(char *source, char *dest) {while ( (*source != \0) && (*source == *dest)){ source++; dest++;}return ( (*source) - (*dest) ) ? -1 : 0; } 2、写一函数int fun(char *p)判别一字符串能否为回文,是前往1,不是前往0,出错前往-1 答案:一、 int fun(char *p) {if(p==NULL)return -1;else{int length = 0;int i = 0;int judge = 1;length = strlen(p);for(i=0; i <length/2; i++){if(p[i]!=p[length-1-i])judge = 0;break;}if(judge == 0)return 0;elsereturn 1;} } 答案:二、 int fun(char *p){ int len = strlen(p) - 1; char *q = p + len; if (!p) return -1; while (p < q) { if ((*p++) != (*q--)) return 0; } return 1;}1.在OSI 7 层模型中,网络层的配置有( ) A.确保数据的传送正确无误B.确定数据包如何转发与路由 C.在信道上行送比特流D.纠错与流控 经常使用的是___局域网技术。
( ) A.以太网;B.极速以太网;C.令牌环;D.令牌总线。
3.上方那种LAN 是运行CSMA/CD协定的() A.令牌环 和UDP 协定的相似之处是 ( ) A.面向衔接的协定B.面向非衔接的协定C.传输层协定D.以上均不对 5.运行程序PING 收回的是___报文.( ) 恳求报文。
应对报文。
恳求报文。
应对报文。
6.以下说法失误的是(多) ( ) A.中继器是上班在物理层的设施B.集线器和以太网替换机上班在数据连路层 C.路由器是上班在网络层的设施D.桥能隔离网络层广播7.当桥接纳的分组的目标MAC地址在桥的映射表中没有对应的表项时,采取的战略是( ) A.丢掉该分组B.将该分组分片C.向其余端口广播该分组D.以上答案均不对 Switch 在网络档次模型中的位置( ) A.物理层B.链路层C.网络层D.以上都不是9.小于___的TCP/UDP端口号已保管与现有服务逐一对应,此数字以上的端口号可自在调配。
( ) A.199B.100C.1024D.2048 10.当一台服务器从一个网络移到另一个网络时,以下说法正确的是 ( ) A.必定扭转它的IP 地址和MAC 地址B.必定扭转它的IP 地址,但不需改动MAC 地址 C.必定扭转它的MAC 地址,但不需改动IP 地址都不需改动答案:1.B; 2.C; 3.C; 4.C; 5.C; ; 7.C; 8.B; 9.C; 10.B.华为口试题(4) 2006-09-30 13:00 1. 找错 void test1() {char string[10];char* str1=;strcpy(string, str1); } 答:外表上并且编译都不会失误。
但假设string数组原意示意的是字符串的话,那这个赋值就没有到达用意。
最好定义为char string[11],这样最后一个元素可以存储字符串开头符\0; void test2() {char string[10], str1[10];for(int I=0; I <10;I++){str1[I] =a;}strcpy(string, str1); } 答:strcpy经常使用失误,strcpy只要遇到字符串末尾的\0才会完结,而str1并没有开头标记,造成strcpy函数越界访问,无妨让str1[9]=\0,这样就反常了。
void test3(char* str1) {char string[10];if(strlen(str1) <=10) {strcpy(string, str1); } } 答:这又会出现第一道改错题的失误了。
strlen(str1)算进去的值是不蕴含开头符\0的,假设str1刚好为10个字符+1开头符,string就得不到开头符了。
可将strlen(str1) <=10改为strlen(str1) <10。
2. 找错 #define MAX_SRM 256 DSN get_SRM_no() {static int SRM_no;int I;for(I=0;I <MAX_SRM;I++,SRM_no++){SRM_no %= MAX_SRM;if(MY_==IDLE){break;}}if(I>=MAX_SRM)return (NULL_SRM);elsereturn SRM_no; } 答:我不知道这段代码的详细配置,但显著有两个失误 1,SRM_no没有赋初值 2,由于static的申明,使该函数成为无法重入(即无法预测结果)函数,由于SRM_no变量放在程序的全局存储区中,每次调用的时刻还可以坚持原来的赋值。
这里应该去掉static申明。
java基础面试题有哪些?
上方是10道java基础面试题,后附答案
1.什么是 Java 虚构机?为什么 Java 被称作是“平台有关的编程言语”?
Java 虚构机是一个可以口头 Java 字节码的虚构机进程。
Java 源文件被编译成能被 Java 虚构机口头的字节码文件。
Java 被设计成准许运行程序可以运转在恣意的平台,而不要求程序员为每一个平台独自重写或许是从新编译。
Java 虚构机让这个变为或许,由于它知道底层配件平台的指令长度和其余个性。
2.“static”关键字是什么意思?Java 中能否可以笼罩(override)一个 private 或许是static 的方法?
“static”关键字标明一个成员变量或许是成员方法可以在没有所属的类的实例变量的状况下被访问。
Java 中 static 方法不能被笼罩,由于方法笼罩是基于运转时灵活绑定的,而 static 方法是编译时静态绑定的。
static 方法跟类的任何实例都不关系,所以概念上不实用。
和 JRE 的区别是什么?
Java 运转时环境(JRE)是将要口头 Java 程序的 Java 虚构机。
它同时也蕴含了口头 applet 要求的阅读器插件。
Java 开发工具包 (JDK)是完整的 Java 软件开发包,蕴含了 JRE,编译器和其余的工具(比如:JavaDoc,Java 调试器),可以让开发者开发、编译、口头 Java 运行程序。
4.能否可以在 static 环境中访问非 static 变量?
static 变量在 Java 中是属于类的,它在一切的实例中的值是一样的。
当类被 Java 虚构机载入的时刻,会对 static 变量启动初始化。
假设你的代码尝试不用实例来访问非 static 的变量,编译器会报错,由于这些变量还没有被创立进去,还没有跟任何实例关联上。
支持的数据类型有哪些?什么是智能拆装箱?
Java 言语支持的 8 中基本数据类型是:
智能装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。
比如:把 int 转化成 Integer,double 转化成 double,等等。
反之就是智能拆箱。
支持多承袭么?
不支持,Java 不支持多承袭。
每个类都只能承袭一个类,然而可以成功多个接口。
中,什么是结构函数?什么是结构函数重载?什么是复制结构函数?
当新对象被创立的时刻,结构函数会被调用。
每一个类都有结构函数。
在程序员没有给类提供结构函数的状况下,Java 编译器会为这个类创立一个自动的结构函数。
Java 中结构函数重载和方法重载很相似。
可以为一个类创立多个结构函数。
每一个结构函数必定有它自己惟一的参数列表。
Java 不支持像 C++中那样的复制结构函数,这个不同点是由于假设你不自己写结构函数的状况下,Java 不会创立自动的复制结构函数。
中的方法笼罩(Overriding)和方法重载(Overloading)是什么意思?
Java 中的方法重载出当初同一个类外面两个或许是多个方法的方法名相反然而参数不同的状况。
与此相对,方法笼罩是说子类从新定义了父类的方法。
方法笼罩必定有相反的方法名,参数列表和前往类型。
笼罩者或许不会限度它所笼罩的方法的访问。
9.接口和形象类的区别是什么?
Java 提供和支持创立形象类和接口。它们的成功有独特点,不同点在于:
接口中一切的方法隐含的都是形象的。
而形象类则可以同时蕴含形象和非形象的方法。
类可以成功很多个接口,然而只能承袭一个形象类
类假设要成功一个接口,它必定要成功接口申明的一切方法。
然而,类可以不成功形象类申明的一切方法,当然,在这种状况下,类也必定得申明成是形象的。
形象类可以在不提供接口方法成功的状况下成功接口。
Java 接口中申明的变量自动都是 final 的。
形象类可以蕴含非 final 的变量。
Java 接口中的成员函数自动是 public 的。
形象类的成员函数可以是 private, protected 或许是 public。
接口是相对形象的,无法以被实例化。
形象类也无法以被实例化,然而,假设它蕴含 main 方法的话是可以被调用的。
10.什么是值传递和援用传递?
对象被值传递,象征着传递了对象的一个正本。
因此,就算是扭转了对象正本,也不会影响源对象的值。
对象被援用传递,象征着传递的并不是实践的对象,而是对象的援用。
因此,外部对援用对象所做的扭转会反映到一切的对象上。
最后祝你面试顺利!
JAVA面试题求大神帮助,给满分100分
1: D | javac 命令编译指定类和该类依赖的类。
编译后的文件为二进制文件class2:C3:B4:C | IOException,runtimeException 编译时不要求强行解决,只在运转期出现。
IOException编译时强行要求解决,承袭自Exception5:B | Set无序队列,用get(index)游标无法失掉6:C 7:A | 不经常使用关键字相当于default8:D | 二进制算法 11为 111 | 10 = 111(只需有一个是1就是1) 也就是119: C | 示意字节char。
/u0020 是Unico的空格编码10:B 三