精心整理的java面试题(java精选面试题)

今天,嗨壳技术分享网给大家整理一些精心整理的java面试题(java精选面试题)内容。

  今天给各位分享精心整理的java面试题的知识,其中也会对java精选面试题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

  本文目录一览:

  1、java的面试题有哪些?

2、java基础面试题有哪些?

3、java经典面试题

4、Java基础面试题都有哪些?

5、2018年的JAVA面试题及答案

6、求最新JAVA面试题目,越全越好!!!

  java的面试题有哪些?

  正如圈内的大佬所说的那样,基础很重要。浙江优就业的老师帮你总结一下。

  常见的面试题有:

  安卓图片加载后一直在手机如何优化?

  解释一下安卓中SharedPreferences类?

  客户端和服务端如何收发信息?

  activity里如何发起http请求?

  安卓UI线程调用sleep?

  static类如何回收?

  接口和抽象类

  JVM垃圾回收算法

  如何区分哪些是老年代对象?

  线程池

  线程终止

  设计模式

  单例

  JDBC

  Runnable

  run()

  start()

  区别?

  Socket

  静态代码块和构造器的执行顺序

  final的map能否修改?

  String

  StringBuffer

  StringBuild区别?

  内存泄露?

  ArraryList

  LinkedList

  HashMap原理

  linux常用命令

  查看进程PS

  redis相关?

  运行时异常

  一个对象为空,怎么进行处理?

  泛型

  哪里用到?什么好处

  ?

  对数据库进行一些操作,mybatis要进行哪些操作?

  为什么Java是跨平台?

  匿名内部类能不能有外部内的接口?(反正跟匿名内部类有关)?

  @Test

  测试用例

  干嘛

  如何获取http的参数?

  Controller的参数设置,为什么是单例的?

  @autowired装载一个类,构造器里能不能直接调用这个类

  ?

  spring和springmvc区别?

  springmvc跨域?

  锁的种类等

  望采纳!

  java基础面试题有哪些?

  下面是10道java基础面试题,后附答案

  1.什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?

  Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。

  Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

  2.“static”关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是static 的方法?

  “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

  Java 中 static 方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而 static 方法是编译时静态绑定的。static 方法跟类的任何实例都不相关,所以概念上不适用。

  3.JDK 和 JRE 的区别是什么?

  Java 运行时环境(JRE)是将要执行 Java 程序的 Java 虚拟机。它同时也包含了执行 applet 需要的浏览器插件。Java 开发工具包 (JDK)是完整的 Java 软件开发包,包含了 JRE,编译器和其他的工具(比如:JavaDoc,Java 调试器),可以让开发者开发、编译、执行 Java 应用程序。

  4.是否可以在 static 环境中访问非 static 变量?

  static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

  5.Java 支持的数据类型有哪些?什么是自动拆装箱?

  Java 语言支持的 8 中基本数据类型是:

  byte

  short

  int

  long

  float

  double

  boolean

  char

  自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把 int 转化成 Integer,double 转化成 double,等等。反之就是自动拆箱。

  6.Java 支持多继承么?

  不支持,Java 不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。

  7.Java 中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

  当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java 编译器会为这个类创建一个默认的构造函数。

  Java 中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。

  Java 不支持像 C++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java 不会创建默认的复制构造函数。

  8.Java 中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

  Java 中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

  9.接口和抽象类的区别是什么?

  Java 提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:

  接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

  类可以实现很多个接口,但是只能继承一个抽象类

  类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

  抽象类可以在不提供接口方法实现的情况下实现接口。

  Java 接口中声明的变量默认都是 final 的。抽象类可以包含非 final 的变量。

  Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private, protected 或者是 public。

  接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含 main 方法的话是可以被调用的。

  10.什么是值传递和引用传递?

  对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。

  对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

  最后祝你面试顺利!

  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位的机器,该机器的指针是多少位答案:

  指针是多少位只要看地址总线的位数就行了。80386以后的机子都是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。请问以下代码有什么问题: int main() { 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操作很危险

  19.char szstr[10]; strcpy(szstr,”0123456789″); 产生什么结果?为什么?答案: 长度不一样,会造成非法的OS

  20.列举几种进程的同步机制,并比较其优缺点。答案: 原子操作信号量机制 自旋锁 管程,会合,分布式系统

  21.进程之间通信的途径答案:共享存储系统消息传递系统管道:以文件系统为基础

  22.进程死锁的原因答案:资源竞争及进程推进顺序非法

  23.死锁的4个必要条件答案:互斥、请求保持、不可剥夺、环路

  24.死锁的处理答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁

  25. 操作系统中进程调度策略有哪几种?答案:FCFS(先来先服务),优先级,时间片轮转,多级反馈

  26.类的静态成员和非静态成员有何区别?答案:类的静态成员每个类只有一个,非静态成员每个对象一个

  27.纯虚函数如何定义?使用时应注意什么?答案:virtual void f()=0; 是接口,子类必须要实现

  28.数组和链表的区别答案:数组:数据顺序存储,固定大小连表:数据可以随机存储,大小可动态改变

  29.ISO的七层模型是什么?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,要对绝对地址0x100000赋值,我们可以用 (unsigned int*)0x100000 = 1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?答案:*((void (*)( ))0x100000 ) ( ); 首先要将0x100000强制转换成函数指针,即: (void (*)())0x100000 然后再调用它: *((void (*)())0x100000)(); 用typedef可以看得更直观些: typedef void(*)() voidFuncPtr; *((voidFuncPtr)0x100000)();

  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 = 薥 ~A); char c=128; printf(“c=%d

  ”,c); 输出多少?并分析过程答案:第一题,~A =0xfffffff5,int值为-11,但输出的是uint。所以输出4294967285 第二题,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 = “98765432”; l = atol(lstr); printf(“string = %s integer = %ld

  ”, 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 *)0x801000; p2=(unsigned long *)0x810000; 请问p1+5= ; p2+5= ; 答案:801005; 810014。不要忘记了这个是16进制的数字,p2要加20变为16进制就是14 选择题: 1.Ethternet链接到Internet用到以下那个协议? A.HDLC;B.ARP;C.UDP;D.TCP;E.ID 2.属于网络层协议的是: A.TCP;B.IP;C.ICMP;D.X.25 3.Windows消息调度机制是: 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 BYTE int examply_fun(BYTE gt_len; BYTE *gt_code) { BYTE *gt_buf; gt_buf=(BYTE *)MALLOC(Max_GT_Length); …… if(gt_lenMax_GT_Length) { return GT_Length_ERROR; } ……. } 答案:要释放内存问答题: 1.IP Phone的原理是什么? 答案:IPV6 2.TCP/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,120 a=10; b=a++;//a=11 b=10 c=++a;//a=12 c=12 d=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 data { int cat; DATE cow; double dog;} too; DATE max; 则语句 printf(“%d”,sizeof(too)+sizeof(max));的执行结果是:______ 答案:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52. 当然…在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

  4、队列和栈有什么区别?

  答案:队列先进先出,栈后进先出÷

  5、这道题目出错了,这里就不写上了。

精心整理的java面试题(java精选面试题)

  6、已知一个单向链表的头,请写出删除其某一个结点的算法,要求,先找到此结点,然后删除。答案:slnodetype *Delete(slnodetype *Head,int key){}中if(Head-number==key) { Head=Pointer-next; free(Pointer); break; } Back = Pointer; Pointer=Pointer-next; if(Pointer-number==key) { Back-next=Pointer-next; free(Pointer); break; } void delete(Node* p) { if(Head = Node) while(p) }

  7、请找出下面代码中的所以错误说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”

  1、#include”string.h” 2、main() 3、{ 4、 char*src=”hello,world”; 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

  ”,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; else return -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; else return 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.纠错与流控

  2.FDDI 使用的是___局域网技术。( ) A.以太网; B.快速以太网; C.令牌环; D.令牌总线。

  3.下面那种LAN 是应用CSMA/CD协议的() A.令牌环 B.FDDI C.ETHERNET D.NOVELL

  4.TCP 和UDP 协议的相似之处是 ( ) A.面向连接的协议 B.面向非连接的协议 C.传输层协议 D.以上均不对 5.应用程序PING 发出的是___报文.( ) A.TCP 请求报文。 B.TCP 应答报文。 C.ICMP 请求报文。 D.ICMP 应答报文。

  6.以下说法错误的是(多) ( ) A.中继器是工作在物理层的设备 B.集线器和以太网交换机工作在数据连路层 C.路由器是工作在网络层的设备 D.桥能隔离网络层广播

  7.当桥接收的分组的目的MAC地址在桥的映射表中没有对应的表项时,采取的策略是( ) A.丢掉该分组 B.将该分组分片 C.向其他端口广播该分组 D.以上答案均不对

  8.LAN Switch 在网络层次模型中的地位( ) A.物理层 B.链路层 C.网络层 D.以上都不是

  9.小于___的TCP/UDP端口号已保留与现有服务一一对应,此数字以上的端口号可自由分配。( ) A.199 B.100 C.1024 D.2048

  10.当一台主机从一个网络移到另一个网络时,以下说法正确的是 ( ) A.必须改变它的IP 地址和MAC 地址 B.必须改变它的IP 地址,但不需改动MAC 地址 C.必须改变它的MAC 地址,但不需改动IP 地址 D.MAC 地址.IP 地址都不需改动答案:1.B; 2.C; 3.C; 4.C; 5.C; 6.BD; 7.C; 8.B; 9.C; 10.B.

  华为笔试题(4) 2006-09-30 13:00

  1. 找错 void test1() { char string[10]; char* str1=”0123456789″; 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_SRM.state==IDLE) { break; } } if(I=MAX_SRM) return (NULL_SRM); else return SRM_no; } 答:我不知道这段代码的具体功能,但明显有两个错误 1,SRM_no没有赋初值 2,由于static的声明,使该函数成为不可重入(即不可预测结果)函数,因为SRM_no变量放在程序的全局存储区中,每次调用的时候还可以保持原来的赋值。这里应该去掉static声明。

  Java基础面试题都有哪些?

  一般面试官都会让面试者回答哪些Java基础面试题啊?难不难啊? 针对这一系列的疑问,广州增城Java培训学校收集了部分Java基础面试题与大家分享,希望对各位参加了广州专业Java培训的学生,有一定的帮助! 一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字转换为字符 如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSPServlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符( “”) 3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。 4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍JSP的标记库 9.Jsp和Servlet中的请求转发分别如何实现。 三、J2EE相关知识 1.介绍J2EE、J2SE、J2SE的区别。 2.J2EE是一种技术还是一种平台,他提供了那些技术。 3.什么是Application Server,它有什么功能和优点。 4.简单介绍连接池的优点和原理。 5.Web.xml的作用 四、其他 1.Web安全性的考虑(表单验证、浏览器Basic方式的验证,应用程序的安全性,SSL,代码考虑) 2.简单介绍您所了解的MVC。 3.简单介绍所了解的XML。 4.文档和编码规范 5.Java中的分页、效率考虑。 6.简单介绍您所了解的structs。 Java面试题收藏: 1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一个connect pool然后再调用它, 8.j2ee平台与dotnet平台的区别 9.ejb的life cycle 10.session bean 和 entity bean的区别 11.ejb中的transaction机制 12.synchronized (生产者和消费) 13.String 和 StringBuffer 14.Serializable 15.MVC (Struts的工作流程) 16.什么是MDA 17.tcp与udp的区别 18.链表与散列表和数组的区别 19.堆和栈的区别 20.ejb的分类及区别 21.你对现在软件业以及国内软件业的看法 22.谈谈java多线程 23.谈谈文件加密技术 24.软件开发生命周期 25.路由协议种类及特点 26.java的awt和swing组件的GUI设计的关键 27.对于java流的认识 28.简单描述一下awt与swing区别。 29.简述java编程中事件处理模式。 30.你编写过applet吗?applet的安全权限如何?试列举java application或者applet中与servlet/jsp通信可以采用的方式。 31.简述逻辑操作(如|)与条件操作(如||)的区别。

  2018年的JAVA面试题及答案

  Java知识点很多,每个知识点都可能会有面试题,而且不同的企业的考察点是不一样的。下面给你整理了几个Java面试题可以参考:

  1、面向对象的特征有哪些方面?

  封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

  多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。

  2、获得一个类的类对象有哪些方式?

  答:

  - 方法1:类型.class,例如:String.class

  - 方法2:对象.getClass(),例如:”hello”.getClass()

  - 方法3:Class.forName(),例如:Class.forName(“java.lang.String”)

  3、如何通过反射创建对象?

  答:

  - 方法1:通过类对象调用newInstance()方法,例如:String.class.newInstance()

  - 方法2:通过类对象的getConstructor()或getDeclaredConstructor()方法获得构造器

  (Constructor)对象并调用其newInstance()方法创建对象,例如:

  String.class.getConstructor(String.class).newInstance(“Hello”);

  求最新JAVA面试题目,越全越好!!!

  Java面试不光有面试也会有笔试,为了让java应聘笔试题能顺利通过,中公优就业·浙江IT培训的小U老师整理了一些java笔试题及答案分享给大家,准备或将要参加java面试的朋友可以仔细阅读,争取一次通过,进去自己心仪的企业工作。

  一、九道选择题

  1.Java程序的种类有(BCD )

  A.类(Class) B.Applet C.Application D.Servlet

  2.下列说法正确的有( BCD)

  A. 环境变量可在编译source code时指定

  B. 在编译程序时,所能指定的环境变量不包括class path

  C. javac一次可同时编译数个Java源文件

  D. javac.exe能指定编译结果要置于哪个目录(directory)

  3.下列标识符不合法的有( ACD)

  A.new B.$Usdollars C.1234 D.car.taxi

  4.下列说法错误的有( BCD)

  A. 数组是一种对象

  B. 数组属于一种原生类

  C. int number=={31,23,33,43,35,63}

  D. 数组的大小可以任意改变

  5.不能用来修饰interface的有(ACD )

  A.private B.public C.protected D.static

  6.下列正确的有(ACD )

  A. call by value不会改变实际参数的数值

  B. call by reference能改变实际参数的参考地址

  C. call by reference不能改变实际参数的参考地址

  D. call by reference能改变实际参数的内容

  7.下列说法错误的有( ACD)

  A. 在类方法中可用this来调用本类的类方法

  B. 在类方法中调用本类的类方法时可直接调用

  C. 在类方法中只能调用本类中的类方法

  D. 在类方法中绝对不能调用实例方法

  8.下列说法错误的有(ABC )

  A. Java面向对象语言容许单独的过程与函数存在

  B. Java面向对象语言容许单独的方法存在

  C. Java语言中的方法属于类中的成员(member)

  D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同

  9.下列说法错误的有(BCD )

  A. 能被java.exe成功运行的java class文件必须有main方法

  B. J2SDK就是Java API

  C. Appletviewer.exe可利用jar选项运行.jar文件

  D. 能被Appletviewer成功运行的java class文件必须有main方法

  二、六道简答题

  1、在java中如果声明一个类为final,表示什么意思?

  答:final是最终的意思,final可用于定义变量、方法和类但含义不同,声明为final的类不能被继承。

  2、父类的构造方法是否可以被子类覆盖(重写)?

  答:父类的构造方法不可以被子类覆盖,因为父类和子类的类名是不可能一样的。

  3、请讲述String 和StringBuffer的区别。

  答:String 类所定义的对象是用于存放“长度固定”的字符串。

  StringBuffer类所定义的对象是用于存放“长度可变动”的字符串。

  4、如果有两个类A、B(注意不是接口),你想同时使用这两个类的功能,那么你会如何编写这个C类呢?

  答:因为类A、B不是接口,所以是不可以直接继承的,但可以将A、B类定义成父子类,那么C类就能实现A、B类的功能了。假如A为B的父类,B为C的父类,此时C就能实现A、B的功能。

  5、结合Java视频Lesson5(多线程),分析sleep()和wait()方法的区别。

  答: Sleeping睡眠的意思 : sleep() 方法用来暂时中止执行的线程。在睡眠后,线程将进入就绪状态。

  waiting等待的意思: 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时。

  6、谈谈你对抽象类和接口的理解。

  答:定义抽象类的目的是提供可由其子类共享的一般形式、子类可以根据自身需要扩展抽象类、抽象类不能实例化、抽象方法没有函数体、抽象方法必须在子类中给出具体实现。他使用extends来继承。

  接口:一个接口允许一个类从几个接口继承而来,Java

  程序一次只能继承一个类但可以实现几个接口,接口不能有任何具体的方法,接口也可用来定义可由类使用的一组常量。其实现方式是interface来实现。

  以上就是小U老师整理的2018java笔试题及答案,关于java应聘笔试题还有很多,后期小编会及时整理更新更多java应聘笔试题,准备参加java面试的朋友可以仔细研究题目,做好充分的准备参加每一场面试,祝你成功!

  精心整理的java面试题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java精选面试题、精心整理的java面试题的信息别忘了在本站进行查找喔。

以上是嗨壳技术分享网(www.heikehao.com)小编对“ 精心整理的java面试题(java精选面试题) ”的详细解答,希望能够帮助到大家。

原创文章,作者:java,如若转载,请注明出处:https://www.heikehao.com/11387.html

(0)
javajava
上一篇 2020年5月14日
下一篇 2020年5月14日

相关推荐

  • java数组删除某个元素的方式

    我们知道,在C语言和java当中都是一种十分重要的数据结构,但是熟悉数组的朋友都知道,数组一旦被赋值就很难被轻易改动,相比之下人们往往更偏向另一种类似于数组当中但比数组更灵活的集合…

    2023年11月25日
  • 正规黑客联系方式免费私人接单

    在这个数字化的时代,网络安全问题备受关注。而在这个看似平静的表面下,隐藏着无数的黑客,他们或许是为了探寻技术的极限,或许是为了谋取私利。有一群正规黑客,他们并不是为了恶意攻击,而是为了保护网络安全、维护正义。这些正规黑客拥有着独特的技术和能力,他

    2024年3月28日
  • 统计javaio流的连接数

    关于统计javaio流的连接数话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些统计javaio流的连接数内容,让我们一起了解一些技术吧!   java web项目统计会话连接…

    2020年2月11日
  • java上下移功能,java上下文

    关于java上下移功能,java上下文话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些java上下移功能,java上下文内容,让我们一起了解一些技术吧!   …使…

    2020年4月29日
  • 用java编写邮箱界面,java实现邮箱

    用java编写邮箱界面,java实现邮箱 大家并不陌生,借来给大家详细说说吧!   求解:用Java写一段程序,能实现注册用户的,包含用户名和密码,邮箱的GUI…   …

    2020年1月6日
  • 圆周率java编写

    圆周率java编写   java圆周率计算   原理:根据圆面积的公式:s=πR2,当R=1时,S=π。由于圆的方程是:x^2+y^2=1(x^2为X的平方的意思),因此1/4圆面…

    2023年11月1日
  • 地图定位java,地图定位怎么设置自己公司

    今日,嗨壳技术分享网小编分享地图定位java,地图定位怎么设置自己公司 相关内容,内容如下。   哪里有使用基站定位的Java版手机地图?   1、要是你的手机自己支持GPS(全球…

    2020年6月11日
  • 浏览器java脚本(浏览器运行java代码)

    针对浏览器java脚本(浏览器运行java代码)的内容, 嗨壳技术分享网今天给大家作出详细的解答吧!   今天给各位分享浏览器java脚本的知识,其中也会对浏览器运行java代码进…

    2020年3月14日
  • 英文打字测试软件java-中英文打字测试软件

    今日,嗨壳技术分享网小编分享英文打字测试软件java-中英文打字测试软件 相关内容,内容如下。   电脑上有哪些软件是可以练习打字速度的。   金山打字通:是专门为上网初学者开发的…

    2020年2月24日
  • 神州数码java面试题

    关于神州数码java面试题话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些神州数码java面试题内容,让我们一起了解一些技术吧!   Java编程常见面试题目,要求正确答案?…

    2020年3月5日

网上怎么找黑客帮忙多少钱

怎么网上找到的黑客?黑客的收费标准是什么呢?找黑客一般费用是多少?


找黑客帮忙一般要多少钱

黑客服务的价格范围很广,主要取决于服务的类型和难度。根据提供的信息如下:


1.攻击服务:


攻击范围:这包括了通过扫描入侵、种植木马等方式对他人计算机实施非法控制,并利用被控制的计算机对网站、App等服务器发起攻击


。1

2.特定账户的售价:


账户信息:如垂钓者、而勒索软件,显示市场对特定黑客工具的需求和价格波动。

3.攻击工具:

“RIG”攻击工具包的租用费用,提供了不同时长的选择。

4.远程访问木马(RAT)的价格:

相比去年有所下降,显示出市场价格的波动。

5.DDOS攻击的报价:

DDOS攻击服务按不同时长定价选择。

黑客服务的价格因服务类型、难度、以及市场需求的不同而有很大的差异。这些价格反映了黑客服务市场的复杂性和多样性,同时也提醒人们网络安全的重要性。